# A comprehensive list of Machine Learning Resources: Open Courses, Textbooks, Tutorials, Cheat Sheets and more

A thorough collection of useful resources covering statistics, classic machine learning, deep learning, probability, reinforcement learning, and more.

**By Sam Finlayson, MD-PhD Student at Harvard-MIT**.

Original. Reposted with permission.

*The following is a snapshot of the original that will be updated over time*

This is a not-particularly-systematic attempt to curate a handful of my favorite resources for learning statistics and machine learning. This isn’t meant to be comprehensive, and in fact is still missing the vast majority of my favorite explainers. Rather, it’s just a smattering of resources I’ve found myself turning to multiple times and thus would like to have in one place. The organization is as follows:

*Open Courses and Textbooks*: Cover a fairly*broad*topic reasonably*comprehensively*, and would take*weeks to months*to work through start-to-finish.*Tutorials, Overviews, and (Individual) Lecture Notes*: Explain a*specific*topic extremely*clearly*, and take*minutes to hours*(or a few days tops) to work through from start-to-finish.*Cheatsheets*: Provide structured access to useful bits of information on the order of*seconds*.

Finally, I’ve added a section with links to a few miscellaneous websites that often produce great content.

Of the above, the second section is both the most incomplete and the one that I am most excited about. I hope to use it to capture the best explanations of tricky topics that I have read online, to make it easier to re-learn them later when I inevitably forget. (In a perfect world, Chris Olah and/or distill.pub would just write an article on everything, but in the meantime I have to gather scraps from everywhere else.)

If you stumble upon this list and have suggestions for me to add (especially for the middle section!), please feel free to reach out! But I’m only trying to post things on here that I’ve read, so it may be caught in my to-read list for a while before it makes it on here. Of course, the source for this webpage is on github, so you can also just take it.

### Open Courses and Textbooks

I’m trying to limit to this list to things that are legally accessible online, for free.

**Foundation**

File | Description |
---|---|

Math for ML Book | Math for machine learning book by Faisal and Ong, available on github. |

Boyd Applied Linear Algebra | Freely available book from Boyd and Vandenberghe on Applied LA (website). |

Fast.ai Computational Linear Algebra | Rachel Thomas has put together this great online textbook for computational linear algebra with accompanying youtube videos. |

MIT 6.041 Intro Probability | John Tsitsiklis et al have put together some great resources. Their classic MIT intro to probability has been archived on OCW and also offered on edX (Part 1, Part 2). The textbook is also excellent. |

Joe Blitzstein’s Stat110 | Joe Blitzstein’s undergrad probability course has a high overlap in content with 6.041. Like 6.041, it also has a great textbook, youtube videos, and an edx offering. It’s a bit more playful, as well. |

MathematicalMonk | This guy is amazing. Some 250 YouTube tutorials on ML, Probability, and Information Theory. What’s great about these playlists is any individual video could go into section 2! |

Tim Roughgarden’s Lectures on Algorithms and Algorithms Illuminated | Tim Roughgarden is one of most natural teachers I’ve ever seen, and fortunately for the world, he’s decided to make a lot of his algorithms resources public. The first link is to lecture notes in PDF form from many classes – for the data-oriented, his CS 168 course is accessible and amazing. Videos for his Algorithms 2 class (CS 261) are here (pdf notes are in that first link). The second is a link to his page for his new textbook, but that page also has links out to all the YouTube videos from his Coursera version of CS 161 (Algorithms 1). |

#### Statistics

File | Description |
---|---|

Seeing Theory | This is an online visual textbook that has a bunch of cool interactive displays for intro probability/stats ideas. My favorite is the inference visualizations. |

Russell Poldracks’ Statistical Thinking for the 21st Century | This appears to be a pretty fantastic (albeit rather elementary) textbook for a one-quarter intro to statistics class (stat 60 at stanford). Despite assuming little, it touches upon a lot of great topics. |

Modern Statistics for Modern Biology | This online textbook is from Susan Holmes and Wolfgang Huber, and provides a nice and accessible intro to the parts of modern data science relevant to computational biologists. It also happens to be a piece of typographic art, created with bookdown. |

Statistical Rethinking | Lecture Videos on youtube accompany this very well-reviewed introductory textbook. |

Hernan and Robbins Causal Inference Book | Long-upcoming textbook on causal inference (from the epidemiology perspective), with drafts fairly frequently updated on the web page. |

#### Classic Machine Learning

File | Description |
---|---|

Bishop’s Pattern Recognition and Machine Learning | This is a classic ML text, and has now been finally released (legally) for free online. |

CS 229 Lecture Notes | Classic note set from Andrew Ng’s amazing grad-level intro to ML: CS229. |

