Miguel Á. Carreira-Perpiñán
Professor
Electrical Engineering and Computer Science
School of Engineering
University of California, Merced
mcarreira-perpinan-[at]-ucmerced.edu; 209-2284545
Office: 217, Science & Engineering Building 2
Office hours: Tuesdays/Thursdays 3:30-4:25pm (SE2-217).
TA: Magzhan Gabidolla, mgabidolla-[at]-ucmerced.edu. TA hours: Mondays 2-3pm, Thursdays 12-1pm (SE2 lobby).
Lectures: Tuesdays/Thursdays 4:30-5:45pm (SSB130).
Lab class: Fridays 1:30-4:20pm (section 02L) (SSM154)
Course web page: http://faculty.ucmerced.edu/mcarreira-perpinan/teaching/CSE176
Survey of techniques for the development and analysis of software that learns from experience. Specific topics include: supervised learning (classification, regression); unsupervised learning (clustering, dimensionality reduction); reinforcement learning; computational learning theory. Specific techniques include: Bayesian methods, mixture models, decision trees, instance-based methods, neural networks, kernel machines, ensembles, and others.
Prerequisites:
Essentially, you need to know the fundamentals of linear algebra, multivariate calculus and probability, and have good programming skills. More specifically, these are the most important concepts you need to know:
I emphasize that a solid knowledge of these concepts is strictly necessary to do well in this course. Below I give some resources you can use the help you refresh this knowledge if necessary; make sure to do so from day one. You also need to know (or be able to learn quickly) Matlab programming at a reasonably proficient level, since we will use it during the labs; and to be able to use open-source packages written in other languages, such as C/C++, Python or R, at a user level (not at a programmer level), since we will need that for the projects.
We will use the following lecture notes:
Carreira-Perpiñán, M. Á. (2019): CSE176 Introduction to Machine Learning: Lecture notes. University of California, Merced, 2015-2019.
There is no required textbook (we will use the lecture notes above), but these are some books recommended as additional reading at the undergraduate level:
If you want to refresh your knowledge of linear algebra, multivariate calculus or probability, the following are helpful (any edition or similar book is fine):
Some of the machine learning books above have appendices on linear algebra, multivariate calculus or probability. The following books also have extensive content on the mathematics needed for machine learning:
Also, the following are useful:
You can also ask math questions at The Math Center and The STEM Center.
Before each class, you should have read the corresponding part of the notes. I will teach the material roughly in the order below:
The labs are intended 1) to do some pen-and-paper exercises and 2) to explore machine learning in Matlab. Each lab explores a different machine learning problem or algorithm. We will provide you with sample code implementing an algorithm. The TA will demonstrate it with an example and visualize its results; then you will explore it on other examples, and modify the code to do other things. There is nothing to submit but attendance is mandatory and we will take into account your participation in the grade. The code we provide is very instructive and you will get considerable insights into machine learning if you spend time exploring it. You are encouraged to continue to explore the algorithms on your own once the lab is over. Ask any questions to the TA during the lab or TA office hours, or by email.
The labs will use Matlab, so start learning right away it if you have never used it. The first lab sessions are an introduction to machine learning and Matlab.
The following directories contain supporting material for the labs:
Homework (graded, to do individually):
You must submit your solutions through CatCourses as a PDF file (scanned from a legibly handwritten hardcopy or created by a word processor, no larger than 1 MB). We'll give you back the PDF file annotated with the grades and any corrections. Each homework counts equally for grading purposes. Late homeworks will receive a grade of zero. Don't leave it for the last minute!
Tips to create small but legible PDF files:
Project, in groups of up to 2 students: it will consist of running some machine learning algorithm on real-world datasets, evaluating its performance as a written report and an oral presentation at the end of the course. The project report is due Dec. 15 at 11:59pm, and the oral presentations on Dec. 8 in the lab session. Don't leave it for the last minute!
This year's project: evaluating algorithms for learning decision forests (tree ensembles).
Note: to pass the course, your grades cannot be too low in any of these parts (that is, a very low final exam grade cannot be compensated by higher grades in, say, the homeworks or the project).
While I encourage you to discuss your work with other students, the homeworks, project and exams must be the result of your own work without collaboration. See the Academic Dishonesty Statement and the UC Merced Academic Honesty Policy.
Grade curves (exams): midterm, final.
While I encourage you to discuss your work with other students, individual assignments (the homeworks and exams) must be the result of your own work, and group assignments (the project) must be the result of your group's work, without collaboration. Cheating causes two problems: you learn less well, and it is unfair to students who put honest effort into their work. See the Academic Dishonesty Statement in the syllabus, the CSE Department Policy on Academic Honesty and the UC Merced Academic Honesty Policy. Importantly: should copying occur, both the student who copied work from another student and the student who gave material to be copied will both automatically receive a zero for the assignment. A repeated violation will directly lead to an F. A single violation will directly lead to an F if the School of Engineering determines that the student has had a prior violation in any other course.
For both homeworks and project: you must disclose whatever sources you used to complete your work or to help others complete theirs. For homeworks, write it at the beginning of your submission. For the project, write it at the beginning of your report. Examples of possible sources:
If you have never used Matlab, there are many online tutorials, for example:
As well as books:
Engineering Service Learning at UC Merced usually offers courses on Matlab, Python, R and other things.