makeabhishek / ML-Course

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

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.
Read: A Few Useful Things to Know about Machine Learning
Exercises: scikit-learn exercise
Week 8 Convolutional Neural Networks Video lectures: CS231n from Stanford University 2017, lecture 5
Exercises: CNN Exercise 1
Week 8 Convolutional Neural Networks Video lectures: CS231n from Stanford University 2017, lecture 9 (until 28:20)
Optional lectures: CS231n from Stanford University 2017, lecture 12
Exercises: CNN Exercise 2
Week 10 Recurrent Neural Networks Video lectures: CS231n from Stanford University 2017, lecture 10
Exercises: RNN Exercise
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

More free online courses

  • The Coursera Machine Learning course we use in the curriculum above is a slimmed down version of CS229 from Stanford University, which presents the same subjects as the Coursera version, but from a more mathematically rigorous point of view. This course is available at CS229 at Stanford University with lectures on YouTube.

  • Many free online courses on machine learning has been collected in this list, including ones on more advanced topics.

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.

About

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


Languages

Language:Jupyter Notebook 99.5%Language:Python 0.5%