# Introduction to Machine Learning

**Univ. Paris Diderot, Master M2MO**, 2019

## Syllabus

Machine learning is a scientific discipline that is concerned with the design and development of algorithms that allow computers to learn from data. A major focus of machine learning is to automatically learn complex patterns and to make intelligent decisions based on them. The set of possible data inputs that feed a learning task can be very large and diverse, which makes modeling and prior assumptions critical problems for the design of relevant algorithms.

This course focuses on the methodology underlying supervised and unsupervised learning, with a particular emphasis on the mathematical formulation of algorithms, and the way they can be implemented and used in practice. The course will describe for instance some necessary tools from optimization theory, and explain how to use them for machine learning. Numerical illustrations and applications to datasets will be given for the methods studied in the course.

## Format

- We use
`moodle`

to centralize all teaching material (slides, notebooks, datasets, exercises) - Courses on slides and blackboard, all material in English
- Practical sessions use
`python`

,`jupyter`

,`scikit-learn`

,`tensorflow`

,`keras`

(deep learning) with the standard stack (`numpy`

,`scipy`

,`matplotlib`

) - Practical sessions will start with a quick introduction to
`python`

and the`jupyter notebook`

, and the necessary libraries for data science

## When and where

- Tuesdays 11-18-25 Sept., 02-09-16-23-30 Oct., 6 Nov.
- Courses 13:30 – 16:00, room 0011
- Practical sessions 16h15-18h45, room 0011

## Evaluation

- Practical sessions work 40\% (jupyter notebooks for Tuesday of week w must be sent before Monday 23:59 of week week+1, using the moodle platform)
- Final exam 60\% Nov. 14 10:30–13:30 @Amphi 2A (Halle aux Farines)

## Agenda of the course

### 1. Introduction to supervised learning (3 sessions)

- Binary classification, standard metrics and recipes (overfitting, cross-validation) and regression
- LDA / QDA for Gaussian models
- Logistic regression, Generalized Linear Models
- Regularization (Ridge, Lasso, etc.)
- Support Vector Machine, the Hinge loss
- Kernel methods
- Decision trees, CART, Boosting

### 2. Optimization for Machine Learning (2 sessions)

- Proximal gradient descent
- Coordinate descent / coordinate gradient descent
- Quasi-newton methods
- Stochastic gradient descent and beyond

### 3. Neural Networks (1,5 session)

- Introduction to neural networks
- The perceptron, multilayer neural networks, deep learning
- Adaptive-rate stochastic gradient descent, back-propagation
- Convolutional neural networks

### 4. Unsupervised learning (2,5 sessions)

- Gaussian mixtures and EM
- Matrix Factorization, Non-negative Matrix Factorization
- Factorization machines
- Embeddings methods

## Course material

All the material for the course (slides and notebooks) is available on the `moodle`

platform of the university.

## References

- Machine Learning, K.M. Murphy,
*MIT Press* - Foundations of Machine Learning. M. Mohri, A. Rostamizadeh and A. Talwalkar,
*MIT Press* - Deep Learning, I. Goodfellow and Y. Bengio and A. Courville,
*MIT Press* - Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython, W. McKinney,
*O’Reilly* - Statistics for High-Dimensional Data: Methods, Theory and Applications, P. Bühlmann, S. van de Geer,
*Springer-Verlag*