COMS 4771 Machine Learning (Spring 2016)

Time & venue
Tuesdays and Thursdays 10:10 am-11:25 am in 1127 Seeley W. Mudd Building
Instructor
Satyen Kale
Course email
xyz at satyenkale dot com (replace xyz with coms4771)
Office hours
Right after class: Tuesdays and Thursdays 11:25 am - 12:30 pm
TA office hours
Gaurang Sadekar: Wednesdays 4:30 - 6:30 pm
Patanjali Vakhulabharanam: Fridays 10:00 am - 12:00 noon
Robert Ying: Mondays 7:00 - 9:00 pm
Xiyue Yu: Thursdays 4:00 - 6:00 pm
Online forum
All class discussion will be held on Piazza.

Announcements

Apr 28
The final exam will be held on May 10 from 9 am - 12 noon in two classrooms, 1127 Mudd and 233 Mudd. I will post lists of who should go to which classroom shortly.
Apr 28
Kaggle submission instructions: I have created an assignment called "Kaggle project reports and code" on Canvas. Please submit your Kaggle project reports and code there. Only one member of each team should submit the materials in a single zip file. The zip file should have the following structure: it should contain a single folder named with the UNI of the person submitting the code. This folder should contain a pdf file of the report called "report.pdf", and a folder called either "matlab_code" or "python_code" depending on whether you are using MATLAB or python for your code, containing all the code. You may use subfolders in the code folder if you wish but the file final_predictions.m (if you're using MATLAB) or final_predictions.py (if you're using python) should be present in the top level code folder.
Mar 22
Kaggle competition starts today (pending approval by Kaggle moderators.) Sign up for the competition here when it goes live. Project description and ground rules can be found here.
Mar 1
Solutions for practice set of problems for exam 1 have been posted in an announcement on Canvas. These solutions may not be re-distributed without permission of the class instructor. Also, you may not use these solutions for any exam.
Feb 27
The first in-class exam is on 3/3 during regular class hours. You may use a single letter size sheet (both sides) of notes, in addition to class slides. You may use your laptop in order to refer to the slides. Class slides should be strictly in the form presented in class without any notes written on them. You may bring a basic calculator or use a basic calculator app on your phone or laptop for numerical calculations. Any use of the laptop beyond looking at class slides or using a calculator app is strictly forbidden.
A practice set of problems for exam 1 has been posted.
Jan 16
Sign-up for Piazza using this link.
A similar course offered this semester is Daniel Hsu's COMS 4721 (Machine Learning for Data Science).

Schedule

