University of Maryland - Fall 2015
Piazza sign up: piazza.com/umd/fall2015/cmsc422
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: 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 course schedule is below. Readings are to be completed before class on the listed date. Homework and project deadlines are viewable on the handin server:
Each homework is worth 0.5 points (total 6). Each lab is worth 2 points (total 20). Each project is worth 8 points (total 24). The midterm is 15 points and the final is 25 points (total 40). Participation is 10 points (in class or on piazza).
There will be occasional opportunities for extra credit.
Hal Daumé III (Professor)
Office Hours Monday 3-4pm AVW 3227
Ryan Dorson (TA)
Office Hours Wednesday 10-11:30am AVW 4103
Click the Edit button to add class information.
You have the option of deleting this announcement from just the course homepage or deleting this announcement from the course homepage and Q&A feed. What would you like to do?
You'll lose everything you typed, plus all the time it took to type it...