About this course

This is a very different kind of course, taught in a very different way. We have spent as much time studying the research into effective education techniques as we have studying the research into deep learning—one of the biggest differences that you'll see as a result is that we teach "top down" rather than "bottom up". For instance, you'll learn how to use deep learning to solve your problems in week 1, but will only start to learn why it works in week 2! And you'll spend a lot more time learning how to write effective code and use effective processes than you will on learning mathematical formalisms. For full details on the teaching approach, please see our article A unique path to deep learning expertise. And for more information about some of the great education researchers that have inspired and taught us, read our article Providing a Good Education in Deep Learning.

In this course we don't just show how to create "OK" models. We show how to create state of the art models, and we use transparent benchmarks to do so. Wherever possible, we benchmark our models against the top performers in Kaggle competitions. So you'll find that we're using Kaggle datasets a lot. As well as the important point that this gives the best possible benchmark (Kaggle competitions always results in accuracy far beyond academic best papers), it also means we're using well studied datasets where we can learn from the many blog and forum posts around the internet looking at them from every angle. And perhaps most importantly, it enforces that we use rigorous machine learning practices, of having well-defined training, validation, and test sets. Practicing on Kaggle competitions is great experience for creating and running effective machine learning processes in your own organization.

We assume that everyone taking this course has at least one year of coding experience. The course uses python as the teaching language, so if you don't already know python then we assume that you'll spend the time to learn—for an experienced coder you should find that python is quite an easy language to learn.

You will learn how to:

Set up your own GPU server in the cloud

Use the fastai and Pytorch libraries in python to train and run deep learning models

Build, debug, and visualize a state of the art convolutional neural network (CNN) for recognizing images

Build state of the art recommendation systems using neural-network based collaborative filtering

Build state of the art time series and structured data models using categorical embeddings

Get great results even from small datasets, by using transfer learning

Understand the components of a neural network, including activation functions, dense and convolutional layers, and optimizers

Recognize and deal with over-fitting, by using data augmentation, dropout, batch normalization, and similar techniques

So, are you ready to get started on your deep learning journey? Remember: you'll need to set aside around 10 hours per week for the next 7 weeks to tackle this material effectively. Make a commitment to yourself now to put in the time, in order to get the results you want