Introduction to Deep Learning
While there are Deep Learning courses everywhere, as the tools have become widely used, it is still hard to find a course that builds a solid foundation by a utilizing non-trivial hands-on approach.
This is the reason we have built this course. Learn deep learning profoundly and effectively while still target engineers in the industry.
Overview
The course:
${\color{lime}\surd}$ Covers concepts in Deep Learning and their applications to data science tasks.
${\color{lime}\surd}$ Provides practical knowledge and tools for utilizing deep learning.
${\color{lime}\surd}$ Hands-on experience with emphasis on real world code and intuition by interactive visualization.
${\color{lime}\surd}$ Targets software developers, system engineers and algorithms engineers who are after a first dive into the field.
Main Topics
Deep learning fundamentals | Perceptron, fully connected layers, activations, back-propagation |
Training a network | Initialization, optimization, regularization |
Convolutional neural networks | 1D and 2D convolution, layers, pre-trained architectures, transfer learning |
Recurrent neural networks | |
Unsupervised deep learning | Auto-encodes and GANs |
Slide Samples
Goals
- The participants will be able to match the proper approach and net architecture to a given problem.
- The participants will learn how to use the PyTorch framework.
- The participants will be able to utilize existing nets by transfer learning, retrain them to a specific problem and benchmark results.
Pre Built Syllabus
We have been given this course in various lengths, targeting different audiences. The final syllabus will be decided and customized according to audience, allowed time and other needs.
Day | Subject | Details |
---|---|---|
1 | Essential machine learning | Regression, classification, optimization (gradient descent) |
Deep learning fundamentals | Fully connected networks: regression, classification and activation | |
Back-propagation | Forward pass, backward pass and the chain rule | |
Initialization and optimization methods | Pre-processing, weights initialization, optimization update rules | |
Regularization methods | Early stopping, weights regularization, weight decay, dropout | |
Exercise 1 | Regression using a self implemented network (from scratch) | |
2 | PyTorch I | Tensors, autograd, modules, GPU |
PyTorch II | Hooks and callback, activation analysis, learning rate schedulers, TensorBoard | |
Convolutional neural network (CNN) | Convolution, convolutional layers, pooling, batch normalization | |
CNN architectures | Alexnet, VGG, Inception, ResNet, transfer learning, introduction to object detection and segmentation | |
Hands-on tips | Data augmentation, label smoothing, mixup augmentation, ensembles, 10-crop | |
Exercise 2 | Classification (Cifar-10) | |
3 | Unsupervised (self-supervised) deep learning | Auto-encoders, introduction to GAN |
Recurrent neural network (RNN) | Vanilla RNN, GRU, LSTM, RNN architectures, Sampling from RNN | |
Exercise 3 | GANs and music generation with RNN |
In addition to the exercises in the syllabus, there are many more mini-exercises (within each topic).
Prerequisites
Knowledge in machine learning is required, if needed, we recommend taking this course after taking (one of) our machine learning courses: Machine Learning Methods or Introduction to Machine Learning.
- Linear algebra
- Basic calculus
- Machine learning
- Experience with a scientific language (Python, Matlab, R, etc')
In any case any of the prerequisites are not met, we can offer a half day sprint on: Linear Algebra, Calculus, Probability and Python.