ECE 398 AS: Programming Methods for Machine Learning (Fall 2022)

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 tools are 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: Basic probability, basic linear algebra, and proficiency in Python.
Course Deliverables:
(1) Homework (no late submission accepted)
(2) Midterm
(3) Final
Grading:
30% homework, 30% midterm, 40% final
Grading policy is subject to change.
Office Hours:
Thursday: 11:00 AM - Noon, starting 9/1/2022
Office hours will be held on Zoom (same link as lectures)
Final Exam: see syllabus
Instructor
Class Time & Location
Class Time: Tuesday, Thursday 9:30 AM - 10:50 AM
Lectures will be held on Zoom [link].
Lectures
The syllabus is subject to change.
| Event | Date | Description | Slides | Material | |
|---|---|---|---|---|---|
| Lecture 1 | 08/23/2022 | Intro and Software Install | [Notebook] | ||
| Lecture 2 | 08/25/2022 | Pytorch Tensors, Views, Indexing 1 | [Notebook] | ||
| Lecture 3 | 08/30/2022 | Pytorch Tensors, Views, Indexing 2 | Same as above | ||
| Lecture 4 | 09/01/2022 | Pytorch Storage and Functions 1 | [Notebook] | ||
| Lecture 5 | 09/06/2022 | Pytorch Storage and Functions 2 | [Notebook] | ||
| Lecture 6 | 09/08/2022 | Pytorch Storage and Functions 3 | Same as above | ||
| Lecture 7 | 09/13/2022 | Linear algebra and differentiation w.r.t. vectors/matrices | [Notebook] | ||
| Lecture 8 | 09/15/2022 | Pytorch Matrix | [Notebook] | ||
| Lecture 9 | 09/20/2022 | Automatic differentiation 1 | [Notebook] | ||
| Lecture 10 | 09/22/2022 | Automatic differentiation 2 | [Notebook] | ||
| Lecture 11 | 09/27/2022 | Automatic differentiation 3 | [Notebook] | ||
| Lecture 12 | 09/29/2022 | Primal optimization | [Notebook] | ||
| Lecture 13 | 10/04/2022 | Linear regression 1 | [Slides] | ||
| Lecture 14 | 10/06/2022 | Linear regression 2 | [Notebook] | ||
| Lecture 15 | 10/11/2022 | Pytorch Optimizers | [Notebook] | ||
| Lecture 16 | 10/13/2022 | Midterm (everything up to now) | |||
| Lecture 17 | 10/18/2022 | Pytorch Dataset | [Notebook] | ||
| Lecture 18 | 10/20/2022 | Pytorch Dataloaders | [Notebook] | ||
| Lecture 19 | 10/25/2022 | Logistic regression 1 | [Notebook] | ||
| Lecture 20 | 10/27/2022 | Logistic regression 2 | Same as above | ||
| Lecture 21 | 11/01/2022 | Multiclass logistic regression | [Notebook] | ||
| Lecture 22 | 11/03/2022 | Deep Nets 1 | [Notebook] | ||
| Break | 11/08/2022 | General Election Day (all-campus holiday) – no lecture | |||
| Lecture 23 | 11/10/2022 | Deep Nets 2 | Same as above | ||
| Lecture 24 | 11/15/2022 | Deep Nets 3 | Same as above | ||
| Lecture 25 | 11/17/2022 | Deep Nets 4 | [Notebook] | ||
| Break | 11/22/2022 | Thanksgiving Break | |||
| Break | 11/24/2022 | Thanksgiving Break | |||
| Lecture 26 | 11/29/2022 | Temporal data | [Notebook] | ||
| Lecture 27 | 12/01/2022 | Clustering | [Notebook] | ||
| Lecture 28 | 12/06/2022 | Final (all material) |
