Machine Learning Curriculum
Machine Learning is a branch of Artificial Intelligence dedicated at making
machines learn from observational data without being explicitly programmed.
Machine learning and AI are not the same. Machine learning is an instrument in
the AI symphony β a component of AI. So what is Machine Learning β or ML β
exactly? Itβs the ability for an algorithm to learn from prior data in order
to produce a behavior. ML is teaching machines to make decisions in situations
they have never seen.
Machine Learning in General
Study this section to understand fundamental concepts and develop intuitions before going any deeper.
A computer program is said to learn from experience E
with respect to some
class of tasks T
and performance measure P
if its performance at tasks in
T
, as measured by P
, improves with experience E
.
Reinforcement Learning
Building a machine that senses the environment and then chooses the best policy
(action) to do at any given state to maximize its expected longterm scalar
reward is the goal of reinforcement learning.
Deep Learning
Deep learning is a branch of machine learning where deep artificial neural
networks (DNN) β algorithms inspired by the way neurons work in the brain β find
patterns in raw data by combining multiple layers of artificial neurons. As the
layers increase, so does the neural networkβs ability to learn increasingly
abstract concepts.
The simplest kind of DNN is
a Multilayer Perceptron
(MLP).

Full Stack Deep Learning Learn ProductionLevel Deep Learning from Top Practitioners

DeepLearning.ai new 5 courses specialization taught by Andrew Ng at Coursera; It's the sequel of Machine Learning course at Coursera.

Advanced Machine Learning Specialization consists of 7 courses on Coursera
 A friendly introduction to Deep Learning and Neural Networks

A Neural Network Playground Tinker with a simple neural network designed to help you visualize the learning process

Deep Learning Demystified  Youtube explain inspiration of deep learning from real neurons to artificial neural networks

Learn TensorFlow and deep learning, without a Ph.D. This 3hour course (video + slides) offers developers a quick introduction to deeplearning fundamentals, with some TensorFlow thrown into the bargain.

A Guide to Deep Learning by YN^2 a curated maths guide to Deep Learning

