Technologies come and technologies go, but insight is forever. You need to understand the durable, lasting insights underlying how neural networks work.
The purpose of this 24 hours’ class is to help you master the core concepts of neural networks, including modern techniques for deep learning. After working through the lessons you will have written code that uses neural networks and deep learning to solve complex pattern recognition problems. And you will have a foundation to use neural networks and deep learning to attack problems of your own devising. We’ll develop living code, not just abstract theory, code which you can explore and extend. This way you’ll understand the fundamentals, both in theory and practice, and be well set to add further to your knowledge.
CLASS #1 - Foundations
Hello World & Basic Operations
CLASS #2 - Basic Classifiers
Nearest Neighbor, Linear Regression, and Logistic Regression
CLASS #3 - Neural Networks
Multilayer Perceptron, Convolutional Neural Network, and AlexNet
CLASS #4 - Recurrent Neural Network
Recurrent Neural Network, Bidirectional Recurrent Neural Network, and AutoEncoder
CLASS #5 - User Interface (Tensorboard)
Graph Visualization and Loss Visualization
CLASS #6 - Other Packages
Keras, TFLearn, Theano, and Caffe
Neural networks are one of the most beautiful programming paradigms ever invented. In the conventional approach to programming, we tell the computer what to do, breaking big problems up into many small, precisely defined tasks that the computer can easily perform. By contrast, in a neural network we don’t tell the computer how to solve our problem. Instead, it learns from observational data, figuring out its own solution to the problem at hand.
One conviction underlying the class is that it’s better to obtain a solid understanding of the core principles of neural networks and deep learning, rather than a hazy understanding of a long laundry list of ideas. If you’ve understood the core ideas well, you can rapidly understand other new material. In programming language terms, think of it as mastering the core syntax, libraries and data structures of a new language. You may still only “know” a tiny fraction of the total language – many languages have enormous standard libraries – but new libraries and data structures can be understood quickly and easily.
You’ll learn the core principles behind neural networks and deep learning by attacking a concrete problem: the problem of teaching a computer to recognize handwritten digits. This problem is extremely difficult to solve using the conventional approach to programming. And yet, as we’ll see, it can be solved pretty well using a simple neural network and with just a few lines of code. What’s more, we’ll improve the program through many iterations, gradually incorporating more and more of the core ideas about neural networks and deep learning.