# (Spring’24): CSCI-5931 Deep Learning (Online only)

Graduate course, *Onlne only*, 2024

Deep Learning is a subfield of machine learning mostly concerned with concepts and techniques built on top of the artificial neural network which in turn was inspired by the structure and functionality of human brains. This branch of machine learning is increasingly gaining popularity as deep learning systems are taking over all artificial intelligent tasks, ranging from image classification, language modeling, machine translation, playing games, autonomous vehicle driving, speech recognition, cancer detection and numerous other applications and is behind many recent advances in Artificial Intelligence (AI). In this course you will gain both theoretical and practical knowledge of deep learning concepts and techniques. So, welcome aboard!

# Course objectives

By the end of the course you are expected to gain the following skills:

- Understand fundamentals of artificial neural network, and deep neural networks.
- Develop an understanding on how to train a neural network.
- Determine how a deep neural network can be designed, and implemented to solve real world problems.
- Demonstrate an in-depth understanding of one/more concepts introduced in the deep learning course through a final project.
- Understand and apply the principles of
`responsible AI`

system design:`fairness`

,`inclusiveness`

,`transparency`

,`reliability and safety`

,`privacy and security`

,`accountability`

,`limits of capabilities`

.

# Recommended background

- Good understanding of Calculus,
- Good understanding of Linear Algebra,
- Good understanding of Statistics and Probability theories,
- Good Programming skills (in either Python, or Julia or C++),
- Machine learning

# Required Textbooks

None

# Recommended Textbooks

- Bishop, Chris and Bishop, Hugh (2024). Deep Learning – foundations and concepts. [official-web + book reader]. Springer.
- Goodfellow, Ian and Bengio, Yoshua and Courville, Aaron (2016). Deep learning. [official-web + book reader] MIT press Cambridge.
- Zhang, Aston and Lipton, Zachary C. and Li, Mu and Smola, Alexander J. (2020). Dive into Deep Learning. [official-web + book reader]

# Other online resources

Besides the textbooks listed above the instructor may refer you to review online resources as the course proceeds.

# Schedule

### Module 1 : Machine Learning Preliminaries and setting up compute instances

- Introduction to Machine learning en route to Deep Learning [ PDF ] [ Video]
- Getting you ready to upcoming compute challenges throughout the course. Get familiar with compute resources you can use [Video]
- Nuts and Bolts of Machine Learning (part 1): The types of learning [ PDF ][ Video]
- Nuts and Bolts of Machine Learning (part 2): The task and the datasets [ PDF ] [ Video]
- Nuts and Bolts of Machine Learning (part 3): How to tell the machine learning model is good? [ PDF ] [ Video]
- Evaluating Regression models [ PDF, slide 50 ] [ Video]
- Another look at evaluating linear regression models [Slide PDF] [ Video]
- Bias-variance tradeoffs, Overfitting, Underfitting [Slide PDF] [ Video]
- Dataset splits: training, testing, validation, cross-validation [Slide PDF] [ Video]
- Label encoding, One-hot encoding [Slide PDF] [Video]
- Nuts and Bolts of Machine Learning (part 4): Exploratory Data analysis – a case study: House price prediction [ zip ] [ Video]

### Module 2 : Introduction to Deep Learning with Artificial Neural Networks

- Now, let’s begin: Introduction to Artificial neural networks (ANN) and deep learning [ PDF ] [Video]
- Artificial Neural Networks – the basics [ PDF ], [ Jupyter notebook ]
- A spelled out introduction to artificial neural networks and backpropagation – building a micrograd. A lecture by Andrej Karpathy [Video]

### Module 3: Another introduction to artificial neural network with compute frameworks – Tensorflow

- Compute framework for Artificial Neural Network + Deep Learning [ PDF ] [Video Recording]
- Tensorflow 2.0 [ PDF ] [Video]
- Introduction to Tensors [Jupyter Notebook] [Video]
- Backpropagation with Tensorflow 2.0 [Jupyter Notebook] [Video Recording]
- Tensorflow 2.0 with Tensorboard [ Getting started guide ] [ Deep Dive Into Tensorboard ] [ Talk ]

### Module 4: Another introduction to artificial neural network with compute frameworks – PyTorch, etc.

