Course Info
Deep learning is widely used in many market segments ranging from mobile devices to supercomputers. Recently many software packages as well as special hardware accelerators were developed to support deep learning. The course will focus on algorithms, programming frameworks and new software/hardware interfaces that aim to allow execution of deep learning algorithms in a productive and efficient way.
Learning Outcomes
At the end of the course, the student will:
- Understand and be able to apply notions in deep learning.
- Know how to effectively use leading python machine-learning and deep learning frameworks such as PyTorch.
- Know how to optimize software and hardware performance in deep neural network applications.
- Know how to program GPUs using CUDA.
- Perform a small research project using the studied notions and techniques.
Administration
Evaluation: 40% Homework assignments, 60% final project.
Language: The course will be taught in English.
Credits: 3.0.
Course Staff
Lecturers
TAs
Literature
Detailed Syllabus
Date | # | Lecture | Tutorial |
---|---|---|---|
21/10/2018 |
1 | Introduction to machine learning and accelerators | Environment set up, intro to notebooks, using course servers |
28/10/2018 |
2 | Supervised learning: linear classifiers, linear regression, loss functions, optimization, descent methods, SGD | ML basics: Linear Classifiers, score & loss functions, data sets, cross validation |
04/11/2018 |
3 | Neural networks: multi-layered perceptrons, backpropagation and intro to CNNs, ResNets | MLP, Optimization algorithms |
11/11/2018 |
4 | Training neural networks: Initialization, dropout, batch normalization, update rules, data augmentation | Training convolution neural networks in PyTorch |
18/11/2018 |
5 | Recurrent neural networks: RNN, B-RNN, LSTM, GRU and applications | Convolutional neural networks |
25/11/2018 |
5 6 |
RNNs (continued); Unsupervised Learning: Generative Models, VAEs, GANs |
RNNs, LSTM training for NLP application |
09/12/2018 |
6 | Unsupervised Learning (continued) | Unsupervised learning, GANs, Variational Auto Encoders |
16/12/2018 |
7 | Reinforcement learning, Deep Q-Learning, Policy Gradients | Domain adaptation, style transfer |
23/12/2018 |
8 | Intro to Parallel architectures for DL | Deep reinforcement learning |
30/12/2018 |
9 | Parallel architectures for Training | Introduction to CUDA |
06/01/2019 |
10 11 |
Parallel architectures for Inference; CNNs on non-euclidean domains: graphs and manifolds |
CUDA with PyTorch |
13/01/2019 |
11 | CNNs on non-euclidean domains (continued) | CNN on graphs |
20/01/2019 |
12 | Project Presentations | Project Presentations |