312. Build a Neural Network Framework
Code your own neural network framework from scratch
In this course, we build a neural network framework from scratch. Using native Python and the Numpy library we build test data sets and a modular framework for putting together fully connected neural networks, like multilayer perceptrons and autoencoders. You can enroll below or, better yet, unlock the entire End-to-End Machine Learning Course Catalog.
Writing the code has been broken out into 28 separate coding exercises. In each one, we discuss the principles involved, list the goals, and then you get turned loose to write the code. To see an example, check out this exercise on backpropagation. You get to work at your own pace and on your own timeline. If you get stuck, there are discussion threads within each lesson so that I can help you get pointed in the right direction. After you’re done, I walk through my solution line by line, describing exactly what I did and why.
By the time you are done, you will have a simple but fully functional neural network framework. You will understand every important concept, including optimization, normalization, backpropagation, and gradient descent.
This sets you up to experiment on your own, to try more exotic architectures, and to better understand what frameworks like PyTorch and TensorFlow are doing behind the scenes.
This course has been more than a year in the making. I hope you enjoy taking it as much as I enjoyed making it. And I hope you get the deep satisfaction that comes from building your own neural network framework from basic building blocks.
"I was extremely pleased with this minicourse. I'd learned the math and everything behind all this in school, but we didn't touch implementations at all. Didn't even play around with any existing libraries. I was hoping to get a better sense of how the pieces tie together and gain some intuition for how to go about building something like this, and I got more than I expected with the approach you took. Very helpful, and very fun to follow along. You got yourself a return customer!"
I love solving puzzles and building things. Machine learning lets me do both. I got started by studying robotics and human rehabilitation at MIT (MS '99, PhD '02), moved on to machine vision and machine learning at Sandia National Laboratories, then to predictive modeling of agriculture DuPont Pioneer, and cloud data science at Microsoft. At Facebook I worked to get internet and electrical power to those in the world who don't have it, using deep learning and satellite imagery and to do a better job identifying topics reliably in unstructured text. Now at iRobot I work to help robots get better and better at doing their jobs. In my spare time I like to rock climb, write robot learning algorithms, and go on walks with my wife and our dog, Reign of Terror.
PreviewHow to get what you want out of the course
StartExercise 1. Create a set of 2x2 pixel toy example images. (4:24)
StartExercise 2. Write training and evaluation set generators. (4:34)
StartExercise 3. Make a runner that loads the data (3:09)