CS485/685 - 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 as well as the design of algorithms for machine 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
  3. Classification
  4. Regression
  5. Clustering
  6. Big data (stream learning and distributed learning)
  7. Specific models/algorithms
    1. Decision trees
    2. Nearest neighbors
    3. K means clustering
    4. Linear/nonlinear separators and regression
    5. Mixtures of Gaussians
    6. Logistic regression
    7. Kernel methods
    8. Support vector Machines
    9. Hidden Markov models
    10. Perceptrons
    11. Neural networks
    12. Deep learning
    13. Recurrent neural networks