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
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 | ||
Lecture 17 | 10/22/2024 | Pytorch optimizers, datasets, dataloaders 1 | Lec17-Notebook | |
Lecture 18 | 10/24/2024 | Pytorch optimizers, datasets, dataloaders 2 | Lec18-Notebook | HW 5 Latex Files, HW5 PDF, hw5_p4.zip |
Lecture 19 | 10/29/2024 | Deep nets 1 | Lec19-Notebook | |
Lecture 20 | 10/31/2024 | Deep nets 2 | Lec20-Notebook | |
Lecture 21 | 11/05/2024 | No class (Election Day) | ||
Lecture 22 | 11/07/2024 | Deep nets 3 | Lec21-Notebook | HW 6 Latex Files, HW6 PDF, hw6_p3.zip |
Lecture 23 | 11/12/2024 | Deep nets 4 | Lec22-Notebook | |
Lecture 24 | 11/14/2024 | Special topics (TBD) | ||
Lecture 25 | 11/19/2024 | Special topics (TBD) | ||
Lecture 26 | 11/21/2024 | Special topics (TBD) | ||
Break | 11/26/2024 | Thanksgiving | ||
Break | 11/28/2024 | Thanksgiving | ||
Lecture 27 | 12/03/2024 | Special topics (TBD) | ||
Lecture 28 | 12/05/2024 | Special topics (TBD) | ||
Lecture 29 | 12/10/2024 | Midterm 2 (in class) |