#
CS485/685 - Goals

## Objectives

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.

## Outline

The topics we will cover include:

- Introduction to Machine Learning

- Theoretical Foundation

- Classification
- Regression
- Clustering
- Big data (stream learning and distributed learning)

- Specific models/algorithms
- Decision trees
- Nearest neighbors
- K means clustering

- Linear/nonlinear separators and regression

- Mixtures of Gaussians
- Logistic regression
- Kernel methods

- Support vector Machines
- Hidden Markov models
- Perceptrons

- Neural networks
- Deep learning
- Recurrent neural networks