
Explore modern deep convolutional neural networks with PyTorch, covering fundamentals, advanced training, regularization, autoencoders, and real-world image classification challenges.
Study key computer vision problems solved with convolutional neural networks, including classification, image segmentation, object detection, image captioning, and person identification, plus generative adversarial networks and style transfer.
Treat linear layer as a learnable matrix transforming inputs into logits, insert nonlinearities between layers, and use softmax cross-entropy for classification or l2 loss for regression, trained by gradient descent.
Learn how the soft max layer transforms logics into probabilities via exponentials and normalization, and examine binary cross entropy and cross entropy loss in PyTorch, including sigmoid outputs.
Apply stochastic gradient descent to train neural networks by updating theta with the gradient of the loss using mini-batches, data shuffling, and a learning rate, considering batch size.
Load and preprocess the CFR 10-class dataset in pytorch, applying tensor conversion and normalization with mean 0.5 and std 0.5, then batch 4 with 2 workers for a linear classifier.
Learn to implement a linear classifier in PyTorch by building a one-layer network, shaping inputs into vectors, applying a linear projection, and training with cross-entropy loss using the Adam optimizer.
Train a linear classifier in PyTorch using a training loop with train loader, forward pass, loss, backpropagation, and optimization; evaluate on test loader with 31% accuracy.
Build a multilayer perceptron by stacking linear layers with nonlinear activations in PyTorch, using 32x32 color images, and contrast with the linear classifier to pave the way for convolutional improvements.
Defines what an image is, explains grayscale and color channel representations, and contrasts hand-crafted image descriptors with deep learning's automatic feature learning in neural networks.
Understand why convolutional networks replace full linear layers for 3-channel 256×256 images, avoiding a neuron per pixel by using small kernels and local parameter sharing.
Compare convolutions to linear layers by sliding three-dimensional kernels over multi-channel images to produce feature maps, achieving far fewer parameters (about 300 vs 19 million) and enabling deeper networks.
Analyze convolution parameters: stride and padding. Observe how stride alters output size and how zero or mirror padding balances pixel contributions.
Compare non-linear activation functions used in modern deep convolutional networks, highlighting sigmoid and hyperbolic tangent gradient issues. Prefer ReLU and Leaky ReLU, and use validation to select the best non-linearity.
Explore max pooling and average pooling for downsampling in convolutional networks, using 2x2 windows to reduce images while preserving essential features; differences are small, and max pooling is often preferred.
Build a deep convolutional network by stacking blocks with non-linearity, reshape outputs to a vector, apply linear layers with non-linearity, and end with soft marks for classification or regression.
Build a convolutional neural network in PyTorch with kernel size 5, stride 2, padding 0, channels 16, 32, and 64, followed by a 64-32-10 classifier.
Analyze overfitting in deep networks and apply L2 regularization to constrain weights. Compare deeper networks with regularization against smaller networks without, and tune lambda on the validation set.
Explore dropout and dropconnect regularization as deep learning techniques that randomly zero features or weights during training, and understand training versus testing, Bernoulli masking, and tuning the dropout probability.
Explore dropblock regularization for deep convolutional networks, learning to zero random image blocks during training, improving classification accuracy and including block size, masking, and class activation mapping visualizations.
Learn how early stopping regularization uses a patience parameter to halt training when validation loss stops decreasing, leveraging learning curves to prevent overfitting.
Understand batch normalization, which speeds training by normalizing data to zero mean and unit variance using feature-wise statistics, epsilon, and learnable parameters, with comparisons to layer normalization.
Explore how data augmentation extends your dataset and improves neural network quality by rotating, flipping, scaling, adjusting contrast, and adding noise.
Explores existing datasets for training neural networks, including Mooney's dataset, Fashion-MNIST, CIFAR-10 and CIFAR-100, and ImageNet, and notes how adding labeled data from these sets can improve performance.
Examines modern evolutionary architectures, from Inception modules to residual networks, showing how multi-scale convolutions and 1x1 reductions with skip connections overcome training challenges on image tasks.
Explore transfer learning by using a pre-trained ImageNet model to boost small-data classification with data augmentation. Replace or fine-tune the final layers to classify airship types, leveraging early generic features.
Load the Kaggle image dataset via an image folder, apply resize to 224, to tensor, and normalize, then create train and test loaders for a small nine-class dataset.
Learn to build data augmentation pipelines in PyTorch using transforms, including resizing, random rotation, flips, and grayscale, to boost image datasets for deep CNNs.
Reuse pretrained networks like ResNet-18 with torchvision, freeze the feature layers, replace the final layer for nine classes, and train on a small dataset to reach about 70% accuracy.
Dear friend, welcome to the course "Modern Deep Convolutional Neural Networks"! I tried to do my best in order to share my practical experience in Deep Learning and Computer vision with you.
The course consists of 4 blocks:
Introduction section, where I remind you, what is Linear layers, SGD, and how to train Deep Networks.
Convolution section, where we discuss convolutions, it's parameters, advantages and disadvantages.
Regularization and normalization section, where I share with you useful tips and tricks in Deep Learning.
Fine tuning, transfer learning, modern datasets and architectures
If you don't understand something, feel free to ask equations. I will answer you directly or will make a video explanation.
Prerequisites:
Matrix calculus, Linear Algebra, Probability theory and Statistics
Basics of Machine Learning: Regularization, Linear Regression and Classification,
Basics of Deep Learning: Linear layers, SGD, Multi-layer perceptron
Python, Basics of PyTorch