CMPT 726: Machine Learning, Fall 2012

Instructor: Oliver Schulte

About the course

Machine Learning is the study of computer algorithms that improve automatically through experience. It is one of the most exciting aspects of artificial intelligence, and the basis for many of its industrial applications. It is the preferred approach for many applications that model complex functions, such as face detection (auto-focus in your digital camera), hand-written digit recognition, speech recognition, and credit card fraud detection.

This course is a 700-level grad course - it will be a lecture-style course and be taught from a textbook. The course will start from the basics, no prior experience in machine learning nor pattern recognition will be presumed. Students will gain hands-on experience with state of the art machine learning algorithms via programming assignments on real datasets and a course project.


The most important prerequisite for this course is a strong mathematics background, especially in linear algebra and calculus (mainly taking derivatives for function maximization). You should have background knowledge equivalent to the following SFU courses: MATH 151, 152, 240, MACM 316, STAT 270 with an A average. It is also recommended that students have taken some of MATH 251, 252, 254, 308, 309. It will be possible to refresh your knowledge at the beginning of the course, but I don't want anyone to run from the room screaming if I say "eigenvector" or "covariance matrix". If you have questions about your readiness for this course, please ask.


Schedule (Tentative)

Lecture Slides.

All Slides With Source Code




Course Management System for assignment submission and grading


Programming assignments will be done in MATLAB. MATLAB is easy to use and allows researchers to quickly develop programs for machine learning and other subjects that require many standard math functions. It provides many tools for numerical computation which are useful for implementing machine learning techniques. Students who are not familiar with MATLAB are expected to acquire basic proficiency. The following resources are helpful for learning MATLAB:

Weka is a user-friendly interface to many machine learning algorithms. While it does provide source code, it is usually not as powerful and convenient for writing your own programs as Matlab is. Weka is ideal for quickly trying various standard machine learning algorithms on your data. It also has a nice data exploration interface that allows you to visualize correlations, deal with missing values, remove redundant fields, etc.


Journals and conferences

Back to Oliver Schulte's teaching page.