COMPSCI 389: Introduction to Machine Learning

Spring 2024, University of Massachusetts

Lecture: Tuesdays and Thursdays, 2:30-3:45 in Morrill 2, Room 222

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 display .ipynb files, right click the link and select "Save Link As" (Firefox), or a similar option in your browser. Then open the downloaded file using VSCode.

Title Date Description Document Link
Using VSCode and .ipynb Files February 8, 2024 Instructions describing how to install Python, VSCode, 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)