The ISL and ESL textbooks are both FREE to download (legally!). See links below.
-
An Introduction to Statistical Learning with Applications in R An excellent textbook intended for students in the non-mathematical sciences. Also useful for the R examples. Coauthored by UW's very own Daniela Witten.
-
Elements of Statistical Learning My personal favorite reference. Accessible, yet advanced enough to give you the computational and mathematical reasoning behind many models.
-
Machine Learning (A Probabilistic Perspective) Probably the most well known textbook on machine learning. Recommended for mathematically mature readers.
-
A list of books from related fields that Marina Meila (teaches STAT 391, STAT 535, and others) recommends for those who are "serious about Statistical Learning".
-
Marina also has a list of books on probability, for STAT 391 students.
-
UW faculty member Jake VanderPlas is the author of O'Reilly's Python Data Science Handbook. All notebooks and resources used in the book are posted.
Q: Should I use Python or R? A: It depends on what you're doing, both langauges have their strengths; R is arguably better for Statistical Modeling, but for general machine learning/data science Python has a variety of robust libraries all at different levels of abstraction. Lectures will be taught in Python.
-
We recommend you install the free Anaconda Python distribution, which will automatically install Python along with all of the machine learning and scientific computing libraries you need.
-
Here are some resources for getting started with both the Python language in general and Python for data science specifically:
-
The following are indispensable tools for any type of data analysis in the Python environment:
- scikit-learn – Python's primary machine learning library
- NumPy – an optimized Python numerical library. A quick intro to NumPy can be found here
- matplotlib – graphing and plots
- SciPy – domain specific scientific functions
- Pandas – data analytics
- Git – version control for software
- Jupyter Notebook – interactive computing
-
This collection of online notebooks created by UW faculty member Jake VanderPlas is an excellent resource for becoming familiar with the above development stack. 00_intro.ipynb and 01_basic_training.ipynb introduce the Python programming language. Subsequent notebooks cover the aforementioned list of tools.
Reinforcement learning is a fascinating subfield of machine learning with connections to artificial intelligence, control theory and behavioral psychology.
-
For an introduction to the field, read the first chapter of Sutton and Barto's classic book, "Reinforcement Learning: An Introduction". It's really an excellent book, fun to read, and available online in PDF or HTML.
-
Deep Reinforcement Learning online course notes from Berkeley
-
Reinforcement Learning course videos and slides from David Silver of Google DeepMind/University College London
-
The Berkeley AI course offers great introductory online lectures on reinforcement learning and a fun PacMan reinforcement learning project, which will be familiar to those who took CSE 473 (Intro to Artificial Intelligence) at UW.
The term "deep learning" most commonly refers to "neural nets with multiple hidden layers", and is currently an extremely active area of research.
-
Deep Learning: an excellent overview article published in Nature in 2015, written by three leaders in the field.
-
Neural Networks and Deep Learning, free e-book.
-
Deep Learning, a comprehensive, in-progress textbook freely available online.
-
Convolutional Neural Networks for Visual Recognition, Berkeley online course notes.
-
Juergen Schmidhuber's website has many interesting resources.
-
Deep Learning course videos and slides by Nando de Freitas of Google DeepMind/Oxford.
-
Keras is a powerful and easy to use deep learning library for Python that supports the popular TensorFlow and Theano backends.
-
Torch is another commonly used deep learning framework.
-
A Few Useful Things to Know about Machine Learning is a short essay describing important things to know, from UW CSE professor Pedro Domingos.
-
Lecture notes for STAT 535 "Foundations of Machine Learning".
-
Andrew Ng's (Stanford) machine learning course on Coursera.
-
UW professor Pedro Domingos online Machine Learning course.
-
The FAQ in r/MachineLearning.
-
STAT 391 (Spring, non-majors okay) - Probability and Statistics for Computer Scientists. MATH/STAT 394 or 390 comes in incredibly handy for this class. MATH/STAT 395 doesn't hurt either. Prerequisite: minimum grade of 2.5 in MATH 126; 2.5 in MATH 308; either CSE 326, CSE 332, CSE 373, CSE 417, or CSE 421.
-
CSE 446 (Winter/Spring, majors only) - Machine Learning. Prerequisite: CSE 332; either STAT 390, STAT 391, or CSE 312.
-
STAT 535 (Autumn, non-majors okay) - Foundations of Machine Learning. Prerequisite: "experience with programming in a high level language", but in reality you need to have taken at least STAT 391 or CSE 446. Intended for grads and newly anointed Phd candidates, but some undergrads take it as well.
Related courses that cover stuff you will need to know eventually anyways:
- MATH 124/125/126 - calculus
- MATH 308 - linear algebra
- CSE 142/143 - intro to programming
- STAT 311 - intro statistics
- MATH/STAT 394 or MATH/STAT 390 or CSE 312 or STAT 340 (all majors only) - probability
- MATH 300 or CSE 311 (both majors only) - basically "Welcome to Actual Math"
Helpful but not necessary:
- CSE 332 (majors) or CSE 373 (non-majors) - data structures or "Welcome to Actual Computer Science"
- CSE 415/473 Artificial Intelligence, offered by the CSE department in both majors and non-majors flavors
- CSE 414/344 Databases, both majors and non-majors
- MATH/STAT 491 Stochastic Processes (majors only), if you are interested in eventually learning about graphical probability models
- Being a Statistics, ACMS or Computer Science major
-
Google DeepMind's Deep Q-learning playing Atari Breakout [1:42] You can read more about it in Wired, read the excellent academic paper and even download an open source implementation.
-
MarI/O - Machine Learning for Video Games [5:58] Neural network learns how to play Super Mario Bros. from simplified screen input.
-
Computer program that learns to play classic NES games [16:17] Explanation ends and gameplay begins at [6:13]. A more general program, which reads in previously recorded bytes of memory from a human "teacher" playing a video game, then attempts to find a sequence of those bytes which make its level in the game go up. (So all it is trying to do is make (specific) bytes in memory increase, it knows nothing about the game). Notice how often the player gets stuck in local optima. This is a problem in optimization problems in general, but particularly in neural networks.
- Formal Theory of Fun & Creativity Explains Science, Art, Music, Humor by Juergen Schmidhuber, a pioneer in deep learning and neural networks
This material would more accurately fall under artificial intelligence, a superfield of machine learning, but it's beautiful nonetheless.
-
Emily Howell, a computer program that composes music by listening to recordings of performances by humans.
-
EMI "Experiments in Musical Intelligence" is another program by David Cope. Here is an eerily well composed symphony in the style of Mozart.
Artificial General Intelligence, which is defined as "the capacity of an engineered system to display the same rough sort of general intelligence as humans; or, display intelligence that is not tied to a highly specific set of tasks", depends heavily on the field on machine learning.
-
Scholarpedia overview of the field of Artificial General Intelligence
-
The Hidden Pattern by Dr. Ben Goertzel, Chairman of the Artificial General Intelligence Society and OpenCog
-
A Formal Theory of Universal Intelligence, an introductory video by Dr. Marcus Hutter
-
Machine Superintelligence, the PhD thesis of Shane Legg, cofounder of Google DeepMind
-
How Khan Academy is using Machine Learning to Assess Student Mastery
-
How Companies Know Your Secrets The classic article on how Target found out a girl was pregnant before her father did.
Other links will be posted as they pertain to lectures!