CS489/698 - Goals


Computers are traditionally programmed by listing a set of instructions that dictate the operation of the machine step by step.  As a result, machines tend to have a predetermined and rigid behaviour.  However, in many situations it would be desirable to endow machines with the ability to adapt and learn.  This course provides an introduction to the field of machine learning, which studies the principles and algorithms that allow a computer to learn new concepts from some examples.  The course will cover both the theoretical foundations of machine learning (e.g., learning theory and Bayesian learning) as well as the design of algorithms for machine learning (e.g., decision trees, neural networks, kernel methods, support vector machines, ensemble learning). 

Machine learning has recently lead to major advances in several areas of computer science.  The ability to learn new concepts from examples is particularly useful in data mining, information retrieval, natural language processing, computer vision, computational finance, bioinformatics, and health informatics. Similarly, the ability to adapt to new situations is also essential for self managing systems and robotics.   Hence, this course should be of interest to a wide audience.


The topics we will cover include:

  1. Introduction to Machine Learning
  2. Theoretical Foundation
    1. Learning theory
    2. Bayesian learning
  3. Classification
  4. Regression
  5. Dimensionality reduction
  6. Specific models/algorithms
    1. Decision trees
    2. Neural networks
    3. Kernel methods
    4. Support vector Machines
    5. Ensemble learning