# CS 444: Topics in Computer Science (Deep Learning) ## News ## Overview The principal purpose of this course is to introduce deep learning through a comparative presentation of methodology and practical examples. The course particularly focus on fundamentals of deep neural networks and its application to NLP, computer vision, deep generative modeling and reinforcement learning. The course is intended for computer science students with an applied mathematics orientation and knowledge on basic machine learning, and also for students in other programs (computer and electrical engineering, statistics, mathematics, psychology) who are interested in this area. ## Topic Overview - The course will cover basic concepts like feed-forward neural networks, convolutional neural networks, RNNs as well as recent advances like attention, batch normalization, transformer, style transfer, etc. An importnat part of the course is that students will not only learn these conceptually but will build their own DL toolbox of these modules to learn the concept completely. The course will also cover some advanced topics like generative models including topics like variational autoencoders and generative adversarial networks. The plan for the advanced topics can be adjusted though depending on the progress of the first part. - A simlar course was taught at graduate-level [CS536](https://hackmd.io/@Tn97A1U0QG6gBtFPXRh4oQ/B1sZLO55r). The undergraduate course (CS445) will move slower and easier and may not cover some of the topics. ## Pre-Requisites 1. CS 440 or CS 439 1. I encourage students to take [CS 455: Introduction to Machine Learning](http://karlstratos.com/teaching/cs455fall20/cs455fall20.html) together with this course for maximal learning for the topic of model machine learning. 5. Students must be familiar with **python** programming. The homework will be based on [**PyTorch**](https://pytorch.org/), a python framework for deep learning. Thus, some experience of PyTorch will be helpful although the course will provide short intro lecture on using PyTorch. Students should set up the PyTorch programming environment as well. - [Getting Started With Pytorch In Google Collab With Free GPU](https://hackernoon.com/getting-started-with-pytorch-in-google-collab-with-free-gpu-61a5c70b86a) ## Instructor & TA - Instructor - Sungjin Ahn (sungjin.ahn@cs.rutgers.edu) at CBIM-07 - TBA ## Time and Location - When: Tuesday and Thursday at 5:00pm - 6:20pm - Where: [BE-253](https://maps.rutgers.edu/#/?click=true&lat=40.52278946165586&lng=-74.43937818983225&selected=4145&sidebar=true&zoom=17) ## Office Hours <!-- - Instructor office hour: 10:00~11:00am on Thursday (CBIM 9) - TA office hour: 4-5pm on Friday --> ## Grading - Homeworks (35%) - There will be three programming assignments - Midterm Exam (30%) - Final Projects (35%) ## Textbooks DL & ML General 1. [Dive into Deep Learning (DDL)](https://d2l.ai/) 1. Deep Learning (DL), Goodfellow, Ian and Bengio, Yoshua and Courville, Aaron, MIT Press, 2016 3. [Pattern Recognition and Machine Learning (PRML)](https://www.microsoft.com/en-us/research/uploads/prod/2006/01/Bishop-Pattern-Recognition-and-Machine-Learning-2006.pdf), Christopher C. Bishop, Springer, 2006 4. [Natural Language Processing with Distributed Representations (NLP)](https://github.com/nyu-dl/NLP_DL_Lecture_Note/blob/master/lecture_note.pdf), Kyunghyun Cho ## Homework <!-- 1. [HW1](https://hackmd.io/@Tn97A1U0QG6gBtFPXRh4oQ/S1VpZPjzL) --> 1. HW1 2. HW2 3. HW3 ## Final Project [Description](https://hackmd.io/@Tn97A1U0QG6gBtFPXRh4oQ/rJ9qf0V-8) ## Lecture Slides - See Canvas <!-- - [Link](https://drive.google.com/drive/folders/1mvXGhnnmEHPbXaZYzisTfSqJXuZcv-_O?usp=sharing) --> ## Schedule <!-- 1. 1/21 - Course Overview, Basic Concepts for ML 2. 1/24 - Basic Concepts for ML 3. 1/28 - Linear Networks, Softmax, Multilayer Perceptrons, Regularization, Activation Functions 4. 1/30 - Backpropagation, Gradient Explosion, Vanishing, Dropout 5. 2/04 - Convolutional Networks 6. 2/06 - Modern Convolutional Networks (VGG, NiN, GoogLeNet, Batch Normalization, ResNet) 7. 2/11 - Modern Convolutional Networks, **HW1 release** 8. 2/13 - Advanced Convolutions (Deconv, Dilated Conv), RNNs 9. 2/18 - RNNs, Modern RNNs (LSTM, GRU) 10. 2/20 - Modern RNNs, Attention - Attention: See also [DDL](https://d2l.ai/) Chapter 10 and [NLP](https://github.com/nyu-dl/NLP_DL_Lecture_Note/blob/master/lecture_note.pdf) Chapter 6.3 12. 2/25 - Seq2Seq Attention 14. 2/27 - Multi-Head Self Attention, Transformer, GPT-2 - [Transformer paper](https://arxiv.org/pdf/1706.03762.pdf), Blog: [Illustrated Transformer](http://jalammar.github.io/illustrated-transformer/) 16. 3/03 - Optimization for Deep Learning #1 17. 3/05 - Optimization for Deep Learning #2 18. 3/10 - Word Embedding 19. ~~3/12~~ - Spring Recession ~~3/17~~ - Spring Recession ~~3/19~~ - Spring Recession 19. 3/24 - BERT - [BERT Paper](https://arxiv.org/pdf/1810.04805.pdf) 21. 3/26 - Deep Generative Models - VAE #1 22. 3/31 - HW1 Review and HW2 Q&A 23. 4/02 - Deep Generative Models - VAE #2 24. 4/07 - Deep Generative Models - VAE #3 <!-- Conditional VAE, VRNN, Gumbel-Softmax, DRAW --> <!-- 26. 4/09 - Deep Generative Models - VAE #4 27. 4/14 - Deep Generative Models - GAN #1 <!-- GAN, InfoGAN, ConditionalGAN, CycleGAN, f-GAN, WGAN --> <!-- 28. 4/16 - Deep Generative Models - GAN #2 29. 4/21 - Deep Generative Models - GAN #3 30. 4/23 - Deep Generative Models - GAN #4 (HW3 Release) 31. 4/28 - TBD 32. 4/30 - TBD --> <!-- 33. (Remaining topics: Graph Neural Networks, Meta-Learning, Neural Turing Machine, DRL) --> <!-- 34. 5/05 - **Final Presentation I** 35. 5/07 - **Final Presentation II** 36. 5/15 - HW3 Due --> --> -->