ESL and ISL from Hastie et al | Beginner (ISL) and Advanced (ESL) presentation to classic machine learning from world-class stats professors. Slides and video for a MOOC on ISL is available here. |

CS 228 PGM Notes | Really great course notes on Probabilistic Graphical Models from at Stanford. PDF export wasn’t ideal so linking only to website. |

Blei Foundations of Graphical Models Course | 2016 course notes on Foundations of Graphical Models from David Blei 2016 website |

#### Deep Learning

File | Description |
---|---|

Roger Grosse’s CSC231 Notes | Notes from Roger Grosse’s CSC 231 full website here. Probably the single best intro to DL course I’ve found from any university. Notes and slides are gorgeous. |

Fast.Ai | Wonderful set of intro lectures + notebooks from Jeremy Howard and Rachel Thomas. In addition, Hiromi Suenaga has released excellent and self-contained notes of the whole series with timestamp links back to videos: FastAI DL Part 1, FastAI DL Part 2, and FastAI ML. |

CS231N DL for Vision | Amazing notes from Andrej Karpathy, with lectures on YouTube as well. |

CS224 Deep Learning for NLP 2017 | Fantastic course notes on Deep Learning for NLP from Stanford’s CS224. Github repo here |

CMU CS 11-747 | Fantastic course on Deep Learning for NLP from CMU’s Graham Neubig. Really great lecture videos on YouTube here |

Deep Learning Book | This textbook by Ian Goodfellow, Yoshua Bengio, and Aaron Courville is probably the closest we have to a de-facto standard textbook for DL. |

#### Reinforcement Learning

File | Description |
---|---|

Sutton and Barto Open RL Book | De-facto standard intro to RL, even though the textbook is only now about to be published! |

Berkeley Deep Reinforcement Learning | RL class from Berkeley taught by top dogs in the field, lectures posted to YouTube. |

#### Optimization

File | Description |
---|---|

Boyd Convex Optimization Book | Famous and freely available textbook from Boyd and Vandenberghe, accompanied by slides and YouTube videos. More advanced follow-up class here |

NYU Optimization-based Data Analysis 2016 and 2017 | Fantastic course notes on Optimization-based data analysis from NYU 2016 website and 2017 website. |

### Tutorials, Overviews, and (Individual) Lecture Notes

This section is fledgling at best, but was my real motivation in making this page. Archetypes include basically anything on distill.pub, good blog or medium posts, etc. Depth-first learning looks like a great access point here, but I haven’t gotten to do more than skim any of those, yet.

#### Fundamentals

File | Description |
---|---|

CS 229 Linear Algebra Notes | Linear algebra reference from Stanford’s Machine Learning Course. |

Matrix Calc for DL (pdf here) | Really nice overview of matrix calculus for deep learning from Parr/Howard. Citable on on arxiv. |

#### Probability and Statistics

File | Description |
---|---|

Seeing Theory Frequentist Inference | This is a really beautiful visual presentation of the basic ideas of frequentist inference, from the Seeing Theory textbook. I love it. |

Hernan Selection Bias | Nice summary of selection bias via DAGs by Hernan et al. |

#### Classic Machine Learning/Data Science NOS

File | Description |
---|---|

Roughgarden SVD Notes | Really great presentation of SVD from Tim Rougharden’s CS168 at Stanford. |

Roughgarden PCA Notes | Really great presentation of PCA from Tim Rougharden’s CS168 at Stanford. |

#### Bayesian Machine Learning

File | Description |
---|---|

Blei Exponential Familes/Variational Inference | A couple of the course notes I particularly like from Blei’s 2011 Probabilistic Modeling Course ) |

Blei Variational Inference Review | Overview on Variational Inference from David Blei available on arxiv |

#### Deep Learning

File | Description |
---|---|

Adversarial Examples/Robust ML Part 1, Part 2, and Part 3 | The Madry lab is one of the top research groups in robust deep learning research. They put together a fantastic intro to these topics on their blog. I hope they keep making posts… |

Distill Attention | Amazingly clear presentation of the attention mechanism and its (early) variants |

Distill Building Interpretability | Coolest visualizations of NN internals I’ve ever seen |

Distill Feature Visualization | Running theme: If it’s only distill.pub, read it. |

Chris Olah Understanding LSTMs | Chris Olah is a master of his craft, and here offers a fantastic overview of LSTMs and GRUs. |

Intro to Federated Learning | Intro to federated learning and PySyft from Andrew Trask and others using PyTorch. |

#### Natural Language Processing

File | Description |
---|---|

Chris Olah on Word Embeddings | Chris Olah explaining world embeddings and the like. |

