Machine Learning
CS 5350/CS 6350
Fall 2008
Instructor: Hal Daume III: me AT hal3 DOT name
Office Hours: MEB 3126; Tue 9:30-10:30, Wed 4-5 or (preferably!) by appointment
Schedule: Tuesday/Thursday, 3:40 - 5:00pm
Location: MEB 1208
Mailing list: cs5350@list.eng.utah.edu -- PLEASE subscribe (but don't post)!
teach-cs5350@list.eng.utah.edu -- PLEASE post (by don't subscribe)!
RSS feed
TA: Scott Alfeld (office hours Mon 11-3, Thr 12:10-2, in the CADE lab, or by appointment)

Jump to: [Syllabus] [Homework] [Project] [Links+Software]

 Background and Description

Machine learning is all about finding patterns in data. The whole idea is to replace the "human writing code" with a "human supplying data" and then let the system figure out what it is that the person wants to do by looking at the examples. The most central concept in machine learning is generalization: how to generalize beyond the examples that have been provided at "training time" to new examples that you see at "test time." A very large fraction of what we'll talk about has to do with figuring out what generalization means. We'll look at it from lots of different perspectives and hopefully gain some understanding of what's going on.

There are a few cool things about machine learning that I hope to get across in class. The first is that it's broadly applicable. These techniques have led to significant advances in many fields, including stock trading, robotics, machine translation, computer vision, medicine, etc. The second is that there is a very close connection between theory and practice. While this course is more on the "practical" side of things, almost everything we will talk about has a huge amount of accompanying theory. The third is that once you understand the basics of machine learning technology, it's a very open field and lots of progress can be made quickly, effectively by figuring out ways to formalize whatever we can figure out about the world.

The catalog lists CS 3510 as a prerequisite; this can be waived if you have or can quickly acquire reasonable programming skills (in Matlab) or if you are a graduate student. There will be a fair amount of math in this class, but all I'll really expect you to know coming in is how to take derivatives. Some assignments will probably go quicker if you have some background in continuous math (probability and/or linear algebra), but we'll cover in class all you need to know there.


 Grading

Grading differs between 5350 and 6350. The components are: Late homeworks/projects are not allowed (without prior approval). This is because I need to put solutions up on the web page.

Your overall score will be out of 1*10+4*5+6+6+2=44. You can view the current grades (indexed by the last three digits of your student ID, "++" means "bonus").

 Textbooks

There is no official text book for this class. However, there will be regular readings from course notes and photocopied chapters. These will be made available in advance of lectures and you are expected to have read them, coming in to class!. Recommended (but not required) books:


 Syllabus (tentative)

The following syllabus is subject to change, but likely not by very much. The readings listed are readings that you should have finished by that date. Warning: unlike many classes you're probably used to (in CS), the lectures are not designed to regurgitate what you should have learned in the book. This means that if you don't come prepared, you may lose out!.

Homework assignments are due by before class (by 3:40pm) on the date listed on the syllabus. Programming assignments are to be completed in Matlab.

Date Topics Readings HW Notes
26 Aug Course overview, general classes of problems
Supervised, unsupervised, online and reinforcement learning
Background in discrete probability
- -
Model Fitting
28 Aug Decision trees
Entropy and information gain
Overfitting and pruning
dtrees.pdf (p1-10) -
2 Sep Learning: It's all about generalization
Evaluating learned hypotheses
Cross validation and statistical significance
eval.pdf HW0 due -
4 Sep Nearest neighbors
Geometry of data, feature vectors
knn.pdf -
9 Sep Neural networks
Network structure and perceptron
nnet.pdf (p1-5) HW1 due
11 Sep Matlab tutorial and Q/A session (in CADE Lab 2) - -
Function Approximation
16 Sep Fitting parametric functions
Gradient descent and back-propagation
nnet.pdf (p6-p14) HW2 due -
18 Sep Support vector machines
Optimizing the mistake bound: margins
Burges98.pdf (sec 3-3.4) -
23 Sep Catch-up - HW3 due
P1 due
-
25 Sep Loss functions and regularization
0/1 loss in NP-hard
Hinge loss, log loss, exponential loss
Burges98.pdf (sec 3.5-3.7) - -
30 Sep Loss functions and regularization II
L0, L1, L2 and Linfinity penalties
- HW4 due -
2 Oct Kernels
Dual formulation of SVMs
Burges98.pdf (sec 4) - -
7 Oct Kernels II
From linear to non-linear learning
- -
9 Oct Catch-up and Midterm review - - -
Learning Theory
21 Oct PAC learning
Definition of PAC learning
pac.pdf (through 1.3) HW5 due
P2 due
23 Oct MIDTERM - - -
28 Oct PAC II: VC dimension pac.pdf (rest) -
30 Oct Boosting
Weak learners
schapire99boosting.pdf -
4 Nov Reductions
Multiclass to binary: OVA, AVA
langford05wap.pdf -
6 Nov Reductions II
Cost-sensitive classification, ranking
- HW7 due -
Bayesian Machine Learning
11 Nov Conditional models
Logistic and linear regression, revisited
prob.pdf linreg.pdf (esp p1-5) P3 due
13 Nov Inference in Bayesian models
Maximum a posterior and clustering
- - -
18 Nov Inference in Bayesian models II
(Markov Chain) Monte Carlo
- HW8 due -
20 Nov Inference in Bayesian models III
Expectation maximization
mix_gauss.pdf -
25 Nov Latent variable models II
Matching words and pictures
slides-bayes.pdf P4 due -
Assorted Topics
2 Dec Structured prediction
Conditional random fields and max-margin Markov networks
- -
4 Dec Collaborative Filtering
The NetFlix Challenge
slides-cf.pdf HW9 due -
9 Dec Natural language processing (Riloff) - - -
11 Dec Statistical image processing (Fletcher) - P5 due
HW10 due
-

 Homework Assignments

See the syllabus above for due dates. You may handin your homework/projects here. You're free to use the LaTeX source in any way you want, but you'll need haldefs.sty and notes.sty to build them.

Written Homeworks

Programming Projects
 Competition

You may download the competition description, the code and the one additional (large: 158mb) data set esp.mat all here. As always, handin is here. You may also view the leader board.


 Useful Links and Software

This course has been taught (by me!) in the past: Spring 2008 and Spring 2007 .

This course is similar to several other machine learning courses, taught at other universities: CMU (Tom Mitchell and Andrew Moore), Stanford (Andrew Ng), Cornell (Thorsten Joachims) and Edinburgh (Sethu Vijayakumar). There have also been a series of summer schools on machine learning, some of which have videos up.

Although you won't need to use any of this software for your homeworks/projects, there are a large number of open-source machine learning toolkits out there. (Some of these may be useful for the competition.) A small sample:


 Course Policies

Cheating: Any assignment or exam that is handed in must be your own work. However, talking with one another to understand the material better is strongly encouraged. Recognizing the distinction between cheating and cooperation is very important. If you copy someone else's solution, you are cheating. If you let someone else copy your solution, you are cheating. If someone dictates a solution to you, you are cheating. Everything you hand in must be in your own words, and based on your own understanding of the solution. If someone helps you understand the problem during a high-level discussion, you are not cheating. We strongly encourage students to help one another understand the material presented in class, in the book, and general issues relevant to the assignments. When taking an exam, you must work independently. Any collaboration during an exam will be considered cheating. Any student who is caught cheating will be given an E in the course and referred to the University Student Behavior Committee. Please don't take that chance - if you're having trouble understanding the material, please let us know and we will be more than happy to help.

ADA: The University of Utah conforms to all standards of the Americans with Disabilities Act (ADA). If you wish to qualify for exemptions under this act, notify the Center for Disabled Students Services, 160 Union.

College guidelines: Document concerning adding, dropping, etc. here.