Machine Learning (COMP-652)
Fall 2012

Syllabus

General Information

Location:Trottier, room 0060
Times:Tuesday and Thursday, 2:35 - 3:55pm
Instructor:Professor Doina Precup, School of Computer Science.
Office:McConnell Engineering building, room 111N (left from the elevators).
Phone:(514) 398-6443.
Email:dprecup@cs.mcgill.ca
Office hours:
 
Tuesday and Thursday, 4:00 - 4:30pm
Meetings at other times by appointment only!
Class web page:
 
http://www.cs.mcgill.ca/~dprecup/courses/ml.html
IMPORTANT: This is where class notes, announcements and homeworks are posted!


Course Description

The field of machine learning is concerned with the question of how to construct computer programs that improve automatically with experience. In recent years, many successful applications of machine learning have been developed, ranging from data-mining programs that learn to detect fraudulent credit card transactions, to autonomous vehicles that learn to drive on public highways. At the same time, there have been important advances in the theory and algorithms that form the foundation of this field. The goal of this class is to provide an overview of the state-of-art algorithms used in machine learning. We will discuss both the theoretical properties of these algorithms and their practical applications.


Prerequisites

Basic knowledge of a programming language is required. Basic knowledge of probabilities/statistics, calculus and linear algebra is required. Example courses at McGill providing sufficient background in probability are MATH-323 or ECSE-305. Some AI background is recommended, as provided, for instance by COMP-424 or ECSE-526, but not required. If you have doubts regarding your background, please contact me to discuss it.


Reference Materials

There is no required textbook, but the material we cover is available in several books: Lecture notes and relevant reading, software or research papers are available on the course web page.


Class Requirements

The class grade will be based on the following components:

  1. Five assignments - 50%.
    The assignments will contain a mix of theoretical and experimental questions. Experimentation will mainly be carried out in Matlab, but prior knowledge of Matlab is NOT required. Matlab is available through a site licence at McGill. You can also use Octave, which is a free software very similar to Matlab.
  2. A midterm in-class examination - 25%.
  3. A final project - 25%.
    The final project will involve choosing a topic, either from a list of suggestions that will be provided or based on your own interests. A typical project will require you to read papers related to the topic, implement or find available implementations of the algorithms discussed, and perform experimental work comparing these algorithms. At the end of the semester, you will write a final report and you will prepare a 10-minute class presentation of the topic you investigated. The presentations will be scheduled outside of our lecture time, during the week of December 10 - 14.
  4. Participation in class discussions - up to 1% extra credit.
Minor changes to the evaluation scheme (if any) will be announced in class by Tuesday, September 11 (pending in-class discussion and the estimated total enrollment).


Homework Policy

Assignments should be submitted electronically on the day when they are due. You should e-mail the assignment to cs652 at cs dot mcgill dot ca. For late assignments, 10 points will be deducted from the grade for every late day, for the first 5 days. No credit is given for assignments submitted more than 5 days late, unless you have a medical problem.

All assignments are INDIVIDUAL! You may discuss the problems with your colleagues, but you must submit individual homeworks. Please acknowledge all sources you use in the homeworks (papers, code or ideas from someone else).

McGill University values academic integrity. Therefore all students must understand the meaning and consequences of cheating, plagiarism and other academic offenses under the Code of Student Conduct and Disciplinary Procedures (see www.mcgill.ca/students/srr/honest for more information).

In accord with McGill University's Charter of Students' Rights, students in this course have the right to submit in English or in French any written work that is to be graded.

In the event of extraordinary circumstances beyond the University's control, the content and/or evaluation scheme in this course is subject to change.


Tentative Course Content

  1. Introduction (1 lecture)
  2. Linear models (3 lectures): linear an polynomial regression, overfitting, model selection, logistic regression, Naive Bayes
  3. Non-linear models (4 lectures): decision trees, instance-based learning, boosting, neural networks
  4. Support vector machines and kernels (2 lectures)
  5. Computational learning theory (1 lectures)
  6. Experimental methodology, sources of error (1 lecture)
  7. Midterm (1 lecture)
  8. Structured models (4 lectures): graphical models, deep belief networks
  9. Unsupervised learning (3 lectures): K-means, expectation maximization, PCA and other dimensionality reduction methods
  10. Learning in dynamical systems (2 lectures): Hidden Markov Models and other types of temporal/sequence models
  11. Reinforcement learning (3 lectures)
  12. Wrap-up (1 lecture)
IMPORTANT: This outline is subject to change. Up-to-date information about the course content and assigned readings will be posted on the schedule web page.