Education

repo: guillaume-chevalier/awesome-deep-learning-resources
category: Computer Science related: Algorithms · Learn To Program


Awesome Deep Learning Resources Awesome

This is a rough list of my favorite deep learning resources. It has been useful to me for learning how to do deep learning, I use it for revisiting topics or for reference. I (Guillaume Chevalier) have built this list and got through all of the content listed here, carefully.

Contents

<a name="trends" />

Here are the all-time Google Trends, from 2004 up to now, September 2017: <p align="center"> <img src="google_trends.png" width="792" height="424" /> </p>

You might also want to look at Andrej Karpathy's new post about trends in Machine Learning research.

I believe that Deep learning is the key to make computers think more like humans, and has a lot of potential. Some hard automation tasks can be solved easily with that while this was impossible to achieve earlier with classical algorithms.

Moore's Law about exponential progress rates in computer science hardware is now more affecting GPUs than CPUs because of physical limits on how tiny an atomic transistor can be. We are shifting toward parallel architectures [read more]. Deep learning exploits parallel architectures as such under the hood by using GPUs. On top of that, deep learning algorithms may use Quantum Computing and apply to machine-brain interfaces in the future.

I find that the key of intelligence and cognition is a very interesting subject to explore and is not yet well understood. Those technologies are promising.

<a name="online-classes" />

