How Do I Start Using Deep Learning?
Where you start depends on what you already know.
The prerequisites for really understanding deep learning are linear algebra, calculus and statistics, as well as programming and some machine learning. The prerequisites for applying it are just learning how to deploy a model.
In the case of Deeplearning4j, you should know Java well and be comfortable with tools like the IntelliJ IDE and the automated build tool Maven. Skymind’s SKIL also includes a managed Conda environment for machine learning tools using Python.
Below you’ll find a list of resources. The sections are roughly organized in the order they will be useful.
GET STARTED WITH DEEP LEARNING
Free Machine and Deeplearning Courses Online
 Andrew Ng’s MachineLearning Class on YouTube
 Geoff Hinton’s Neural Networks Class on YouTube
 Patrick Winston’s Introduction to Artificial Intelligence @MIT (For those interested in a survey of artificial intelligence.)
 Andrej Karpathy’s Convolutional Neural Networks Class at Stanford (For those interested in image recognition.)
 [email protected]: Machine Learning Crash Course: Part 1
 [email protected]: Machine Learning Crash Course: Part 2

[Gradient descent, how neural networks learn Deep learning, part 2](https://www.youtube.com/watch?v=IHZwWFHWaw&feature=youtu.be)
Math
 Seeing Theory: A Visual Introduction to Probability and Statistics
 Andrew Ng’s 6Part Review of Linear Algebra
 Khan Academy’s Linear Algebra Course
 Linear Algebra for Machine Learning; Patrick van der Smagt
 CMU’s Linear Algebra Review
 Math for Machine Learning
 Immersive Linear Algebra
 Probability Cheatsheet
 The best linear algebra books
 Markov Chains, Explained
 An Introduction to MCMC for Machine Learning
Programming
If you do not know how to program yet, you can start with Java, but you might find other languages easier. Python and Ruby resources convey the basic ideas in a faster feedback loop.
 Learn Java The Hard Way
 Learn Python the Hard Way
 Pyret: A Python Learning Environment
 Scratch: A Visual Programming Environment From MIT
 Learn to Program (Ruby)
 Intro to the Command Line
 Additional commandline tutorial
 A Vim Tutorial and Primer (Vim is an editor accessible from the command line.)
 Intro to Computer Science (CS50 @Harvard edX)
 A Gentle Introduction to Machine Fundamentals
If you want to jump into deeplearning from here without Java, we recommend Theano and the various Python frameworks built atop it, including Keras and Lasagne.
Java
Once you have programming basics down, tackle Java, the world’s most widely used programming language, and the language of Hadoop.
 Think Java: Interactive Webbased Dev Environment
 Learn Java The Hard Way
 Java Resources
 Java Ranch: A Community for Java Beginners
 Intro to Programming in Java @Princeton
 Head First Java
 Java in a Nutshell
Deeplearning4j
With that under your belt, we recommend you approach Deeplearning4j through its examples.
Once you get those up and running, and you’ve understood the API, you’re ready for a full install.
Other Resources
Most of what we know about deep learning is contained in academic papers. We’ve linked to a number of them here.
While individual courses have limits on what they can teach, the Internet does not. Most math and programming questions can be answered by Googling and searching sites like Stackoverflow and Math Stackexchange.
Beginner’s Guides for Deep Learning and Machine Learning
 Introduction to Deep Neural Networks
 Regression & Neural Networks
 Generative Adversarial Networks (GANs)
 Word2vec: Neural Word Embeddings for Natural Language Processing
 Restricted Boltzmann Machines: The Building Blocks of DeepBelief Networks
 Recurrent Networks and Long ShortTerm Memory Units
 Convolutional Networks for Image Processing
 Artificial Intelligence vs. Machine Learning vs. Deep Learning
 Comparing OpenSource Deep Learning Frameworks
 Eigenvectors, PCA, Covariance and Entropy
 The AI Hierarchy of Needs
 Deep Reinforcement Learning
 Symbolic Reasoning & Deep Learning
 Graph Data & Deep Learning
 Open Data Sets for Machine Learning
 ETL Data Pipelines for Machine Learning
 A Glossary of DeepLearning Terms
 Inference: Machine Learning Model Server