Practical Deep Learning For Coders Course at Fast.ai taught by Jeremy Howard (Kaggle's #1 competitor 2 years running, and founder of Enlitic)

Deep learning  Udacity recommended for visual learner who knows some ML, this course provides high level ideas of deep learning, dense intuitive details put in a short amount of time, you will use TensorFlow inside the course
 Deep Learning Resources (Papers, Online Courses, Books)  deeplearning4j.org
 Introduction to Deep Neural Networks  deeplearning4j.org

NVIDIA Deep Learning Institute because GPU are efficient at training Neural Networks, NVIDIA notices this market !

Deep Learning Book recommended for math
nerds who want to understand the theoretical side, the book is crafted by our
deep learning wizards (Goodfellow, Bengio and Courville)
 Unsupervised Feature Learning and Deep Learning
 DeepMind Publications

DeepLearning.TV  YouTube broad overview of deep learning, no implementation, just pure ideas
 CS224d: Deep Learning for Natural Language Processing
 Deep Learning Summer School, Montreal 2015
 UFLDL Deep Learning Tutorial
 Neural networks class  YouTube Playlist
 http://deeplearning.net/
 https://developer.nvidia.com/deeplearning

http://neuralnetworksanddeeplearning.com/index.html a handson online book for deep learning maths intuition, I can say that after you finish this, you will be able to explain deep learning in a fine detail.
 https://github.com/lisalab/DeepLearningTutorials

https://www.kadenze.com/courses/creativeapplicationsofdeeplearningwithtensorflowi You will implement a lot of things inside TensorFlow such as Autoencoders, Convolutional neural net, Feedforward neural nets, Generative models (Generative Adversarial Networks, Recurrent networks), visualizing the network, etc. You will have lots of assignments to finish. The course director (Parag) is also approachable and active.

Deep Learning Lectures by Yann LeCun Why not learn Deep Learning from the guy who invented Convolutional nets?

6.S094: Deep Learning for SelfDriving Cars a course at MIT

The Neural Network Zoo a bunch of neural network models that you should know about (I know about half of them so don't worry that you don't know many because most of them are not popular or useful in the present)

6.S191: Introduction to Deep Learning a course for 2017

The GAN Zoo a list of GAN papers which have their own name

A Microsoft CNTK tutorial in Python β build a neural network a comprehensive introductory tutorial for Microsoft's CNTK framework

https://deeplearning.mit.edu/ MIT Deep Learning taught by Lex Fridman

Intro to TensorFlow for Deep Learning taught at Udacity
Convolutional Neural Networks
DNNs that work with grid data like sound waveforms, images and videos better
than ordinary DNNs. They are based on the assumptions that nearby input units
are more related than the distant units. They also utilize translation
invariance. For example, given an image, it might be useful to detect the same
kind of edges everywhere on the image.
They are sometimes called convnets or CNNs.
Recurrent Neural Networks
DNNs that have states. They also understand sequences that vary in length.
They are sometimes called RNNs.
Best Practices
Unsupervised Domain Adaptation
Unsupervised Domain Adaptation is a type of Transfer Learning that applies a model that was trained on source dataset to do well on a target dataset without any label on the target dataset. It's one of the technique that is practically useful in the real world when the cost of labeling target dataset is high. One of the example is to train a model on synthetic data with label and try to use it on real data without label.
Open Source Trained Models
Interesting Techniques & Applications
Nice Blogs & Vlogs to Follow
Impactful People

Geoffrey Hinton, he has been called
the godfather of deep learning
by introducing 2 revolutionizing techniques (ReLU and Dropout) with his students.
These techniques solve the Vanishing Gradient and Generalization problem of
deep neural networks. He also taught
a Neural Networks course at
Coursera.

Yann LeCun, he invented CNNs
(Convolutional neural networks), the kind of network that is really popular
among computer vision developers today

Yoshua Bengio another
serious professor at Deep Learning, you can
watch his TEDx talk here (2017)

Andrew Ng he discovered that GPUs make deep learning faster.
He taught 2 famous online courses, Machine Learning and Deep Learning specialization at Coursera.

Juergen Schmidhuber invented LSTM (a
particular type of RNN)

Jeff Dean, a
Google Brain engineer, watch his TEDx Talk

Ian Goodfellow, he invented
GANs (Generative Adversarial Networks), is an OpenAI engineer

David Silver this is
the guy behind AlphaGo and Artari reinforcement learning game agents at DeepMind

Demis Hassabis CEO of
DeepMind, has given a lot of talks about AlphaGo and Reinforcement Learning
achievements they have

Andrej Karparthy he teaches convnet
classes, wrote ConvNetJS, and produces a lot of content for DL community, he
also writes a blog (see Nice Blogs & Vlogs to Follow section)

Pedro Domingos he wrote the book
The Master Algorithm: How the Quest for the Ultimate Learning Machine Will
Remake Our World, watch his TEDx talk here
Libraries, Frameworks and Services
Glancing at their GitHub statistics can give you an estimate for how active/popular each of them is.

https://github.com/huggingface/transformers Stateoftheart Natural Language Processing for TensorFlow 2.0 and PyTorch

Python Deep Learning Frameworks Reviewed 2017 read this to decide which framework is appropriate for you

scikitlearn (Python) general machine learning library, high level abstraction, geared towards beginners

TensorFlow (Python); Learning TensorFlow; Installing on Windows; Fresh Install on Ubuntu 16.04; Serving; Awesome TensorFlow; computation graph framework built by Google, has nice visualization board, probably the most popular framework nowadays for doing Deep Learning

Theano (Python) another popular deep learning framework; Deprecated! See this announcement from Yoshua Bengio for more info.

Lasagne (Python) Lightweight library to build and train neural networks in Theano
 Keras: Deep Learning library for Theano and TensorFlow (Python)

Caffe (Python) originally created to tackle computer vision problems

Microsoft Cognitive Toolkit (CNTK) Microsoft's framework (previously known as Computational Network Toolkit)

Torch (LuaJIT) the most popular scientific computing framework for LuaJIT

PyTorch (Python) PyTorch is a deep learning framework that puts Python first.

MXNet: A Scalable Deep Learning Framework supports multiple language interfaces

MinPy (Python) NumPy interface with mixed backend execution (MXNet, autograd)

Chainer (Python) A flexible framework of neural networks for deep learning

Kur (YAML, Python) Descriptive Deep Learning, get started in minutes because you don't need to code!

DeepLearning4j (Java) not so popular, preferable for you if you like Java

Bonsai (Inkling) a simplification layer for machine learning

bitfusion  Software to Manage Deep Learning & GPUs contains
Amazon Machine Images for many Deep Learning libraries
including
TensorFlow

FloydHub a Heroku for Deep Learning (You focus on the model, they'll deploy)

Lobe a draganddrop tool for machine learning

comet.ml Comet lets you track code, experiments, and results on ML projects. Itβs fast, simple, and free for open source projects.

MLflow MLflow (currently in beta) is an open source platform to manage the ML lifecycle, including experimentation, reproducibility and deployment. It currently offers three components: MLflow Tracking, MLflow Projects, MLflow Models.

wav2letter++ Open sourcing wav2letter++, the fastest stateoftheart speech system, and flashlight, an ML library going native

Ludwig Ludwig is a toolbox built on top of TensorFlow that allows to train and test deep learning models without the need to write code. It's by Uber team.

spektral A Python framework for relational representation learning in Keras
Machine Learning in Production
Libraries that help you develop/debug/deploy the model in production. There is more to ML than training the model.

https://github.com/iterative/cml Continuous Machine Learning (CML) is an opensource library for implementing continuous integration & delivery (CI/CD) in machine learning projects. Use it to automate parts of your development workflow, including model training and evaluation, comparing ML experiments across your project history, and monitoring changing datasets.

https://github.com/crememl/creme Python library for online machine learning. All the tools in the library can be updated with a single observation at a time, and can therefore be used to learn from streaming data.

https://github.com/aimhubio/aim A supereasy way to record, search and compare 1000s of ML training runs
Data Wrangling
Tuning Hyperparameters
AutoML
Make machine learns without the tedious task of feature engineer, model selection, and hyperparameter tuning
that you have to do yourself.
Let the machine does machine learning for you!
CuttingEdge Research Publishers
Steal the most recent techniques introduced by smart computer scientists (could be you).
Practitioner Community
Thoughtful Insights for Future Research
Uncategorized
Other Big Lists
I am confused, too many links, where do I start?
If you are a beginner and want to get started with my suggestions, please read this issue:
https://github.com/off99555/machinelearningcurriculum/issues/4
Disclaimer
This is a really big list because I also point to other people's list to ensure
that most of the resources are accessible from this page without you looking
anywhere else.
Most of these resources are the ones I enjoy reading/watching. I wouldn't put
something that I am not interested in here.
NOTE: There is no particular rank for each link. The order in which they
appear does not convey any meaning and should not be treated differently.
How to contribute to this list
 Fork this repository, then apply your change.
 Make a pull request and tag me if you want.
 That's it. If your edition is useful, I'll merge it.
Or you can just submit a new issue
containing the resource you want me to include if you don't have time to send a pull request.
The resource you want to include should be free to study.