## Syllabus for Machine Learning (308-766)

### General information

__Location:__ McConnell Engineering Building, Room 103.

__Time:__ Mondays and Wednesdays, 4:00-5:30pm.

__Instructor:__ Professor Doina Precup, School of Computer Science.

__Office:__ McConnell Engineering Building, Room 326.

__Phone:__ 398-6443

__Email:__ dprecup@cs.mcgill.ca

__Office hours:__ Monday and Wednesday, 3:00-4:00pm.
*Meetings at other times by appointment only!*

**IMPORTANT:** Email is the most effective way to reach me.

__Class web page:__ http://www.cs.mcgill.ca/~dprecup/ml.html

**IMPORTANT:** This is where all the class materials (notes, homeworks, grades etc.) get posted!

### Course description

The field of machine learning is concerned with the question fo how to construct computer programs that automatically improve with experience. In recent
years, many successful applications of machine learning have been developed, ranging from data-mining programs that learn to detect fraudulent credit card
transactions, to autonomous vehicles that learn to drive on public highways. At the same time, there have been important advances in the theory and
algorithms that form the foundation of this field.
The goal of this class is to provide an overview of the state-of-art algorithms used in machine learning. We will discuss both the theoretical properties of
these algorithms and their practical applications.

###
Prerequisites

Basic knowledge of a programming language is required. Basic knowledge of probability theory and statistics, as well as some AI background
are recommended. If you have doubts regarding your ackground, please contact me to discuss it.

### Reference materials

The main textbook for the course is Machine Learning by Tom Mitchell (McGraw-Hill, 1997). Since the book does not cover many new and exciting developments in the field, we will supplement it with research papers in the field. These will be distributed in class or posted on the web page, as appropriate. The class slides will be posted on the web page.

### Evaluation

The evaluation will be based on the following items:
- Seven homeworks: 35%
- Reading assignements and participation in discussing research papers: 15%
- Class project: 50%

The assignments will include both written work and implementations. The implementation work will involve programming of algorithms that we discuss in class and reporting results produced by these algorithms. The ability to program in a high-level language, such as C/C++, Java, LISP, MATLAB, under the UNIX operating system is assumed but the use of these languages is not mandatory. You may use any programming language, as long as you can demonstrate that your implementation is correct. The written work will involve solving problems related to the theoretical part of the course, and explaining the results of your implementations. During the course we will also use programs written by other machine learning researchers. Instructions regarding how to use these programs will be provided as needed.
The reading assignements will involve summarizing and/or critiquing research papers in the field. You are also expected to actively participate in class discussions. When reading the book and other papers, always think about questions that you may have, and bring them to class.

The final project will involve choosing a topic, either from a list of suggestions that will be provided or based on your own interests. You will be required to read papers related to the topic, implement or find available implementations of the algorithms discussed, and experimental work comparing these algorithms. By the mid-semester date you will have to hand in a short write-up of your intended work (details will be provided later). At the end of the semester, you will write a final report and you will prepare a 20-minute class presentation of the topic you investigated. The presentation will be evaluated by all the people present.

Homework policy: Homeworks should be submitted at the start of the class. Programming components should also be submitted using the `handin`

system. Homeworks submitted the next class after they are due will be penalized 10 points, and homeworks submitted a week later will be penalized 25 points. No credit is given for homeworks more than five days late, unless you have a medical
problem. Reading assignements will also be due in class.

**ALL assignements are INDIVIDUAL!**

### Tentative schedule

- Introduction (1 lecture)
- Learning Concepts and Inductive Bias (1 lecture)
- PAC learning (1 lecture)
- Decision Trees (2 lectures)
- Artificial Neural Networks (2 lectures)
- Empirical evaluation of learning algorithms (1 lecture)
- The bias-variance dilemma (1 lecture)
- Bayesian learning (2 lectures)
- Combining learned classifiers, bagging and boosting (2 lectures)
- Instance-based learning (1 lecture)
- Support Vector Machines (2 lectures)
- Genetic Algorithms (1 lecture)
- Reinforcement learning problems (1 lecture)
- Temporal-difference learning (2 lectures)
- Using function approximation in reinforcement learning (2 lectures)
- Project presentations (2 lectures)

Doina PRECUP
Last modified: Tue Jan 9 11:01:01 EST 2001