This course is a comprehensive guide to Deep Learning and Neural Networks. The theories are explained in depth and in a friendly manner. After that, we'll have the hands-on session, where we will be learning how to code Neural Networks in PyTorch, a very advanced and powerful deep learning framework!
The course includes the following Sections:
Section 1 - How Neural Networks and Backpropagation Works
In this section, you will deeply understand the theories of how neural networks and the backpropagation algorithm works, in a friendly manner. We will walk through an example and do the calculations step-by-step. We will also discuss the activation functions used in Neural Networks, with their advantages and disadvantages!
Section 2 - Loss Functions
In this section, we will introduce the famous loss functions that are used in Deep Learning and Neural Networks. We will walk through when to use them and how they work.
Section 3 - Optimization
In this section, we will discuss the optimization techniques used in Neural Networks, to reach the optimal Point, including Gradient Descent, Stochastic Gradient Descent, Momentum, RMSProp, Adam, AMSGrad, Weight Decay and Decoupling Weight Decay, LR Scheduler and others.
Section 4 - Weight Initialization
In this section,we will introduce you to the concepts of weight initialization in neural networks, and we will discuss some techniques of weights initialization including Xavier initialization and He norm initialization.
Section 5 - Regularization Techniques
In this section, we will introduce you to the regularization techniques in neural networks. We will first introduce overfitting and then introduce how to prevent overfitting by using regularization techniques, inclusing L1, L2 and Dropout. We'll also talk about normalization as well as batch normalization and Layer Normalization.
Section 6- Introduction to PyTorch
In this section, we will introduce the deep learning framework we'll be using through this course, which is PyTorch. We will show you how to install it, how it works and why it's special, and then we will code some PyTorch tensors and show you some operations on tensors, as well as show you Autograd in code!
Section 7 - Practical Neural Networks in PyTorch - Application 1
In this section, you will apply what you've learned to build a Feed Forward Neural Network to classify handwritten digits. This is the first application of Feed Forward Networks we will be showing.
Section 8 - Practical Neural Networks in PyTorch - Application 2
In this section, we will build a feed forward Neural Network to classify weather a person has diabetes or not. We will train the network on a large dataset of diabetes!
Section 9 - Visualize the Learning Process
In this section, we will visualize how neural networks are learning, and how good they are at separating non-linear data!
Section 10 - Implementing a Neural Network from Scratch with Python and Numpy
In this section, we will understand and code up a neural network without using any deep learning library (from scratch using only python and numpy). This is necessary to understand how the underlying structure works.
Section 11 - Convolutional Neural Networks
In this section, we will introduce you to Convolutional Networks that are used for images. We will show you first the relationship to Feed Forward Networks, and then we will introduce you the concepts of Convolutional Networks one by one!
Section 12 - Practical Convolutional Networks in PyTorch
In this section, we will apply Convolutional Networks to classify handwritten digits. This is the first application of CNNs we will do.
Section 13- Deeper into CNN: Improving and Plotting
In this section, we will improve the CNN that we built in the previous section, as well show you how to plot the results of training and testing! Moreover, we will show you how to classify your own handwritten images through the network!
Section 14 - CNN Architectures
In this section, we will introduce the CNN architectures that are widely used in all deep learning applications. These architectures are: AlexNet, VGG net, Inception Net, Residual Networks and Densely Connected Networks. We will also discuss some object detection architectures.
Section 15- Residual Networks
In this section, we will dive deep into the details and theory of Residual Networks, and then we'll build a Residual Network in PyTorch from scratch!
Section 16 - Transfer Learning in PyTorch - Image Classification
In this section, we will apply transfer learning on a Residual Network, to classify ants and bees. We will also show you how to use your own dataset and apply image augmentation. After completing this section, you will be able to classify any images you want!
Section 17- Convolutional Networks Visualization
In this section, we will visualize what the neural networks output, and what they are really learning. We will observe the feature maps of the network of every layer!
Section 18 - YOLO Object Detection (Theory)
In this section, we will learn one of the most famous Object Detection Frameworks: YOLO!! This section covers the theory of YOLO in depth.
Section 19 - Autoencoders and Variational Autoencoders
In this section, we will cover Autoencoders and Denoising Autoencoders. We will then see the problem they face and learn how to mitigate it with Variational Autoencoders.
Section 20 - Recurrent Neural Networks
In this section, we will introduce you to Recurrent Neural Networks and all their concepts. We will then discuss the Backpropagation through time, the vanishing gradient problem, and finally about Long Short Term Memory (LSTM) that solved the problems RNN suffered from.
Section 21 - Word Embeddings
In this section, we will discuss how words are represented as features. We will then show you some Word Embedding models. We will also show you how to implement word embedding in PyTorch!
Section 22 - Practical Recurrent Networks in PyTorch
In this section, we will apply Recurrent Neural Networks using LSTMs in PyTorch to generate text similar to the story of Alice in Wonderland! You can just replace the story with any other text you want, and the RNN will be able to generate text similar to it!
Section 23 - Sequence Modelling
In this section, we will learn about Sequence-to-Sequence Modelling. We will see how Seq2Seq models work and where they are applied. We'll also talk about Attention mechanisms and see how they work.
Section 24 - Practical Sequence Modelling in PyTorch - Build a Chatbot
In this section, we will apply what we learned about sequence modeling and build a Chatbot with Attention Mechanism.
Section 25 - Saving and Loading Models
In this section, we will show you how to save and load models in PyTorch, so you can use these models either for later testing, or for resuming training!
Section 26 - Transformers
In this section, we will cover the Transformer, which is the current state-of-art model for NLP and language modeling tasks. We will go through each component of a transformer.
Section 27 - Build a Chatbot with Transformers
In this section, we will implement all what we learned in the previous section to build a Chatbot using Transformers.