Machine Learning
CMSC 422
Spring 2013
![]() |
Machine Learning
CMSC 422 Spring 2013
|
![]() |
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.
Prerequisites: I take prerequisites seriously. There will be a
lot of math in this class and if you do not come prepared, life
will be rough. You must be able to take derivatives by hand
(preferably of multivariate functions).
You must know what the chain rule of probability is, and Bayes'
rule.
More background is not necessary but is helpful: for instance, dot
products and their relationship to projections onto subspaces, and
what a Gaussian is and why it's okay if it's density is greater than
one.
I've provided some reading
material to refresh these issues in your head, but if you haven't
at least seen these things before, you should beef up your math
background before class begins. On the
programming side, projects will be in Python; you should understand basic
computer science concepts (like recursion), basic data structures
(trees, graphs), and basic algorithms (search, sorting, etc.). (If
you know matlab, here's a nice cheat sheet.)
The purpose of grading (in my mind) is to provide extra incentive for
you to keep up with the material and to ensure that you exit the class
as a machine learning genius. If everyone gets an A, that
would make me happy (sadly, it hasn't happened yet). The components
of grading are:
| 15% | Written homeworks There are fifteen written homeworks (roughly one per week). Each is worth 1% of your final grade. They are graded on a high-pass (100%), low-pass (50%) or fail (0%) basis. These are to be completed individually. (The initial homework, HW00, is not graded, but required if you do not want to fail.) | |
| 30% | Programming projects There are three programming projects, each worth 10% of your final grade. You will be graded on both code correctness as well as your analysis of the results. These must be completed in teams of two or three students. | |
| 15% | Midterm exam There will be an in-class midterm exam, obviously to be completed individually. You may bring one sheet of notes. | |
| 30% | Final exam There will be a (cumulative) final exam, during the official slot, to be completed individually. You may bring one sheet of notes. | |
| 10% | Participation Both in-class and Piazza-based participation. You can get participation points by volunteering for stuff in class or answering or asking questions on Piazza. |
![]() |
There are no official books for this course.Our primary source will
be a collection of notes (aka CIML) I
have been writing.
Other
recommended (but not required) books:
|
| Date | Topics | Required Readings |
Optional Readings |
Due |
| W 23 Jan | Welcome to machine learning | - | - | - |
| F 25 Jan | Decision trees and inductive bias | CIML 1-1.6 | - | HW00 |
| M 28 Jan | Dealing with data | CIML 1.7-1.10 | - | HW01 |
| W 30 Jan | Lab: exploring trees, interpreting results | None | - | - |
| F 01 Feb | Geometry and nearest neighbors | CIML 2-2.3 | - | - |
| M 04 Feb | K-means clustering | CIML 2.4-2.6 | - | HW02 |
| W 06 Feb | Lab: geometric models | None | - | - |
| F 08 Feb | Perceptrons | CIML 3-3.5 | - | - |
| M 11 Feb | Perceptrons II | CIML 3.5-3.7 | - | HW03 |
| W 13 Feb | Lab: perceptrons and linear models | None | - | - |
| F 15 Feb | The importance of good features | CIML 4-4.4 | - | - |
| M 18 Feb | Catch-up | - | - | HW04 |
| W 20 Feb | Evaluation and debugging | CIML 4.5-4.8 | - | P1 |
| F 22 Feb | Lab: which algorithm is best? | None | - | - |
| M 25 Feb | Imbalanced and multiclass classification | CIML 5-5.2 | - | HW05 |
| W 27 Feb | Ranking and collective classification | CIML 5.3-5.5 | - | - |
| F 01 Mar | Lab: multiclass classification | None | - | - |
| M 04 Mar | Linear models and gradient descent | CIML 6-6.4 | - | HW06 |
| W 06 Mar | Lab: gradient descent | None | - | - |
| F 08 Mar | Class cancelled for visit day | - | - | - |
| M 11 Mar | Subgradient descent and support vector machines | CIML 6.5-6.7 | - | HW07 |
| W 13 Mar | Midterm review | None | - | - |
| F 15 Mar | Midterm | None | - | - |
| M 25 Mar | Naive Bayes models | CIML 7-7.5 | - | HW08 |
| W 27 Mar | Lab: Naive Bayes | None | - | P2 |
| F 29 Mar | Conditional probabilistic models | CIML 7.6-7.7 | - | - |
| M 01 Apr | Neural networks | CIML 8-8.3 | - | HW09 |
| W 03 Apr | Deep neural networks | CIML 8.4-8.6 | - | - |
| F 05 Apr | Kernels | CIML 9-9.3 | - | - |
| M 08 Apr | No class | - | - | HW10 |
| W 10 Apr | Lab: kernels | None | - | - |
| F 12 Apr | No class | - | - | - |
| M 15 Apr | Support vector machines II | CIML 9.4-9.6 | - | HW11 |
| W 17 Apr | K-means revisited | CIML 13-13.1 | - | - |
| F 19 Apr | PCA and kPCA | CIML 13.2 | - | - |
| M 22 Apr | Digging into Data I | Unix4Poets | - | HW12 |
| W 24 Apr | Lab: digging into data | None | - | - |
| F 26 Apr | Digging into Data II | - | - | - |
| M 29 Apr | Online learning | TBD | - | HW13 |
| W 01 May | Markov decision processes | Chapter 3 | - | - |
| F 03 May | Imitation learning: DAgger | TBD | - | - |
| M 06 May | Lab: imitation learning | None | - | P3,HW14 |
| W 08 May | Review for final exam | None | - | - |
| F 17 May | Final Exam, 1:30-3:30pm | - | - | - |