1/19 overview, MLE
[slides]
Read: ESL {1, 4.3}
Sam Roweis' probability and statistics review
Iain Murray's crib-sheet
1/21 classifiers via generative models
[slides]
Read: ESL {4.3}
1/26 nearest neighbor classifiers
[slides]
Read: CML {2.1, 2.2}
HW1 (due 2/9). Data set: usps.mat
HW1 solution and code
1/28 nearest neighbor classifiers (contd.), decision trees
[slides]
Read: CML {1}, ESL {9.2}
2/2 linear clasifiers
[slides]
Read: UML {Chapter 9 introduction to 9.1.1}
2/4 perceptron
[slides, more slides]
Read: CML {3}, ESL {4.5.1}, Daniel Hsu's online-to-batch notes,
voted-perceptron paper {1, 2, 3.1, 5}
2/9 feature expansions, kernels
[slides]
Read: CML {3.7, 4.4, 9.1, 9.2, 9.4}, Daniel Hsu's notes on kernels {1}
HW2 (due 2/23). Data set: spam.mat
HW2 solution and code
2/11 SVMs, SVM dual problem (Guest lecture by Daniel Hsu)
[slides]
Read: CML {6.1, 6.7}, ESL {4.5.2, 12.2}
[Optional: SVM tutorial]
2/16 convex losses and ERM (Guest lecture by Daniel Hsu)
[slides]
Read: CML {6.2, 6.3}
[Optional but recommended: cvxbook {2, 3, 4}]
2/18 convex optimization (Guest lecture by Daniel Hsu)
[slides]
Read: CML {6.4, 6.5}
[Optional but recommended: cvxbook {9.2, 9.3}]
2/23 learning theory
[slides]
Read: UML {3.1 - 3.2.1, 6.1 - 6.4}
2/25 boosting
[slides]
Read: CML {11.2}, intro (from this book)
[Optional: ESL {10}]
3/1 boosting (contd.), importance weighted and multiclass prediction
[slides]
Read: CML {5.1, 5.2}
3/3 In-class exam #1 from 10:10 am - 11:25 am Practice set of problems for exam 1.
3/8 beyond prediction error, cross-validation
[same slides as previous lecture]
Read: ESL {7.10}
3/10 linear regression
[slides]
Read: ESL {3.2 - 3.2.2}
[if needed: Daniel Hsu's linear algebra review]
3/22 regularized regression
[slides]
Read: ESL {3.4.1, 3.4.2, 3.4.3, 3.5.1}
HW3 (due 4/5). Data set: spam.mat
HW3 solution and code
Kaggle competition starts: description.
3/24 regularized regression
[same slides as last class]
Read: ESL {3.4.1, 3.4.2, 3.4.3, 3.5.1}
3/29 regularized regression
[same slides as previous two class]
Read: ESL {3.4.1, 3.4.2, 3.4.3, 3.5.1}
3/31 principal component analysis
[slides]
Read: ESL {14.5.1}, CML {13.2}
[if needed: Daniel Hsu's linear algebra review]
4/5 principal component analysis
[same slides as previous lecture]
Read: ESL {14.5.1}, CML {13.2}
[if needed: Daniel Hsu's linear algebra review]
HW4 (due 4/19)
HW4 solutions
4/7 k-means clustering
[slides]
Read: CML {2.4, 13.1}
4/12 dictionary learning, mixture models
[same slides as previous lecture, mixture models slides]
Read: UML {24.4}, ESL {8.5}
4/14 mixture models, expectation maximization
[slides]
Read: UML {24.4}, ESL {8.5}
[Optional: Daniel Hsu's E-M notes]
4/19 neural networks
[slides (adapted from Stuart Russell's slides)]
Read: UML {20}
[Recommended: practical, efficient backprop]
HW5 (due 4/29) This is purely for extra credit and optional.
HW5 solutions
4/21 neural networks (contd.)
[same slides as previous lecture]
Read: UML {20}
[Recommended: practical, efficient backprop]
[Cool demo]
4/26 online learning
[slides]
Read: UML {21}
[Recommended: Avrim Blum's survey, decision tree paper. Optional: online learning survey]
[Neat online learning demo]
4/28 online learning (contd.)
[same slides as previous lecture]
Read: UML {21}
[Recommended: Avrim Blum's survey, decision tree paper. Optional: online learning survey]
[Neat online learning demo]
5/6 Kaggle competition ends.
5/10 Final exam in 1127 Mudd and 233 Mudd
9:00 am - 12 noon

Course information

Topic
Machine learning
Prerequisites
Basic algorithms and data structures
Linear algebra
Multivariable calculus
Probability and statistics
General mathematical maturity
Proficiency in and regular access to MATLAB
Course work
Homework assignments: 24%
Kaggle prediction competition: 26%
Midterm: 20%
Final: 30%
Textbooks
The Elements of Statistical Learning (ESL) by Hastie, Tibshirani, and Friedman (link)
A Course in Machine Learning (CML) by Daumé (link)
Understanding Machine Learning (UML) by Shalev-Shwartz and Ben-David (link)
Course materials
Copyright for course materials (e.g., lecture slides, homeworks, exams, solutions) is owned by their respective authors; course materials may not be redistributed without explicit permission.

Homework assignments

Formatting policy
Your write-up must be neatly typeset as a PDF document.
It is strongly recommended that you prepare your write-up as a LaTeX document (intro, wikibook). If you do not use LaTeX, you must ensure that the mathematical typesetting is of equal quality and legibility. (Microsoft Office 2013 seems to do a reasonable job.)
If you use LaTeX, you should use the following template: homework.tex, homework.cls, homework.pdf. If you do not use LaTeX, you must use an equivalent template: in particular, ensure that your name, your UNI, and the UNI's of students you discussed the homework with appear on the first page.
Submission policy
You must submit your write-up as a single PDF file, called uni.pdf where uni is replaced with your UNI (e.g., abc1234.pdf), on Columbia Canvas by 1:00 pm of the specified due date. If any code is required, separate instructions will be provided.
Late policy
Late assignments will not be accepted.
Collaboration policy
You are encouraged to discuss the course material and the homework problems with each other in small groups (2-3 people), but you must list all discussion partners in your write-up. Discussion of homework problems may only include brainstorming, problem clarification, and high-level verbal discussion of possible solution approaches. No solution details may be discussed, and discussion must not go as far as one person telling the others how to solve the problem. In addition, each person must write up her/his solutions independently; you may not look at another student's notes, solutions (whether partial or complete), or write-up.
Reference policy
Outside reference materials may only be used if explicitly permitted (i.e., with written permission from the instructor), and they must always be appropriately acknowledged in the write-up. You must always write up your solutions in your own words.
Academic honesty
Students are expected to adhere to the Academic Honesty policy of the Computer Science Department; this policy can be found in full here.
Violations
Violation of any portion of these policies will result in a penalty to be assessed at the instructor's discretion. This may include receiving a zero grade for the assignment in question AND a failing grade for the whole course, even for the first infraction.
Credits: Website design and most lecture slides shamelessly stolen from Daniel Hsu, and policies and LaTeX template from Rocco Servedio.