The course is taught in a sequence of units. Each unit takes between one and two weeks so that the entire class can be fit into a single semester. Most units currently have four components:
-
Lecture Notes: These are slides accompanying the class lecture. They include code snippets from the demos.
-
Demo: These are python-based Jupyter notebooks for demonstrations given during the lectures. Some demos have a component that is done in class. The demos do not generally cover all topics, since some concepts are left for the students to figure out for themselves in the labs.
-
Lab: Following the lecture, the students do a python-based exercise at home that builds on the demo. The labs in the repository are given as skeletons with
TODO
markers that the students fill in. -
Problems: These are more analytic problems, also done at home.
-
Setting up python, jupyter and github
- I would recommend using Google Colab unless you know what you are doing. Google Colab
- If you really want to setup a local machine look here
- I would recommend using Google Colab unless you know what you are doing. Google Colab
-
Syllabus
- Syllabus [pdf] [Powerpoint]
-
Unit 1: What is machine learning?
- Lecture: Introduction to Machine Learning [pdf] [Powerpoint]
- Demo: Introduction to numpy vectors
-
Unit 2: Simple linear regression
- Lecture: Simple linear regression [pdf]
[Powerpoint]
- Demo: Understanding automobile mpg
- Lab 1: Due Sept 14 Lab: Boston housing data
- Lecture: Simple linear regression [pdf]
[Powerpoint]
-
Unit 3: Multiple linear regression
- Lecture: Multiple linear regression [pdf] [Powerpoint]
-
Unit 4: Model selection
- Lecture: Model selection [pdf] [Powerpoint]
-
Unit 5: Regularization and LASSO
- Lecture: LASSO Regularization [pdf] [Powerpoint]
-
- Lecture: Linear classification and logistic regression [pdf] [Powerpoint]
- Demo: Breast cancer diagnosis via logistic regression
- Lab: Genetic analysis of Down's syndrome in mice
- Problems [pdf] [Latex]
-
Unit 7: Nonlinear optimization
- Lecture: Nonlinear optimization and gradient descent [pdf] [Powerpoint]
- Demo 1: Computing gradients
- Demo 2: Simple gradient descent optimization
- Lab: Nonlinear least squares material modeling
- Problems [pdf] [Latex]
-
Unit 8: Support vector machines
- Lecture: SVM [pdf] [Powerpoint]
- Demo: MNIST digit classification
- Lab: Extended MNIST with letters
- Problems [pdf] [Latex]
-
Unit 9: Neural networks with Keras and Tensorflow
- Lecture: Neural networks [pdf] [Powerpoint]
- Supplementary notes with solved problems [pdf] [Latex]
- Demo 1: First neural network in Keras
- Demo 2: MNIST neural network classification
- Lab: Music instrument classification
- In-class Exercise
- Problems: [pdf] [Latex]
-
Unit 10: Convolutional and deep networks
- Lecture: Convolutional and deep networks [pdf] [Powerpoint]
- Setting up a GPU instance (Recommended)
- Demo 1: 2D convolutions and convolutional layers in keras
- Demo 2: Creating an image set using the Flickr API
- Demo 3: Exploring the deep VGG16 network
- Demo 4: Building an image classifier using CIFAR10 dataset
- Demo 5: Building an autoencoder for image denoising using CIFAR10 dataset
- Lab: Transfer learning with a pre-trained network (GPU recommended)
- Problems [pdf] [Latex]
-
- Lecture: PCA [pdf], Modifed Note [pdf] [Powerpoint]
- Demo 1: PCA eigen-faces-SVM
- Demo 2: Low-rank matrix completion via embedding layers
- Lab: PCA with hyper-parameter optimization
- Problems [pdf] [Latex]
-
- Lecture: Clustering and EM [pdf] [Powerpoint]
- Demo 1: Document clustering via k-means and latent semantic analysis
- Demo 2: Color quantization via k-means and EM-GMM
- Homework [pdf] [Latex]
-
Unit 13: Decision Trees and Random Forest
- Lecture: Decision tree and random foreast [pdf] [Powerpoint]
- Demo: Prediction of temperature using decision tree and random forest
- Homework [pdf] [Latex]