ECE 364: Programming Methods for Machine Learning (Fall 2024)
Teaching Staff
Farzad KamalabadiInstructorEmail: farzadk[at]illinois.edu Office Hour: Open Website: [link] |
Corey SnyderInstructorEmail: cesnyde2[at]illinois.edu Office Hour: Open |
Ulas KamaciTeaching Assistant |
Class Time & Location
Class Time: Tuesday, Thursday 9:30AM-10:50AMLocation: ECEB 3081 (Electrical and Computer Engineering Building)
Course Information
In this course, you will learn how to use auto-differentiation tools like PyTorch, how to leverage them for basic machine learning algorithms (linear regression, logistic regression, deep nets, k-means clustering), and how to extend them with custom methods to fit your needs. Auto-differentiation is one of the most important tools for data analysis and a solid understanding is increasingly important in many disciplines. In contrast to existing courses that focus on algorithmic and theoretical aspects, here we focus on studying material that permits deploying auto-diff tools to your area of interest.
Pre-requisites: Math 257 (Linear Algebra with Computational Applications) or equivalent, basic probability, and proficiency in Python.
Recommended Reference Texts: (1) Pattern Recognition and Machine Learning by Christopher Bishop
(2) Machine Learning: A Probabilistic Perspective by Kevin Murphy
(3) Deep Learning by Ian Goodfellow and Yoshua Bengio and Aaron Courville
Please note that these books are more comprehensive than the material covered in this class.
Course Deliverables:
(1) Homeworks (submission on Gradescope)
(2) Midterm Exams: There will be two midterm exams.
Grading:
40% Homeworks; 30% each Midterm
Optional Bonus Project, worth up to +5% (you may only complete one), to be completed individually:
Due Date: Saturday, December 21, 11:59pm on Gradescope
Option #1 (Background-Foreground Separation): Project 1 Statement, Project 1 Data, Project 1 Helper Codes
Option #2 (Object Detection): Project 2 Statement, Project 2 Data, Project 2 Helper Codes
Office Hours for Bonus Project (Zoom only, unless requested in-person)
Link: https://illinois.zoom.us/j/89045618539?pwd=zzirsiMKpKIMX7eeJqULz5flYyZgzf.1
Monday: 11am-1pm (Central Time)
Tuesday: 12-2pm
Thursday: 11am-1pm
Friday: 9am-11am
Lectures
The syllabus is subject to minor changes.
Event | Date | Description | Materials | Assignments |
---|---|---|---|---|
Lecture 1 | 08/27/2024 | Intro and software install | Lec1-Notebook, Setting up Python environment | |
Lecture 2 | 08/29/2024 | Pytorch tensors, views, indexing | Lec2-Notebook | |
Lecture 3 | 09/03/2024 | Pytorch storage, advanced indexing, CPU/GPU, data types | Lec3-Notebook | |
Lecture 4 | 09/05/2024 | Pytorch functions | Lec4-Notebook | |
Lecture 5 | 09/10/2024 | Linear algebra overview 1 | Lec5-Notebook , Lec5-Handwritten | |
Lecture 6 | 09/12/2024 | Linear algebra overview 2 | Lec6-Notebook , Lec6-Handwritten | |
Lecture 7 | 09/17/2024 | Automatic differentiation 1 | Lec7-Notebook | |
Lecture 8 | 09/19/2024 | Automatic differentiation 2 | Lec8-Notebook | |
Lecture 9 | 09/24/2024 | Automatic differentiation 3 | Lec9-Notebook | |
Lecture 10 | 09/26/2024 | Primal optimization | Lec10-Notebook , Lec10-Handwritten | |
Lecture 11 | 10/01/2024 | Linear regression 1 | Lec11-Slides | |
Lecture 12 | 10/03/2024 | Linear regression 2 | Lec12-Notebook | |
Lecture 13 | 10/08/2024 | Logistic regression | Lec13-Notebook, Lec13-Slides | |
Lecture 14 | 10/10/2024 | Review for Midterm 1 | Lec14-Notebook, Lec14-Notebook Solutions | |
Lecture 15 | 10/15/2024 | Midterm 1 (in class) | Midterm 1 Solutions | |
Lecture 16 | 10/17/2024 | Multiclass logistic regression | Lec16-Notebook | |
Lecture 17 | 10/22/2024 | Pytorch optimizers, datasets, dataloaders 1 | Lec17-Notebook | |
Lecture 18 | 10/24/2024 | Pytorch optimizers, datasets, dataloaders 2 | Lec18-Notebook | |
Lecture 19 | 10/29/2024 | Deep nets 1 | Lec19-Notebook | |
Lecture 20 | 10/31/2024 | Deep nets 2 | Lec20-Notebook | |
Break | 11/05/2024 | No class (Election Day) | ||
Lecture 21 | 11/07/2024 | Deep nets 3 | Lec21-Notebook | |
Lecture 22 | 11/12/2024 | Deep nets 4 | Lec22-Notebook | |
Lecture 23 | 11/14/2024 | Principal Component Analysis (PCA) | Lec23-Slides | |
Lecture 24 | 11/19/2024 | K-Means Clustering and Gaussian Mixture Models (GMM) | Lec24-Slides | |
Lecture 25 | 11/21/2024 | Generative Adversarial Networks (GAN) | Lec25-Slides | |
Break | 11/26/2024 | Thanksgiving | ||
Break | 11/28/2024 | Thanksgiving | ||
Lecture 26 | 12/03/2024 | Object Detection, Semantic Segmentation, Project Preliminaries | Lec26-Notebook | |
Lecture 27 | 12/05/2024 | Midterm 2 Review | Lec27-Notebook | |
Lecture 28 | 12/10/2024 | Midterm 2 (in class) | Midterm 2 Solutions |