Pattern Recognition and Machine Learning

Aug to Dec 2020

Course Information

Space: CS 25

Time: F Slot. (Tue: 5PM, Wed: 11AM, Thu: 9AM, Friday: 8 AM)

Teaching Assistants: TBA

Learning Outcomes

At the end of the course, the student should be able:

  1. To understand the use cases and limitations of machine learning.

  2. To recognise the type of learning problem suitable for a practical task at hand.

  3. To identify the data required for solving a given type of learning problem.

  4. To identify the right learning algorithms for solving a given learning problem. [KEY]

  5. To analyse (several) learning algorithms and identify the role of the various critical knobs in the algorithms. [KEY]

  6. To efficiently use various software packages for solving learning problems.

  7. To implement various learning algorithms from first principles. [KEY]

Grading

  • Final exam: 50%

  • Programming Assignments: 30%

  • Data Contest: 20%

Reference Books:


Related Resources on the Web:

Reference material for Pre-requisites:

1. Undergraduate multivariate calculus.

1a. https://ocw.mit.edu/courses/mathematics/18-01sc-single-variable-calculus-fall-2010/unit-2-applications-of-differentiation/ (Part A)

1b. https://ocw.mit.edu/courses/mathematics/18-02sc-multivariable-calculus-fall-2010/2.-partial-derivatives/ (Part A and B)

2. Linear algebra.

2a. https://youtu.be/kjBOesZCoqc (Essence of linear algebra, youtube series)

2b. https://youtu.be/ZK3O402wf1c (Gilbert Strang course on Linear algebra.)

Books:

Gilbert Strang. Linear Algebra and its Applications.

3. Probability.

https://ocw.mit.edu/resources/res-6-012-introduction-to-probability-spring-2018/part-i-the-fundamentals/

Books:

Bertsekas and Tsitsiklis. Introduction to Probability.

Grimmett and Stirzaker. Probability and Random Processes.

Bruce Hajek. Probability course notes. Link

4. Basic Python/Numpy programming.

https://developers.google.com/edu/python/

http://www.astro.up.pt/~sousasag/Python_For_Astronomers/Python_qr.pdf

http://cs231n.github.io/python-numpy-tutorial/

https://www.tutorialspoint.com/numpy


Announcements:


Supporting Material:

Class Notes/Slides:

Course instructional handout : pdf

  1. Introduction slides : pdf

  2. Calculus/Optimisation : pdf

  3. Linear algebra : pdf

  4. Probability : pdf

  5. Bayes classifier : pdf

  6. Regression : pdf

  7. Logistic Regression : pdf

  8. Constrained optimization : pdf

  9. SVM : pdf

  10. Decision Trees and Boosting : pdf

  11. Ensemble methods slides : pdf

  12. Supervised learning wrap-up : Surrogate losses, Neural nets, multiclass methods, kNN, Precision/Recall : pdf

  13. PCA : pdf

  14. Clustering : pdf

  15. GMM/EM : pdf

  16. Collaborative filtering : pdf. Link to Paper on Neighborhood models : Link

  17. Learning Theory : pdf

  18. LASSO : pdf


External Links:


Decision trees : link

Clustering visualization : link

Neighborhood models in collaborative filtering : link


Jupyter Notebooks:


  1. SVM examples. Link

  2. PCA example : Link

  3. Spectral Clustering illustration : Link

  4. GMM EM. Link

  5. LASSO Regression : Link



Worksheets:

  1. Probability basics : pdf (V1)

  2. Mega-worksheet - Prerequisite/Regression/classification : pdf (V1)

  3. SVMs/Classification : pdf

  4. Trees/Boosting : pdf

  5. Multiclass methods/Clustering/Collaborative filtering : pdf

  6. EM/GMM/HMM : pdf

  7. Sample/Previous question papers :

    1. One

    2. Two

    3. Three

    4. Four

    5. Five