COMPSCI 589/589HH: Machine Learning

Semester: 
Spring
Offered: 
2016

Course Description: This course will introduce core machine learning models and algorithms for classification, regression,  clustering, and dimensionality reduction. On the theory side, the course will focus on understanding models and the relationships between them. On the applied side, the course will focus on effectively using machine learning methods to solve real-world problems with an emphasis on model selection, regularization, design of experiments, and presentation and interpretation of results. The course will also explore the use of machine learning methods across different computing contexts including desktop, cluster, and cloud computing. The course will include programming assignments, a midterm exam, and a final project. Python is the required programming language for the course.

  • Date/Time: TuTh 2:30PM - 3:45PM
  • Location: Hasbrouck Lab room 126
  • Teaching Assistants: Ian Gemp, Ishan Durugkar, Thai Nguyen

Textbooks: The course will use two text books that are available online free to UMass students. Students can purchase print copies of these books if desired, but this is not required.

Computing: Access to cloud computing services in the second part of the course will provided by Amazon Web Services. Each student in the course will receive AWS credits to redeem for compute time on Amazon EC2.

Required Background: While this course has an applied focus, it still requires appropriate mathematical background in probability and statistics, calculus and linear algebra. The official prerequisites for undergrads are CMPSCI 383 and MATH 235 (CMPSCI 240 provides sufficient background in probability and Math 131/132 provide sufficient background in calculus). Note that 235 may be taken as a corequisite with the instructor's approval by filing an override request with the School (do not email the instructor directly). Graduate students can check the descriptions for these courses to verify that they have sufficient mathematical background for 589. The course will also use Python as a programming language including the numpy, scipy, scikit-learn, and matplotlib packages. Some familiarity with Python will be helpful, but senior CS students should be able to learn Python during the course if needed. Graduate students from outside computer science with sufficient background are also welcome to take the course. Graduate students from outside CS will need to request and override by filing an override request (see below for more information).

What is the difference between COMPSCI 589 and COMPSCI 689?: 589 has been designed to focus on understanding and applying core machine learning models and algorithms, while 689 focuses on the mathematical foundations of machine learning. While both courses require a background in multivariate calculus, linear algebra, and probability; 689 is more theoretically focused and will use more of this background material than 589. In particular, 589 will not focus on deriving learning or optimization algorithms.

Should I take COMPSCI 589 or COMPSCI 689?:  589 is appropriate as an introductory machine learning course for senior undergraduate CS students, CS graduate students in the MS-only track, MS/PhD students interested in applying machine learning in their research. 589 does count as an AI core for CS MS-only students. Note that 589 can count for credit for CS PhD students, but it does not satisfy an AI core requirement.  Graduate students who intend to pursue research in machine learning or who need a course to satisfy the PhD AI core requirement should take 689. MS-only students with no background in ML are strongly encouraged to take 589 before taking 689.

COMPSCI 589HH and Departmental Honors: Undergraduate students who want to receive departmental honors credit for 589 will need to register for the COMPSCI 589HH, which includes an attached 1-credit honors colloquium section. This extra section of the course will meet for one additional hour of discussions each week and students will work on a group project.

Graduate Students from Other Departments: Graduate students from outside computer science with sufficient background are welcome to take the course. Graduate students from outside CS will need to request and override by filing an override request. Override requests will be granted pending availability of seats in the course and evidence that students are sufficiently prepared to be successful in the course.

Website: The website for this course will be hosted on Moodle.