COMPSCI 389: Introduction to Machine Learning
Spring 2024, University of Massachusetts
Lecture: Tuesdays and Thursdays, 2:30-3:45 in Morrill 2, Room 222
Archived course page. Dates, office hours, and course logistics are retained for historical reference.
Course Information
Download syllabus (.pdf)
Description
The course provides an introduction to machine learning algorithms and applications. Machine learning algorithms answer the question: "How can a computer improve its performance based on data and from its own experience?" The course is roughly divided into thirds: supervised learning (learning from labeled data), reinforcement learning (learning via trial and error), and real-world considerations like ethics, safety, and fairness. Specific topics include linear and non-linear regression, (stochastic) gradient descent, neural networks, backpropagation, classification, Markov decision processes, state-value and action-value functions, temporal difference learning, actor-critic algorithms, the reward prediction error hypothesis for dopamine, connectionism for philosophy of mind, and ethics, safety, and fairness considerations when applying machine learning to real-world problems.
Instructions and Guides
Note: To download an .ipynb file, right-click its link and select "Save Link As" (Firefox), or a similar option in your browser. Then open the downloaded file using VS Code.
| Title | Date | Description | Document Link |
|---|---|---|---|
| Using VS Code and .ipynb Files | February 8, 2024 | Instructions describing how to install Python, VS Code, and set them up to work with .ipynb (Jupyter Notebook) files on macOS and Windows. | instructions (.pdf), instructions (.md) |
| Python and Jupyter Introduction | February 8, 2024 | An example Jupyter Notebook explaining how these notebooks work and providing a very basic introduction to Python (intended for students who took the Java introductory sequence). | notebook (.ipynb) |
Homework Assignments
Note: Homework assignments should be submitted in Gradescope.
| Assignment Number | Date Assigned | Date/Time Due | Document Link |
|---|---|---|---|
| 1 | February 14, 2024 | February 22, 2024 at 2:00pm Eastern | notebook (.ipynb) |
| 2 | March 5, 2024 | March 12, 2024 at 2:00pm Eastern | notebook (.ipynb) |
| 3 | March 26, 2024 | April 2, 2024 at 2:00pm Eastern | notebook (.ipynb) |
| 4 | April 9, 2024 | April 15, 2024 at 2:00pm Eastern | notebook (.ipynb) |
| 5 | April 24, 2024 | May 2, 2024 at 2:00pm Eastern | notebook (.ipynb) |
Lecture Slides and Code Notebooks
| Lecture | Lecture Date | Topic | Document Link |
|---|---|---|---|
| Lecture #1, Part 1 | February 1, 2024 | Course Introduction | slides (.pdf) |
| Lecture #1, Part 2 | February 1, 2024 | Introduction to ML | slides (.pdf) |
| Lecture #2, Part 1 | February 6, 2024 | Introduction to Supervised Learning and Data Sets | slides (.pdf) |
| Lecture #2, Part 2 | February 6, 2024 | Introduction to Pandas and Data Sets (Incomplete) | notebook (.ipynb) |
| Lecture #3, Part 1 | February 8, 2024 | Introduction to Pandas and Data Sets (Complete) | notebook (.ipynb) |
| Lecture #3, Part 2 | February 8, 2024 | Models, Algorithm Template (scikit-learn), and the Nearest Neighbor Algorithm | slides (.pdf) |
| Lecture #4, Part 1 | February 13, 2024 | Nearest Neighbor | notebook (.ipynb) |
| Lecture #4, Part 2 | February 13, 2024 | Model Evaluation | notebook (.ipynb) |
| Lecture #5, Part 1 | February 15, 2024 | Model Evaluation (Summary) | slides (.pdf) |
| Lecture #5, Part 2 | February 15, 2024 | Nearest Neighbor Variants | slides (.pdf) |
| Lecture #5, Part 3 | February 15, 2024 | Evaluation Part 2 | notebook (.ipynb) |
| Lecture #6, Part 1 | February 20, 2024 | Probability, Statistics, and Evaluation | slides (.pdf) |
| Lecture #6, Part 2 | February 20, 2024 | Evaluation Part 3 (partial) | slides (.pdf), notebook (.ipynb) |
| Lecture #7, Part 1 | February 27, 2024 | Evaluation Part 3 | slides (.pdf), notebook (.ipynb) |
| Lecture #7, Part 2 | February 27, 2024 | Evaluation Part 4 | slides (.pdf), notebook (.ipynb) |
| Lecture #7, Part 3 | February 27, 2024 | Review and Validation Sets | slides (.pdf) |
| Lecture #7, Part 4 | February 27, 2024 | Linear Regression and the Optimization Perspective (partial) | slides (.pdf) |
| Lecture #8, Part 1 | February 29, 2024 | Linear Regression and the Optimization Perspective | slides (.pdf) |
| Lecture #8, Part 2 | February 29, 2024 | Gradient Descent (partial) | slides (.pdf) |
| Lecture #9, Part 1 | March 5, 2024 | Gradient Descent | slides (.pdf) |
| Lecture #9, Part 2 | March 5, 2024 | Data Cleaning Intro | notebook (.ipynb) |
| Lecture #9, Part 3 | March 5, 2024 | Data Cleaning (Partial) | slides (.pdf) |
| Lecture #10, Part 1 | March 7, 2024 | Data Cleaning | slides (.pdf) |
| Lecture #10, Part 2 | March 7, 2024 | Neural Networks (partial) | slides (.pdf) |
| Lecture #11, Part 1 | March 12, 2024 | Neural Networks | slides (.pdf) |
| Lecture #11, Part 2 | March 12, 2024 | Automatic Differentiation (partial) | slides (.pdf) |
| Lecture #12, Part 1 | March 14, 2024 | Automatic Differentiation | slides (.pdf), notebook (.ipynb) |
| Lecture #12, Part 2 | March 14, 2024 | Automatic Differentiation for ML | slides (.pdf), notebook (.ipynb) |
| Lecture #12, Part 3 | March 14, 2024 | Introduction to Pytorch (partial) | slides (.pdf) |
| Lecture #13 | March 26, 2024 | PyTorch and Overfitting | slides (.pdf) |
| Lecture #14 | March 28, 2024 | Classification (partial) | slides (.pdf) |
| Lecture #15, Part 1 | April 2, 2024 | Classification | slides (.pdf) |
| Lecture #15, Part 2 | April 2, 2024 | Classification Example | slides (.pdf) |
| Lecture #16 | April 4, 2024 | Generative AI | slides (.pdf) |
| Lecture #17 | April 9, 2024 | Introduction to Reinforcement Learning (partial) | slides (.pdf) |
| Lecture #18 | April 11, 2024 | Supervised Learning Review | slides (.pdf) |
| Test | April 16, 2024 | Test | |
| Lecture 19 Part 1 | April 18, 2024 | Introduction to RL | slides (.pdf) |
| Lecture 19 Part 2 | April 18, 2024 | MDPs and Reward Design (partial) | slides (.pdf) |
| Lecture 20 Part 1 | April 23, 2024 | MDPs and Reward Design | slides (.pdf) |
| Lecture 20 Part 2 | April 23, 2024 | MENACE and REINFORCE (partial) | slides (.pdf) |
| Lecture 21 Part 1 | April 30, 2024 | MENACE and REINFORCE | slides (.pdf) |
| Lecture 21 Part 2 | April 30, 2024 | Value functions, Temporal Difference Learning, and Actor-Critics | slides (.pdf) |
| Lecture 22 | May 2, 2024 | Relation to Psychology and Neuroscience | slides (.pdf) |
| Lecture 23 Part 1 | May 7, 2024 | Relation to Philosophy | slides (.pdf) |
| Lecture 23 Part 2 | May 7, 2024 | Fairness | slides (.pdf) |