10-601 Course Description
Machine Learning (ML) asks "how can we design programs that automatically improve their performance through experience?" This includes learning to perform many types of tasks based on many types of experience, e.g. spotting high-risk medical patients, recognizing speech, classifying text documents, detecting credit card fraud, or driving autonomous robots.
Topics covered in 10-601 include concept learning, version spaces, decision trees, neural networks, computational learning theory, active learning, estimation & the bias-variance tradeoff, hypothesis testing, Bayesian learning, the Minimum Description Length principle, the Gibbs classifier, Naïve Bayes classifier, Bayes Nets & Graphical Models, the EM algorithm, Hidden Markov Models, K-Nearest-Neighbors and nonparametric learning, reinforcement learning, genetic algorithms, bagging and boosting.
Further information for section A:
This section of 10-601 focuses on the mathematical, statistical and computational foundations of the field. It emphasizes the role of assumptions in machine learning. As we introduce different ML techniques, we work out together what assumptions are implicit in them. We use the Socratic method whenever possible, and student participation is expected. We focus on conceptual depth, at the possible expense of breadth.
Grading in 10-601A will be based on almost-weekly programming assignments, occasional written assignments, and an exam.
10-601A focuses on understanding what makes machine learning work. If your interest is primarily in learning the process of applying ML effectively, and in the practical side of ML for applications, you should consider Machine Learning in Practice (11344/05834).
10-601 is open to all but recommended for CS Seniors & Juniors, Quantitative Masters students, and non-SCS PhD students. This section is particularly recommended for students who intend to take additional ML courses.
Pre-requisites/Co-requisites for 10-601A:
Note to graduate students: pre-requisites/co-requisites are not automatically enforced for graduate students. It is your responsibility to ensure that you have the prerequisites/co-requisites before you register for this course.
1. You need to have, before starting this course, significant experience programming in a general programming language like JAVA, C, or C++. For undergraduate students, this will be satisfied for example by having passed 15-122 (Principles of Imperative Computation) with a grade of ‘C’ or higher, or comparable courses elsewhere.
2. You need to have, before starting this course, college-level discrete mathematical maturity, as can be achieved at CMU by having passed 21-127 (Concepts of Mathematics) or 15-151 (Mathematical Foundations of Computer Science) with a grade of ‘C’ or higher, or comparable courses elsewhere.
3. You need to attain, before the middle of the semester, a basic familiarity with probability and statistics, as can be achieved at CMU by having taken, or concurrently taking: 36-217 (Probability Theory and Random Processes) or 36-225 (Introduction to Probability and Statistics I), or 15-359 or 21-325, or comparable courses elsewhere.