About 10601A/C
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 10601A/C include concept learning, version spaces, information
theory, decision trees, neural networks and deep learning, estimation & the
bias-variance tradeoff, hypothesis testing in machine learning, Bayesian
learning, the Minimum Description Length principle, the Gibbs classifier, Naïve
Bayes classifier, Bayes Nets, Markov Random Fields & Graphical Models, the
EM algorithm, Hidden Markov Models, K-Nearest-Neighbors and nonparametric
learning, Maximum Margin classifiers (SVM) and kernel based methods, and
secondary methods like forests, bagging and boosting.
These
sections of 10601 focus 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 10601A/C will be based on almost-weekly programming and/or written
assignments, a mid-term and a final exam.
10601A/C
focuses on a mathematical and computational understanding of what makes machine
learning work. If your interest is primarily in the applied side of machine
learning, you should consider “Machine Learning in Practice” (11344/05834).
10601A/C
is open to all but is recommended for Quantitative Masters students, and non-SCS PhD students. However the prerequisites must be strictly
adhered to. This section is particularly
recommended for students who intend to take additional ML courses.
TECHNOLOGY
USE
1. For class
communication, we will use Piazza. If you are registered for either section A or
section C, you will be automatically enrolled.
If you are registered for one of these two sections but have not
received a welcome message by the first day of class, please email the TA in charge
of Piazza. Please post your
questions to piazza for fast response.
If your question is general enough that it may be of interest to other
students, and it doesn't disclose your solutions, post it publicly. Otherwise, use a private post. We also encourage students to reply to other
students’ public questions if they are confident in their answer. We will later endorse some of these replies,
and top endorsees will get bonus points.
2. For
programming assignments, we will use Autolab. For any questions regarding Autolab, please
email the TA
in charge of Autolab. These
assignments will require you to use Python or Java (your choice, and you can
choose differently for different assignments).
You are expected to know, or be able to pick up quickly, one of these
two general purpose programming languages.
It is not the TAs’ job to teach you these languages, nor to help you
debug your code.
3. For
non-programming assignments, we will use Canvas. For any questions regarding Canvas, please
email the TA in
charge of Canvas.
4. For any
issues regarding the course website,
please email the
TA in charge of the website.