A list of (mostly free) ressources to learn Artificial Intelligence and Machine Learning.
The following courses have their slide, notes, homework, and/or videos available online:
- CS188: Intro to AI, based on Artificial Intelligence: A Modern Approach
- CS229: Machine Learning
- CS230: Deep Learning
- CS231n: Convolutional Neural Networks for Visual Recognition
- CS224n: Natural Language Processing with Deep Learning
- CS285: Deep Reinforcement Learning
- CS246: Mining of Massive Datasets
- Stat212b: Topics Course on Deep Learning
- π Free The Hundred-Page Machine Learning Book
- Hands-On Machine Learning with Scikit-Learn & TensorFlow, the associated Github repository has tutorials as Jupyter notebooks.
- Deep Learning with Python, by the creator of Keras
Mathematical background for machine learning (but you probably want to look elsewhere if you are not used to maths):
- π Free Mathematics for Machine Learning
To have a general tour of techniques in artificial intelligence read AIMA:
Use these textbooks to get a grasp of machine and statistical learning:
- π Free Foundations of Data Science
- π Free A Course in Machine Learning
- π Free Elements of Statistical Learning
- π Free Pattern Recognition and Machine Learning
- Machine Learning: A Probabilistic Perspective
- Learning from Data, starts to be old and is not enough by itself but can help understand the very basics of the VC
Learn deep learning with these:
- π Free Neural Networks and Deep Learning
- π Free Deep Learning
If you want to learn reinforcement learning, this one is the reference:
- π Free Reinforcement Learning, 2nd Edition
For data mining specific methods:
- π Free Mining of Massive Datasets
To get into Deep Reinforcement Learning, this review is nice:
Use the Arxiv Sanity Preserver to find new papers to read.
- Deep Learning: Our Miraculous Year 1990-1991
- Better Language Models and Their Implications
- Emergent Tool Use from Multi-Agent Interaction
numpy
and pandas
are essential, numpy
is basically everything math-related whereas pandas
is all about manipulating data.
scikit-learn
is part of the bigger scipy
framework but works as a standalone. It contains a lot of non-deep learning machine learning algorithm and many preprocessing methods. Perfect for learning linear/logistic regression, SVMs, or tree-based methods.
PyTorch and TensorFlow are pretty much competitors, chose one and implement everything with it. Keep a distant eye on the other.
Keras is a layer of abstraction on top of TensorFlow, CNTK or Theano (which it uses as a backend).