The Annotated Transformer | Harvard’s Sasha Rush created a line-by-line annotation of “Attention is All You Need” that also serves as a working notebook. Pedagogical brilliance, and it would be awesome to do this for a couple papers per year. |

Goldberg’s Primer on NNs for NLP | Overview of Deep Learning for NLP from Yoav Goldberg downloaded from here. |

Neubig’s Tutorial on NNs for NLP | Overview of Deep Learning for NLP from Graham Neubig. Downloaded from arxiv and pairs nicely with his course and videos. |

#### Reinforcement Learning

File | Description |
---|---|

Karpathy’s Pong From Pixels | Andrej Karpathy has a real gift for didactics. This is a self-contained explanation of deep reinforcement learning sufficient to understand a basic Atari agent. |

Weng’s A (Long) Peek into RL | A nice blog post covering the foundations of reinforcement learning |

OpenAI’s Intro to RL | The introductory tutorial for OpenAI's new “Spinning Up in Deep RL” website |

#### Information Theory

File | Description |
---|---|

Chris Olah Visual Information Theory | As always, Chris Olah creates an amazing presentation both in words and images. Goal is to visualize key information theory concepts. |

Deriving Probability Distributions from Maximum Entropy Principle | It feels slimy and self-serving to include this, but I wrote this post to better understand how information theory can be used to understand/derive common probability distributions from first principles. |

Deriving the information entropy of the multivariate Gaussian | Another blog post I wrote to try to understand information theory + statistics. |

#### Optimization

File | Description |
---|---|

Ruder Gradient Descent Overview (PDF here) | Great overview of gradient descent algorithms. |

Bottou Large-Scale Optimization | Notes on Optimization from Bottou, Curtis, and Nocedal. Downloaded from arxiv. |

### Cheat sheets

#### Math

File | Description |
---|---|

Probability Cheatsheet | Probability cheat sheet, from William Chen’s github |

CS 229 TA Cheatsheet 2018 | TA cheat sheet from the 2018 offering of Stanford’s Machine Learning Course, Github repo here. |

CS Theory Cheatsheet | CS theory cheat sheet, originally accessed here |

#### Programming

File | Description |
---|---|

R dplyr cheatsheet | Cheatsheet for Hadley’s amazing data wrangling package, dplyr. One of many from RStudio |

R ggplot2 cheatsheet | Cheatsheet for Hadley’s amazing plotting package, ggplot2. One of many from RStudio |

SQL Joins cheat sheet | Graphical description of classic SQL joins w/ toy code |

Python pandas cheatsheet | Cheatsheet for python’s data wrangling package, pandas. Downloaded from here |

Python numpy cheat sheet | Cheatsheet for python’s numerical package, numpy. Downloaded from Datacamp |

Python keras cheat sheet | Cheatsheet for python’s NN package, keras. Downloaded from Datacamp. |

Python scikit-learn cheat sheet | Cheatsheet for python’s ML package, scikit-learn. Downloaded from Datacamp. |

Python seaborn tutorial | Tutorial for python’s plotting system, seaborn. Haven’t found a great one yet for matplotlib. |

Graphic Design cheat sheet | Cute little graphic design cheat sheet downloaded from here |

### Miscellaneous websites

File | Description |
---|---|

Chris Olah’s Blog | Essentially everything on here is gold. I am so grateful for the hours he must put into these posts. |

distill.pub | Distill navigates a really interesting gap between super-blog and research journal. I wish that we had more publications like this. |

Pytorch Tutorials | The tutorials put out by the Pytorch developers are really fantastic. Easy to see why the community is growing so fast. |

Sebastian Ruder’s blog | Sebastian has produced a lot of really great explanations, like the one on gradient descent methods I linked to above. He also maintains a website tracking progress on NLP benchmarks |

ShortScience | This website contains public summaries/discussions of machine learning, CS, and biology papers. |

Berkeley AI Research (BAIR) Blog | BAIR produces a lot of great research, and uses this blog to release more accessible presentations of their papers. |

Off the Convex Path | Nice blog on machine learning and optimization. |

Ferenc Huszár’s blog | Pretty popular blog that has a lot of explorations/musings on ML from an author with a rigorous mathematical perspective |

Thibaut Lienart’s Blog | This website has some notes on math and optimization that seem interesting. |

**Bio**: Sam Finlayson is a MD-PhD Student at Harvard/MIT, currently working on machine learning in medicine.

**Resources:**

- On-line and web-based: Analytics, Data Mining, Data Science, Machine Learning education
- Software for Analytics, Data Science, Data Mining, and Machine Learning

**Related:**