ECE 364: Programming Methods for Machine Learning (Fall 2024)

 

Teaching Staff

Farzad Kamalabadi

Instructor
Email: farzadk[at]illinois.edu
Office Hour: Open
Website: [link]

Corey Snyder

Instructor
Email: cesnyde2[at]illinois.edu
Office Hour: Open
 

Ulas Kamaci

Teaching Assistant
Email: ukamaci2[at]illinois.edu
Office Hour: Wednesday 3-5 pm
at ECEB 3015

 


Class Time & Location

Class Time: Tuesday, Thursday 9:30AM-10:50AM
Location: ECEB 3081 (Electrical and Computer Engineering Building)

Work Submission Logistics

Gradescope for assignments (self-enrollment code ): [link]

Class Campuswire

Join the class campuswire with code 1943: [link]

 


 

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

HW1 Latex Files, HW1 PDF,

HW1 Solutions

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

HW2 Latex Files, HW2 PDF

HW2 Solutions

Lecture 9 09/24/2024 Automatic differentiation 3 Lec9-Notebook  
Lecture 10 09/26/2024 Primal optimization Lec10-Notebook , Lec10-Handwritten

HW 3 Latex Files, HW3 PDF

HW3 Solutions

Lecture 11 10/01/2024 Linear regression 1 Lec11-Slides  
Lecture 12 10/03/2024 Linear regression 2 Lec12-Notebook

HW 4 Latex Files, HW4 PDF, hw4_p2.zip

HW4 Solutions

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)