Hands on Deep Learning: CNN and CV applications

This 1-credit, hands-on course provides a practical dive into Convolutional Neural Networks (CNNs) and their applications in Computer Vision (CV). Designed for students with a Python programming background, the curriculum bypasses theory to focus on hands-on development using PyTorch. Students will learn to build, train, and optimize deep neural architectures for (mostly) image data. Core topics include PyTorch fundamentals, image classification, data augmentation, transfer learning, and generative models like VAEs and GANs, and (if time permits) diffusion models. By the course’s conclusion, students will be equipped to tackle real-world visual recognition tasks and deploy robust computer vision systems.

Lecture Topic Topics Covered Accompanying Materials
Lecture

Lecture 1

Topic

Introduction to PyTorch & Autograd

Topics Covered

General course introduction, PyTorch tensors, and automatic differentiation.

Accompanying Materials

tensors.ipynb, AutoDiff.ipynb

Lecture

Lecture 2

Topic

Supervised Learning & Basic NNs

Topics Covered

Linear regression with Autograd, basic neural networks, and training fundamentals.

Accompanying Materials

Linear Regression.ipynb, FullyConnectedNNs.ipynb

Lecture

Lecture 3

Topic

Classification & Optimization

Topics Covered

Training on MNIST, data loading/visualization, and optimization algorithms.

Accompanying Materials

FullyConnectedNNs-2.ipynb, Optimization Algorithms.ipynb

Lecture

Lecture 4

Topic

Intro to Convolutional Neural Networks

Topics Covered

The mechanics of convolutions, pooling, and building basic CNN architectures.

Accompanying Materials

CNN.ipynb

Lecture

Lecture 5

Topic

Advanced CNNs & Visualizing Features

Topics Covered

Data augmentation, batch normalization, and a brief tour on deep learning generalization.

Accompanying Materials

CNN2.ipynb, Regularization.ipynb (Part 1)

Lecture

Lecture 6

Topic

Transfer Learning & Fine-tuning

Topics Covered

In-distribution vs. Out-of-distribution data, fine-tuning pre-trained vision models.

Accompanying Materials

Out-of-Distribution and Finetuning.ipynb

Lecture

Lecture 7

Topic

Robustness & Dimensionality Reduction

Topics Covered

Adversarial examples in computer vision, modular code writing, and Autoencoders.

Accompanying Materials

AdversarialExamples.ipynb, Autoencoders.ipynb

Lecture

Lecture 8

Topic

Generative Models for CV: VAEs

Topics Covered

Formulation and training of Variational Autoencoders for image generation.

Accompanying Materials

VAEs.ipynb

Lecture

Lecture 9

Topic

Generative Models for CV: GANs

Topics Covered

Architecture, training stability, and applications of Generative Adversarial Networks.

Accompanying Materials

GANs.ipynb

Lecture

Lecture 10

Topic

Generative Models for CV: Diffusion Models

Topics Covered

Principles of generation with diffusion. Architecture.

Accompanying Materials

Diffusion.ipynb