resources

coding

While it's possible to learn theory alone, we highly recommend that you pick up coding if you want to implement your own models from scratch. While many languages can be used, we recommend Python.


CodingBat: Site filled with live coding problems (Python/Java)

Codecademy: Guided, self-paced online course

Project Euler: More advanced problems, larger difficulty range


As for frameworks, anything works. For general purposes, scikit-learn is very beginner-friendly. For more involved deep learning, we recommend PyTorch.

computation

We recommend using Jupyter Notebook / Google Colab. Both allow you to run code/add markdown text in blocks, making it easy to combine code, comments, and visualizations.

As for GPUs, Virginia Tech has ARC (Advanced Research Computing), which hosts multiple clusters. The link show documentation for ARC's clusters, as well as info on how to access them. There are also some GPU nodes on rlogin (use 'ssh portal.cs.vt.edu').

textbooks/courses

Andrew Ng has some online courses on machine learning and deep learning.

Stanford has several useful resources. There's CS229 (standard ML), CS231n (Deep Learning for Computer Vision), CS234 (Reinforcement Learning), CS236 (Generative Models), and much more. Definitely check out the lecture notes for these classes. Many have lectures videos online.

This is is a great textbook on machine learning if you prefer a hands-on approach. This is a great online book on neural nets and deep learning. Here's another great one. Finally, this book goes over several mathetmatical concepts in ML.

other

If you haven't already, watch DeepMind's AlphaGo documentary.

Someone also compiled a list of focused links for deep learning. It looks promising.