Online Classes

  • DL&RNN Course - I created this richely dense course on Deep Learning and Recurrent Neural Networks.
  • [Machine Learning by Andrew Ng on Coursera](https://www.coursera.org/learn/machine-learning) - Renown entry-level online class with certificate. Taught by: Andrew Ng, Associate Professor, Stanford University; Chief Scientist, Baidu; Chairman and Co-founder, Coursera.
  • [Deep Learning Specialization by Andrew Ng on Coursera](https://www.coursera.org/specializations/deep-learning) - New series of 5 Deep Learning courses by Andrew Ng, now with Python rather than Matlab/Octave, and which leads to a specialization certificate.
  • [Deep Learning by Google](https://www.udacity.com/course/deep-learning--ud730) - Good intermediate to advanced-level course covering high-level deep learning concepts, I found it helps to get creative once the basics are acquired.
  • [Machine Learning for Trading by Georgia Tech](https://www.udacity.com/course/machine-learning-for-trading--ud501) - Interesting class for acquiring basic knowledge of machine learning applied to trading and some AI and finance concepts. I especially liked the section on Q-Learning.
  • Neural networks class by Hugo Larochelle, Université de Sherbrooke - Interesting class about neural networks available online for free by Hugo Larochelle, yet I have watched a few of those videos.
  • GLO-4030/7030 Apprentissage par réseaux de neurones profonds - This is a class given by Philippe Giguère, Professor at University Laval. I especially found awesome its rare visualization of the multi-head attention mechanism, which can be contemplated at the slide 28 of week 13's class.
  • [Deep Learning & Recurrent Neural Networks (DL&RNN)](https://www.neuraxio.com/en/time-series-solution) - The most richly dense, accelerated course on the topic of Deep Learning & Recurrent Neural Networks (scroll at the end).

<a name="books" />

Books

  • Clean Code - Get back to the basics you fool! Learn how to do Clean Code for your career. This is by far the best book I've read even if this list is related to Deep Learning.
  • Clean Coder - Learn how to be professional as a coder and how to interact with your manager. This is important for any coding career.
  • How to Create a Mind - The audio version is nice to listen to while commuting. This book is motivating about reverse-engineering the mind and thinking on how to code AI.
  • Neural Networks and Deep Learning - This book covers many of the core concepts behind neural networks and deep learning.
  • [Deep Learning - An MIT Press book](http://www.deeplearningbook.org/) - Yet halfway through the book, it contains satisfying math content on how to think about actual deep learning.
  • Some other books I have read - Some books listed here are less related to deep learning but are still somehow relevant to this list.

<a name="posts-and-articles" />

Posts and Articles

<a name="practical-resources" />

Practical Resources

<a name="librairies-and-implementations" />

Librairies and Implementations

<a name="some-datasets" />

Some Datasets

Those are resources I have found that seems interesting to develop models onto.

<a name="other-math-theory" />

Other Math Theory

<a name="gradient-descent-algorithms-and-optimization" />

Gradient Descent Algorithms & Optimization Theory

  • [Neural Networks and Deep Learning, ch.2](http://neuralnetworksanddeeplearning.com/chap2.html) - Overview on how does the backpropagation algorithm works.
  • [Neural Networks and Deep Learning, ch.4](http://neuralnetworksanddeeplearning.com/chap4.html) - A visual proof that neural nets can compute any function.
  • Yes you should understand backprop - Exposing backprop's caveats and the importance of knowing that while training models.
  • Artificial Neural Networks: Mathematics of Backpropagation - Picturing backprop, mathematically.
  • [Deep Learning Lecture 12: Recurrent Neural Nets and LSTMs](https://www.youtube.com/watch?v=56TYLaQN4N8) - Unfolding of RNN graphs is explained properly, and potential problems about gradient descent algorithms are exposed.
  • [Gradient descent algorithms in a saddle point](http://sebastianruder.com/content/images/2016/09/saddle_point_evaluation_optimizers.gif) - Visualize how different optimizers interacts with a saddle points.
  • [Gradient descent algorithms in an almost flat landscape](https://devblogs.nvidia.com/wp-content/uploads/2015/12/NKsFHJb.gif) - Visualize how different optimizers interacts with an almost flat landscape.
  • Gradient Descent - Okay, I already listed Andrew NG's Coursera class above, but this video especially is quite pertinent as an introduction and defines the gradient descent algorithm.
  • Gradient Descent: Intuition - What follows from the previous video: now add intuition.
  • [Gradient Descent in Practice 2: Learning Rate](https://www.youtube.com/watch?v=gX6fZHgfrow) - How to adjust the learning rate of a neural network.
  • The Problem of Overfitting - A good explanation of overfitting and how to address that problem.
  • Diagnosing Bias vs Variance - Understanding bias and variance in the predictions of a neural net and how to address those problems.
  • Self-Normalizing Neural Networks - Appearance of the incredible SELU activation function.
  • Learning to learn by gradient descent by gradient descent - RNN as an optimizer: introducing the L2L optimizer, a meta-neural network.

<a name="complex-numbers-and-digital-signal-processing" />

Complex Numbers & Digital Signal Processing

Okay, signal processing might not be directly related to deep learning, but studying it is interesting to have more intuition in developing neural architectures based on signal.

  • Window Functions - Wikipedia page that lists some of the known window functions - note that the Hann-Poisson window is specially interesting for greedy hill-climbing algorithms (like gradient descent for example).
  • MathBox, Tools for Thought Graphical Algebra and Fourier Analysis - New look on Fourier analysis.
  • [How to Fold a Julia Fractal](http://acko.net/blog/how-to-fold-a-julia-fractal/) - Animations dealing with complex numbers and wave equations.
  • [Animate Your Way to Glory, Math and Physics in Motion](http://acko.net/blog/animate-your-way-to-glory/) - Convergence methods in physic engines, and applied to interaction design.
  • [Animate Your Way to Glory - Part II, Math and Physics in Motion](http://acko.net/blog/animate-your-way-to-glory-pt2/) - Nice animations for rotation and rotation interpolation with Quaternions, a mathematical object for handling 3D rotations.
  • Filtering signal, plotting the STFT and the Laplace transform - Simple Python demo on signal processing.

<a name="papers" />

Papers

<a name="recurrent-neural-networks" />

Recurrent Neural Networks

<a name="convolutional-neural-networks" />

Convolutional Neural Networks

<a name="attention-mechanisms" />

Attention Mechanisms

<a name="other" />

Other

  • [ProjectionNet: Learning Efficient On-Device Deep Networks Using Neural Projections](https://arxiv.org/abs/1708.00630) - Replace word embeddings by word projections in your deep neural networks, which doesn't require a pre-extracted dictionnary nor storing embedding matrices.
  • Self-Governing Neural Networks for On-Device Short Text Classification - This paper is the sequel to the ProjectionNet just above. The SGNN is elaborated on the ProjectionNet, and the optimizations are detailed more in-depth (also see my attempt to reproduce the paper in code and watch [the talks' recording](https://vimeo.com/305197775)).
  • Matching Networks for One Shot Learning - Classify a new example from a list of other examples (without definitive categories) and with low-data per classification task, but lots of data for lots of similar classification tasks - it seems better than siamese networks. To sum up: with Matching Networks, you can optimize directly for a cosine similarity between examples (like a self-attention product would match) which is passed to the softmax directly. I guess that Matching Networks could probably be used as with negative-sampling softmax training in word2vec's CBOW or Skip-gram without having to do any context embedding lookups.

<a name="youtube" />

YouTube and Videos

<a name="misc-hubs-and-links" />

  • Hacker News - Maybe how I discovered ML - Interesting trends appear on that site way before they get to be a big deal.
  • DataTau - This is a hub similar to Hacker News, but specific to data science.
  • Naver - This is a Korean search engine - best used with Google Translate, ironically. Surprisingly, sometimes deep learning search results and comprehensible advanced math content shows up more easily there than on Google search.
  • Arxiv Sanity Preserver - arXiv browser with TF/IDF features.
  • Awesome Neuraxle - An awesome list for Neuraxle, a ML Framework for coding clean production-level ML pipelines.

<a name="license" />

License

CC0

To the extent possible under law, Guillaume Chevalier has waived all copyright and related or neighboring rights to this work.

[[curator]]
I'm the Curator. I can help you navigate, organize, and curate this wiki. What would you like to do?