Machine Learning encompasses the study of algorithms that learn from data. It has been a key component in a number of problem domains including computer vision, natural language processing, computational biology and robotics. This class will introduce the fundamental concepts and algorithms in machine learning (supervised as well as unsupervised learning) as well as best practices in applying machine learning to practical problems. The class consists of lectures, problem sets that contain mathematical and programming exercises and two in-class exams.
Undergraduate level training or coursework in algorithms, linear algebra, calculus and multivariate calculus, basic probability and statistics; an undergraduate level course in Artificial Intelligence may be helpful but is not required. A background in programming will also be necessary for the problem sets; specifically students are expected to be familiar with python and scikit-learn (a machine learning package for python) or learn it during the course.
Instructor: Sriram Sankararaman
Office Hours: Boelter 4531D, Tuesday 11:00am-noon
Email: sriram at cs dot ucla dot edu
- Sajad Darabi
Office hours: Boelter 2432, Wednesday 8:00am-10:00am
Email: sajad10 at ucla dot edu
- Nolan Donoghue
Office hours: Boelter 3809, Tuesday, Thursday 9:30-10:30am
Email: nolan at cs dot ucla dot edu
- Ariel Wu
Office hours: Boelter 2432, Tuesday, Thursday 11:30-am-12:30pm
Email: arielwu at cs dot ucla dot edu
While there is not one textbook that covers all the material from this course, readings will come from the following texts:
For a more advanced treatment, the following are useful:
Machine Learning requires a strong mathematical foundation. You may find the following resources useful to brush up your math background.
- Linear algebra
We will extensively be using Python
2.7.x to implement ML algorithms and run experiments. You will require and need to familiarize yourself with the following packages:
- numpy: contains tools for numerical linear algebra, random number generation. For a numpy tutorial, see here .
- scikit-learn : contains tools for machine learning and data science. For a tutorial, see here
We will use Piazza for class discussions. Please go to this
Piazza website to join the course forum (note: you must use a
ucla.edu email account to join the forum). We strongly encourage
students to post on this forum rather than emailing the course staff
directly (this will be more efficient for both students and staff).
Students should use Piazza to:
- Ask clarifying questions about the course material.
- Share useful resources with classmates (so long as they do not
- Look for project partners or other students to form study groups.
- Answer questions posted by other students to solidify your own
understanding of the material.
The course Academic Integrity Policy must be followed on the message
boards at all times. Do not post or request solutions to problem sets! Also,
please be polite.
We will use gradescope to manage and grade problem sets and exams.
Academic Integrity Policy
Group studying and collaborating on problem sets are encouraged, as
working together is a great way to understand new material. Students
are free to discuss the homework problems with anyone under the
- Students must write their own solutions and understand the
solutions that they wrote down.
- Students must list the names of their collaborators (i.e., anyone
with whom the assignment was discussed).
- Students may not use old solution sets from this class or any
other class under any circumstances, unless the instructor grants
Students are encouraged to read the Dean of Students' guide
to Academic Integrity.
Attendance and class participation
Although not a formal component of the course grade, attendance is essential for success in this course. If you are absent without a documented excuse, the instructor and TAs will not be able to go over missed lecture material with you. We emphatically welcome questions and your active participation in this course will enhance your learning experience and that of the other students.
Regrade requests for homework and exams must be made through gradescope within one week after the graded homeworks have been released, regardless of your attendance on that day and regardless of any intervening holidays such as Memorial Day. We reserve the right to regrade all problems for a given regrade request.
The course website is based on material developed by Ameet Talwalkar and
Some of the administrative content on the course website is adapted
from material from Jenn
Wortman Vaughan, Rich Korf, and Alexander Sherstov.
Tentative Schedule (subject to change)
||Problem Set 0
||Math review mini quiz. Statistics
|| Decision trees.
||Linear classification (perceptron)
||CIML 6-6.2, 6.4-6.6
||Overfitting and regularization
||CIML 9-9.2, 9.4-9.6
||Support Vector Machines
||CIML 2.4, 13-13.1
The Expectation Maximization algorithm
Hidden Markov Models (HMMs)