**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 is the basis for many of its industrial applications. It is the preferred approach for many applications, 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. This 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.

**Prerequisite**

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.

- Introductory Examples.
- Introductory Examples: regression.
- Overview and Probability Theory.
- Bernoulli Parameter Estimation.
- Linear Regression.
- Kernel density estimation, nearest neighbour.
- Linear Classifiers.
- Neural Networks.
- Kernel Methods.
- Support Vector Machines.
- Graphical Models I: Bayes Nets.
- Graphical Models II: Markov Nets.
- Graphical Models III: Inference.
- Latent Variable Models and EM.
- Mixture Models and Boosting.
- Sequential Data I.Sequential Data II.
- Continuous Latent Variable Models, Principal Component Analysis.
- Sampling Methods

**Assignments.**

- Assignment 1, due February 4 at 11:59pm.
- Assignment 2, due February 23 at 11:59pm
- Assignment 3, due March 23 at 11:59pm.
- Assignment 3, Sample Code and Example Datasets.
- Assignment 4, due April 6 at 11:59pm

**Links**

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:

- Octave, a free software that is mostly compatible with MATLAB
- Kermit Sigmon's MATLAB Primer
- matlab.el: Emacs MATLAB mode
- Mathworks' (its creator) MATLAB Tutorial page
- MATLAB Central code repository
- Kevin Murphy (UBC) has a nice page of MATLAB tips

- Journal of Machine Learning Research (JMLR)
- Neural Information Processing Systems (NIPS)
- International Conference on Machine Learning (ICML) 2009
- Uncertainty in Artificial Intelligence (UAI)
- Artificial Intelligence and Statistics (AISTATS) 2009
- IEEE Transactions on Pattern Analysis and Machine Intelligence (PAMI)

- Andrew Moore's Tutorials.
- VideoLectures has a large collection of ML seminars and tutorials.
- Stephen Boyd's Convex Optimization course at Stanford (videos available)

Back to Oliver Schulte's teaching page.