# Introduction to Machine Learning (89511)

#### Staff:

Lecturer: Dr. Yossi Keshet

Teaching assistant: Tzeviya Fuchs

#### Course books:

Shai Shalev-Shwartz and Shai Ben-David, "Understanding Machine Learning: From Theory to Algorithms", Cambridge University Press, 2014

Ian Goodfellow and Yoshua Bengio and Aaron Courville, "Deep Learning", MIT Press, 2016.

#### Class notes:

1. Lecture 1 - Introduction

2. Lecture 2 - ERM principle and finite hypothesis set

3. Lecture 3 - PAC model and uniform convergence

4. Lecture 4 - VC dimension

5. Lecture 5 - The foundamental theorem of PAC learning; non-uniform convergence: minimum description length (MDL), strcutured risk minimization (SRM)

6. Lecture 6 - Support vector machine (SVM). Code: svm_vs_perceptron.py

7. Lecture 7 - SVM and kernels svm_vs_perceptron.py kernel_perceptron.py

8. Lecture 8 - Maximum likelihood estimation (MLE) and logistoc regression (LR)

9. Lecture 9 - introduction to deep learning

10. Lecture 10 - search engines and ranking

#### Tirgul notes:

1. Tirgul 1 - Introduction

2. Tirgul 2 (1) and Tirgul 2 (2) - Empirical Risk Minimization Algorithms: Consistent and Halving, optimal Bayes

3. Tirgul 3 - Perceptron

4. Tirgul 4 - Perceptron bounds Lecture Notes

5. Tirgul 5 - Decision Trees

6. Tirgul 6 - Optimization, Convexity and Gradient Descent

7. Tirgul 7 (part 1) and Tirgul 7 (part 2). The demo that was used in the tirgul.

8. Tirgul 8 - Multiclass classification

9. Tirgul 9 - Neural networks

10. Tirgul 10 - Boosting

11. Tirgul 11 - Multilabel and ranking

12. Tirgul 12 - Hazara

#### Exercises:

1. Exercise 1 -- Due: December 1, 2016, solution

2. Exercise 2 and it's dataset -- Due: December 22, 2016, solution

3. Exercise 3 (corrected 26.12.12) and it's dataset -- Due: January 1, 2017

4. Exercise 4 and it's dataset -- Due: January 16, 2017, solution

5. Exercise 5 and it's dataset -- Due: January 24, 2017

6. Exercise 6 and it's scripts -- Due: February 15, 2017

The following script iml2016_exercise06_tester.py is the test that runs you code upon submission. It is given for your convenience, review it and see the API and how your final code will be tested. In order to run it locally, place it in the same directory as your code and run normally, please make sure you pass this test to avoid deductions later.