• Stars
    star
    105
  • Rank 328,196 (Top 7 %)
  • Language
    Jupyter Notebook
  • License
    MIT License
  • Created over 3 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

CS F425 Deep Learning course at BITS Pilani (Goa Campus)

Welcome to CS F425 at BITS Pilani, Goa Campus!

Primary Instructor (IC) Tirtharaj Dash
Teaching Assistants (TAs) Atharv Sonwane     Anmol Agarwal     Ameya Laad     Akhilesh Adithya

Course handout can be found here.

Scope and Objective of the course

Neural Networks has had a long and rich history, and the reincarnated viewpoint has shifted towards "Deep Neural Networks" or "Deep Learning", primarily due to, (a) availability of the large amount of data, (b) extensive use of powerful graphics processors, (c) availability of software libraries to facilitate deep network implementations, and (d) significant involvement of industrial research labs in deep learning research.

This course on "Deep Learning" would focus on the conceptual and mathematical foundation and computational investigations of recent deep models as part of a series of laboratory experiments and projects. For instance, we will focus on newer convolutional neural networks such as VGG Net, ResNet; various sequence models including attention-based models such as transformers; and also we will touch upon graph representation learning using graph neural networks.

At the end of this course, students should be able to (0) pose real-world problems in deep learning, (1) source and prepare datasets, (2) design suitable deep network architecture, (3) prepare input-output representation (and encodings), (4) decide and design a suitable loss function for training a deep network, (5) training and deploying deep models.

Book(s)

Primary textbooks:

  1. A. Zhang, Z.C. Lipton, M. Li, A.J. Smola, Dive into Deep Learning.
  2. Ian Goodfellow, Yoshua Bengio, Aaron Courville, Deep Learning, MIT Press.
  3. Aggarwal, C. C. (2018). Neural networks and deep learning, Springer.
  4. W.L. Hamilton, Graph Representation Learning Book.

Other good reference books include:

  1. Graves, A. (2012). Supervised sequence labelling with recurrent neural networks.
  2. Francois Chollet, Deep Learning with Python, Manning Publishers.
  3. E. Stevens, L. Antiga, T. Viehmann, Deep Learning with PyTorch, Manning Publishers.

Textbook-3 is available in our library. Other books are available as e-books as href-ed.
Additioanlly, we may also look at relevant papers from NeurIPS, ICLR, ICML, IJCAI, AAAI. These will be primarily used during major and minor projects design.

Theory Materials

References to the relevent study materials are provided in the lecture slides and in some cases, these are made available separately. Duration of each lecture is 50 min, which may get extended by 10-15 min. I am thankful to my students for tolerating this aspect of my teaching. The recoded videos of live lectures are accessible to the registered students only. The slides and videos may not be in sync in some cases; that is, any slide may span over multiple lecture slots.

Lecture In-class Lecture Extra Materials
Lecture 0: Introducing the course slides, video
Tutorial 1: NN Basics slides, video
Tutorial 2: NN Basics slides, video1, video2 A note on Perceptron
Tutorial 3: Optimisation Basics slides
Lecture 1: DL Components and a Bayesian view slides, video
Lecture 2: Deep Feedforward Nets (MLPs) slides, video
Lecture 3: Backpropagation in MLP(1) slides, video Homework
Lecture 4: Backpropagation in MLP(2) slides, video Vectorisation, codes
Lecture 5: Generalisation(1) slides, video What is a dataset?
Lecture 6: Generalisation(2) slides, video
Lecture 7: Dropout, Early Stopping slides, video Dropout Paper
Lecture 8: Optimisation and Parameter Initialisation slides, video
Lecture 9: Adaptive Optimisation Methods slides, video Adam Paper
Lecture 10: Template Matching and CNNs slides, video Yann LeCun's CNN Paper
Lecture 11: Fully-Connected Layers to Convolutions slides, video
Lecture 12: CNN Operators (Convolution, Pooling) slides, video
Lecture 13: Gradient Computation in CNNs Notes, video
Lecture 14: Modern Convolutional Neural Networks materials, video AlexNet, VGG, NiN, GoogLeNet, ResNet
Lecture 15: Transfer Learning video Notebook
Lecture 16: Sequence Learning materials:8.1-8.3, video board
Lecture 17: Recurrent Neural Nets video board
Lecture 18: Backprop Through Time (BPTT) slides, video
Midsem solution discussion video
Lecture 19: Dealing with Vanishing Gradients in RNN slides, video
Lecture 20: Seq-to-Seq Learning, Attention Mechanism slides, video
Lecture 21: Attention and Self-attention slides, video Attention is all you need.
Lecture 22: Multi-head Attention and Transformer slides, video Layer Normalisation
Lecture 23: Representation Learning slides, video
Lecture 24: Representation Learning slides, video
Lecture 25: Generative Modelling (Intro. to VAE) slides, video
Lecture 26: Variational AE slides, video
Lecture 27: Generative Adversarial Network (GAN) slides, video
Lecture 28: Energy-based Generative Modelling (RBM) materials
AI Symp 22: Tutorial Talk on GNNs slides, video

These slides and videos are not really optimised for general public; so, please email me directly if you find any error or mistake in my lecture slides or videos. This will help me correct these the next time. I sincerely thank the MathCha Editor which I use extensively to draw most of the diagrams.

Lab Materials

All our labs will be based on PyTorch. See the official PyTorch Tutorials. We will also have 1 lab on basic Python and PyTorch.

Update: According to students' votes, we are fixing the lab timing to be: Wednesday 6-8 PM. Please make sure to go through the reading materials (given below) before the lab.

To run/edit the colab notebooks, please create a copy in your drive and work on that copy.

Lab Reading Material Recording Exercise Material
Lab 0: Basics of Python and PyTorch Python Tutorial Series by Sentdex
Python Intro by Justin Johnson
Section 2.1-2.3 of d2l.ai
video Notebook1
Notebook2
Lab 1: Autograd and MLP Section 2.4 - 2.5 of d2l.ai
Intro to Autograd
video Notebook
Lab 2: Regularisation Section 4.5.2 - 4.5.3 of d2l.ai video Notebook
Lab 3: Hyperparameter Tuning Section 4.4, 4.6 and 7.5 from d2l.ai
Hyperparameter tuning
video Notebook 1
Notebook 2
Lab 4: Intro to CNNs Section 6 from d2l.ai video Notebook
Lab 5: Intro to CNNs (Continued) Section 6 from d2l.ai video Notebook
Lab 6: Intro to RNNs Section 8 from d2l.ai part 1 Intro, Exercises
Lab 7: Intro to Transformers and BERT NeurIPS Paper: Attention is all you need video Official Pytorch Notebook
Extra 1: AI Symposium 2022 Talk-GNNs Presentation: slides video Official Pytorch Notebook

Lab Projects

Lab Project Details Submission Date Submission Link
Project 1: Residual MLPs Assignment 1 Sep 25, 11:59 PM IST Google Classroom
Project 2: Major Project Assignment 2 Dec 7, 11:59 PM IST Google Classroom

Using our course materials

Non-profitable usage of the materials from this course is absolutely free. However, if you are tech-blogger or a course instructor or a student outside BITS Pilani (Goa Campus) and you are using our course materials for any non-profitable purposes, please credit this course page by providing a proper reference to this page. Any profitable usage of these materials needs permission from the owner (Tirtharaj Dash). Refer the license for more details.