Syllabus and Course Schedule

Time and Location: Monday, Wednesday 9:30am-10:50am, NVIDIA Auditorium
Class Videos: Current quarter's class videos are available here for SCPD students and here for non-SCPD students.
Note: This is being updated for Spring 2020. Please check back soon.

EventDateDescriptionMaterials and Assignments
Lecture 1 9/23 Introduction and Basic Concepts
Lecture 2 9/25 Supervised Learning Setup. Linear Regression. Class Notes
  • Supervised Learning, Discriminative Algorithms [pdf]
Assignment 9/26 Problem Set 0 [link]. Due Wednesday, Oct 2 at 11:59pm
Section 1 9/28 Friday Lecture: Linear Algebra. Notes
  • Linear Algebra Review and Reference [pdf]
  • Linear Algebra, Multivariable Calculus,
    and Modern Applications
    (Stanford Math 51 course text) [pdf]
Lecture 3 9/30 Weighted Least Squares. Logistic Regression. Netwon's Method
Perceptron. Exponential Family. Generalized Linear Models.
Class Notes
  • Generative Algorithms [pdf]
Lecture 4 10/2
Assignment 10/2 Problem Set 1 [link]. Due Wednesday, Oct 16 at 11:59pm
Section 2 10/4 Friday Lecture: Probability Notes
  • Probability Theory Review [pdf]
  • The Multivariate Gaussian Distribution [pdf]
  • More on Gaussian Distribution [pdf]
Lecture 5 10/7 Gaussian Discriminant Analysis. Naive Bayes.
Lecture 6 10/9 Laplace Smoothing. Support Vector Machines.
Class Notes
  • Support Vector Machines [pdf]
Section 3 10/11 Friday Lecture: Python and Numpy Notes
Lecture 7 10/14 Support Vector Machines. Kernels.
Lecture 8 10/16 Neural Networks - 1 Class Notes
  • Deep Learning [pdf]
  • Backpropagation [pdf]
Assignment 10/16 Problem Set 2 [link]. Due Wednesday, Oct 30 at 11:59pm
Section 4 10/18 Friday Lecture: Evaluation Metrics Notes
  • Evaluation Metrics [pdf]
Project 10/18 Project proposal due 10/18 at 11:59pm.
Lecture 9 10/21 Neural Networks - 2
Lecture 10 10/23 Bias - Variance. Regularization. Feature / Model selection. Class Notes
  • Regularization and Model Selection [pdf]
Section 5 10/25 Friday Lecture: Deep Learning Notes
  • Deep Learning [pdf]
Lecture 11 10/28 Practical Advice for ML projects. Class Notes
  • ML Advice [pdf]
Assignment 10/30 Problem Set 3 [link]. Due Wednesday, Nov 13 at 11:59pm
Lecture 12 10/30 K-Means. GMM (non EM). Expectation Maximization. Class Notes
  • Unsupervised Learning, k-means clustering. [pdf]
  • Mixture of Gaussians [pdf]
  • The EM Algorithm [pdf]
Section 6 11/1 Friday Lecture: Midterm Review Class Notes
  • Midterm review [pdf]
Lecture 13 11/4 Expectation Maximization. Factor Analysis. Class Notes
  • Factor Analysis [pdf]
Midterm 11/5 The midterm details are posted on Piazza.
Lecture 14 11/6 Principal and Independent Component Analysis. Class Notes
  • Principal Components Analysis [pdf]
  • Independent Component Analysis [pdf]
Section 7 11/8 Friday Lecture: Decision Trees. Boosting. Bagging. Class Notes
  • Decision trees [pdf]
  • Decision tree ipython demo [ipynb]
  • Boosting algorithms and weak learning [pdf]
Lecture 15 11/11 Weak Supervision Class Notes
Lecture 16 11/13
Assignment 11/13 Problem Set 4 [link] . Due Wednesday, Dec 4 at 11:59pm
Section 8 11/15 Friday Lecture: On critiques of Machine Learning Class Notes
Project 11/15 Project milestones due 11/15 at 11:59pm.
Lecture 17 11/18 Value Iteration and Policy Iteration Class Notes
  • Reinforcement Learning and Control [pdf]
Lecture 18 11/20 Bias and Variance Class Notes
  • Bias / Variance [pdf]
Lecture 19 12/2 Learning Theory Class Notes
  • Learning Theory [pdf]
Lecture 20 12/4 Course wrap-up. Beyond CS229 Guest Lectures! Details [link]
Project 12/11 Poster submission deadline, due 12/11 at 11:59pm (no late days).
Project 12/12 Poster presentations from 8:30-11:30am. Venue and details to be announced.
Project 12/13 Project final report due 12/13 at 11:59pm (no late days).
Supplementary Notes
  1. Online Learning and the Perceptron Algorithm [pdf]
  2. Binary classification with +/-1 labels [pdf]
  3. The representer theorem [pdf]
  4. Hoeffding's inequality [pdf]
Other Resources
  1. Advice on applying machine learning: Slides from Andrew's lecture on getting machine learning algorithms to work in practice can be found here.
  2. Previous projects: A list of last year's final projects can be found here.
  3. Data: Here is the UCI Machine learning repository, which contains a large collection of standard datasets for testing learning algorithms. If you want to see examples of recent work in machine learning, start by taking a look at the conferences NIPS(all old NIPS papers are online) and ICML. Some other related conferences include UAI, AAAI, IJCAI.
  4. Viewing PostScript and PDF files: Depending on the computer you are using, you may be able to download a PostScript viewer or PDF viewer for it if you don't already have one.
  5. Machine learning study guides tailored to CS 229 by Afshine Amidi and Shervine Amidi.