- Introduction to PyTorch [
**This is a 2 part video lecture:**]- A short lecture by Andrej Karpathy, former student of Prof. Fei Fei Li who works in the AI / Auto-pilot team at Tesla. Here he explains how PyTorch was used to develop the model. [Lecture video]
- Introduction to working with PyTorch – another deep learning compute framework and is not Tensorflow. [Jupyter Notebook] [Lecture recording]
- Neural nets with PyTorch [Lecture notebook] [Video Lecture]

**Special topic on ANN - 1**: Batch normalization [Slides] [Video Recording]**Special topic on ANN - 2**: Dropouts [Slides] [Video Recording]- Regularization [Slides+Codes] [Video Recording]
- Digging deep into Deep Learning lecture slides used on 9/5/2023 during classroom https://docs.google.com/presentation/d/1kTXA88A39kPkqwhOiJGaxGmvn5aTAkg5/edit?usp=share_link&ouid=111045799100246528781&rtpof=true&sd=true

### Module 5: Introduction to Convolution Neural Networks with compute frameworks

- Introduction to Convolution Neural Network [ Notebooks ][Video Recording]
- Convolution Operation, 1x1 conv, implementation aspects [Notebooks] [Video Recording]
- The pooling layer [Notebook] [Video Recording]
- Flattened layer and fully connected layer [Notebooks] [Video Recording]
- Few examples [Notebooks] [Video Recording]
- Comments on weight sharing property [Notebooks] [[Video Recording](https://youtu.be/rjwEVbtPjeQ]

### Module 6: Advanced Convolution Neural Network Models / architectures

- CNN architectures – [ Lecture slide ] [ Video Lecture]
- ImageNet – what is it, and where is it going? [Lecture slides] [Video Lecture by Dr. Fei Fei Li]
- What are ResNets?
**This is a 2 -part lecture: First a talk by Kaiming He, the inventor of ResNet , Second, my lecture to recap ResNet**- A talk by Kaiming He at CVPR 2016 conference on “Deep Residual Learning for Image Recognition” [Lecture slides] [Video Lecture]
- My talk to recap ResNet [Lecture slides] [Video Lecture]

- CNNs with PyTorch [Lecture notebook] [Video Lecture]
- Visualizing CNN components [Lecture notebook] [Video Lecture]
- Let’s summarize CNN (once and for all!) [Lecture slides] [Video Lecture]

### Module 7 – Recurrent Neural Networks and language modeling basics

- Introduction to Recurrent Neural Networks [Notebooks] [Video Recording]
- Basic language modeling with Recurrent Neural Networks [Notebooks] [Video Recording]
- Vanilla architecture of RNN [Notebooks] [Video Recording]
- Long short term memory (LSTM) architecture of RNN [Notebooks] [[Video Recording](https://youtu.be/lJRLhCeh0Xk]

### Module 8 – Reserved for midterm

- Midterm (online)

### Module 9 : Transformer is all you need and another introduction to language modeling

- Transformers [ link to required study materials]
- Natural Language Processing (Part 1)
- Unsupervised Deep Learning [Slides/supporting materials] [Video lecture]
- Autoencoders [Slides/supporting materials] [Video lecture]

### Module 10 : More on transformers and large language models

- Transfer learning revisited [Lecture slides] [Lecture notebook] [Video Lecture]
- A thorough example of PyTorch transfer learning PyTorch Transfer learning at Zero to Mastery Learn PyTorch for Deep Learning book by Daniel Bourke

- LLMs – a lecture by Andrej Karpathy: Slides pdf format, key format, Video recording,
- Customizing existing LLMs Fine-tuning a pre-trained model

### Module 11 : Image Segmentation and Generative Adversarial networks

- Image Segmentation [Slides/supporting materials] [Video lecture]
- Generative Adversarial Nets (GANs) [Slides, supporting materials] [Video lecture p1] [Video lecture p2]

### Module 12 : Reinforcement Learning and deep reinforcement learning

- Deep Reinforcement Learning
- Lecture 1 [Slide1, Code: QL-01.py] [Video1]
- Lecture 2 (by David Silver) [Slide2] [Video2]

### Module 13 : More about reinforcement learning and how useful it is in other learning paradigms

- Module 12 repeated… or study more on the topics.

### Module 14 : Wrapping up the course

- I am wondering you want to become a data scientists [ PDF ] [Video-Recording]
- Challenges with Machine learning system design [ PDF ] [Video-Recording]
- Stories of Machine Learning [ PDF ][ Video-Recording]
- What was covered and where to go from there

### Module 15: Reserved for final exam

- Final exam (online)