
Reqs:
* Metacademy (http://metacademy.org) If you just want to check out what ML is about this is the best site.
* Better Explained (https://betterexplained.com/) if you need to brush up on some of the math
* Introduction to Probability (https://smile.amazon.com/Introduction-Probability-Chapman-St...)
* Stanford EE263: Introduction to Linear Dynamical Systems (http://ee263.stanford.edu/)
Beginner:
* Andrew Ng's class (http://cs229.stanford.edu)
* Python Machine Learning (https://smile.amazon.com/Python-Machine-Learning-Sebastian-R...)
* An Introduction to Statistical Learning (https://smile.amazon.com/Introduction-Statistical-Learning-A...)
Intermediate:
* Pattern Recognition and Machine Learning (https://smile.amazon.com/Pattern-Recognition-Learning-Inform...)
* Machine Learning: A Probabilistic Perspective (https://smile.amazon.com/Machine-Learning-Probabilistic-Pers...)
* All of Statistics: A Concise Course in Statistical Inference (https://smile.amazon.com/gp/product/0387402721/)
* Elements of Statistical Learning: Data Mining, Inference, and Prediction (https://smile.amazon.com/gp/product/0387848576(
* Stanford CS131 Computer vision (http://vision.stanford.edu/teaching/cs131_fall1617/)
* Stanford CS231n Convolutional Neural Networks for Visual Recognition (http://cs231n.github.io/)
* Convex Optimization (https://smile.amazon.com/Convex-Optimization-Stephen-Boyd/dp...)
* Deep Learning (http://www.deeplearningbook.org/ or https://smile.amazon.com/Deep-Learning-Adaptive-Computation-...)
* Neural Networks and Deep Learning (http://neuralnetworksanddeeplearning.com/)
Advanced:
* Probabilistic Graphical Models: Principles and Techniques (https://smile.amazon.com/Probabilistic-Graphical-Models-Prin...)
I have also found that looking into probabilistic programming is helpful too. These resources are pretty good:
* The Design and Implementation of Probabilistic Programming Languages (http://dippl.org)
* Practical Probabilistic Programming (https://smile.amazon.com/Practical-Probabilistic-Programming...)
The currently most popular ML frameworks are scikit-learn, Tensorflow, Theano and Keras.
If you like functional programming, probabilistic functional programming might also be interesting for you. I'd recommend reading Practical Probabilistic Programming with Monads [1], and checking out monad-bayes [2] which builds on the ideas discussed in the paper.
[0]: https://github.com/hakaru-dev/hakaru
My personal prediction is that once we get good at learning whole probabilistic programs from data rather than just inferring free numerical parameters from data, this is going to become the dominant mode of machine reasoning.
https://www.cra.com/technical-expertise/probabilistic-modeli...
https://www.amazon.com/Practical-Probabilistic-Programming-A...
That being said, I'm very happy that Hakaru is getting attention.