This is the course website for EE 519, Deep Learning Theory & Fundamentals, Spring 2023 quarter.
Meeting time: Tue/Thu 4:40-6:30PM, FAB 48
Office hours: Thu 11:30AM-12:30PM, Zoom (link in Slack) and by appointment
Course Description
This course provides an introduction to the theory and practice of deep learning, with an emphasis on deep neural network-based approaches. We will start by reviewing the principles of machine learning through the lens of neural networks and deep learning. We will then move on to summarize the state of modern deep learning and familiarize ourselves with the most prominent models, such as convolutional and recurrent neural networks. We will round out the course with topics that are the subject of current research, such as representation learning and deep generative models.
Students should have a firm understanding of linear algebra and probability, at the level of EE 516: Mathematical Foundations of Machine Learning and EE 520: Random Processes, respectively. Students should also be comfortable with programming in Python.
Textbook: The course will utilize the free textbooks below.
Coding: Training neural networks, especially later in the quarter, can require use of intensive computational resources. As a result, students are required to purchase a Google CoLab Pro subscription for the quarter (estimated cost $30), though you may choose to utilize a free account until you require extra resources.
Syllabus: The syllabus can be found here.
Communication: All written questions should be posted to the appropriate channel on the Slack workspace (see Homework 0).
Course Schedule
You are required to do the textbook readings before the corresponding class time. Class time will be used to dive into more theoretical aspects of deep learning and to discuss common coding questions. Assignments are typically due Fridays at 11:59PM.
Date | Lecture | Topic | D2L Sections | Assignment (Due Friday) |
---|---|---|---|---|
4/4 | 1 | introduction, empirical risk minimization | Preface - 2.7 | — |
4/6 | 2 | generalization, object-oriented programming | Ch. 3 | HW0 |
4/11 | 3 | linear classifiers | Ch. 4 | — |
4/13 | 4 | multi-layer perceptrons, backpropagation | 5.1 - 5.3 | — |
4/18 | 5 | practical training issues, dropout | 5.4 - 5.7 | — |
4/20 | 6 | NO CLASS | Ch. 6 | HW1 |
4/25 | 7 | convolutional neural networks | Ch. 7 | — |
4/27 | 8 | convolutional neural networks | — | MP1 |
5/2 | 9 | modern CNNs | Ch. 8 | — |
5/4 | 10 | computer vision | Ch. 14 | — |
5/9 | 11 | recurrent neural networks | Ch. 9 | — |
5/11 | 12 | recurrent neural networks | Ch. 9 | HW2 |
5/16 | 13 | modern RNNs | Ch. 10 | — |
5/18 | 14 | modern RNNs | Ch. 10 | MP2 |
5/23 | 15 | attention and transformers | Ch. 11 | — |
5/25 | 16 | attention and transformers | Ch. 11 | — |
5/30 | 17 | reinforcement learning | Ch. 17 | — |
6/1 | 18 | reinforcement learning | Ch. 17 | HW3 |
6/6 | 19 | reinforcement learning | Ch. 17 | — |
6/8 | 20 | theory | — | MP3 |
Assignments
All assignments must be submitted via gradescope to obtain credit. See Homework 0 below for information on how to set up an account.
I provide the \(\LaTeX\) file used to generate each homework below. You must use this as a template for the mini projects.
- Homework 0, Due: April 9, 2023 (pdf) (tex)
- Homework 1, Due: April 21, 2023 (pdf) (tex) (files)
- Mini Project 1, Due: April 28, 2023 (pdf) (tex) (files)
- Homework 2, Due: May 12, 2023 (pdf) (tex) (files)
- Mini Project 2, Due: May 21, 2023 (pdf) (tex) (files)
- Homework 3, Due: June 4, 2023 (pdf) (tex) (files)
- Mini Project 3, Due: June 16, 2023 (pdf) (tex) (files)
Resources
- \(\LaTeX\): The best way to learn is to hack examples, like those I provide for the homework assignments above. A few other good resources are below.
- tutorial
- Learn LaTeX in 30 minutes
- wikibook
- LaTeX math symbols
- Overleaf: An online LaTeX editor with a Google Docs flavor
- An easy way to include code with your \(\LaTeX\) file is via the pdfpages package.
- Technical Resources: The below may be helpful resources.
- Python Resources: You should install Python 3 (latest stable version) using the Anaconda distribution. I also recommend making use of Jupyter notebooks, but this is not required.