/ML-Course

Material for a course on machine learning based on open available lectures and exercises

Primary LanguageJupyter Notebook

Overview

This repository is a collection of open material to learn machine learning. The curriculum below is designed to match a 5 ECTS points course for Master's level students. It is a combination of lectures and exercises from two courses, namely Machine Learning by Andrew Ng and CS231N: Convolutional Neural Networks for Visual Recognition from Stanford University. All exercises are to be solved by downloading them to your local computer and solve them using Jupyter Notebook. The curriculum is designed to cover important aspects of the possiblities when applying machine learning, with plenty of opportunities for students to expand their understanding by following each of the online courses in their full extent. For the interested, additional resources are available for a recommended full course on Statistical Learning by Trevor Hastie and Rob Tibshirani.

If you would like a brief introduction to machine learning, watch 3Blue1Brown's (Grant Sanderson's) introduction to neural networks.

The ML_in_research folder contains references for novel research within the natural sciences employing deep learning.

Curriculum

Content Resources
Week 1 Introduction and installation of Python environment See installation guidelines below.
Week 2 Linear regression Video lectures: Machine Learning by Andrew Ng, lecture 1.1 to 2.8 (optional: lecture 4.1 to 4.9 for linear regression with multiplie variables).
Exercises: Exercise 1
Lecture slides: Lecture 1 and Lecture 2 (optional: Lecture 4)
Lecture notes: Notes 1 and Notes 2
Week 3 Winter break
Week 4 Logistic regression and regularization Video lectures: Machine Learning by Andrew Ng, lecture 6.1 to 7.4.
Exercises: Exercise 2
Lecture slides: Lecture 6 and Lecture 7
Lecture notes: Notes 3
Optional: Video on the binary cross-entropy loss function by Aurélien Géron
Week 5 Neural networks Video lectures: Machine Learning by Andrew Ng, lecture 8.1 to 9.8.
Exercises: Exercise 4
Lecture slides: Lecture 8 and Lecture 9
Lecture notes: Notes 4 and Notes 5
Week 6 Support Vector Machines Video lectures: Machine Learning by Andrew Ng, lecture 10.1 to 10.7 and 12.1 to 12.6.
Exercises: Exercise 6
Lecture slides: Lecture 10 and Lecture 12
Week 7 Case study using scikit learn Video lectures: Machine Learning by Andrew Ng, lecture 11.1 to 11.5.
Paper
Week 8 Convolutional Neural Networks Video lectures: CS231n from Stanford University 2016, lecture 6 (from 57m30s to the end) and lecture 7
Week 8 Convolutional Neural Networks Video lectures: CS231n from Stanford University 2016, lecture 8
Week 10 Recurrent Neural Networks Video lectures: CS231n from Stanford University 2016, lecture 10
Week 11 Project (or deep learning in research)
Week 12 Easter break
Week 13 Project
Week 14 Project
Week 15 Project

Online course material

Machine learning

Deep learning

Statistical Learning (not included in curriculum above)

Valuable resources

Free textbooks

YouTube channels

Programming resources

Installing the Python environment

  1. Install Anaconda with Python 3.7. The installer can be downloaded here: https://www.anaconda.com/download​ . It will at some point ask if you want to 'Add Anaconda to my PATH environment variable'. The answer to this question is 'no', you do not want to do this.

  2. Launch a Jupyter Notebook in Anaconda (use the Anaconda Navigator if you use Windows/Mac or create and run it from a new conda environment if you use Linux).

  3. Write and run the following code: print("Hello, World!")

  4. Assuming that the computer is having a good day, you should see the words "Hello, World!" being printed. If this is not the case, or you never even made it to step 4, then do not worry. Take a deep breath and a sip of your coffee. Search for solutions online and try one more time.

Using Anaconda should be seen as a suggestion for newcomers in the field. If you already have another solution running, such as using Docker containers, you are welcome to continue in this way.

Acknowledgments

The material in this repository has been collected from a variety of sources. Thanks to the authors of the online courses for making their valuable teachings accesible for free. Furthermore, thanks to all authors of the open textbooks, YouTube channels, exercises, and lecture notes.

Machine learning exercises were forked from Gerges Dib and lecture notes and slides were forked from Remy Marquis.