This course will take a practical approach to learning deep learning. We'll cover the basics of why things are happening (like the mathematical foundations of neural networks) and we'll apply deep learning models to real data. We'll then analyze the results and demonstrate how to tune deep learning systems to particular problem types.

After finishing this course you should know how to build and train and test simple neural networks. We'll build a couple of neural networks in the course today, in a beautiful library called PyTorch. In fact, the library is full of goodies which you should play with at home after this course!

To take this course, you'll need an understanding of Python at an intermediate level; we'll use class-based references and rely heavily on external methods. It'll help to have seen the very basics of linear algebra before, since we will be covering the background of neural networks. Some familiarity with machine learning techniques is assumed.

- Data scientists
- Data engineers
- Database specialists
- Software developers
- Scientists and researchers

- Tensors - what are they?
- Gradients - how do gradients play a role in the world of deep learning?
- Optimization - how to use tensors and gradients to find function extrema.
- Neural networks (regression) - we'll train a neural network to approximate a continuous, differentiable function.
- Neural networks (classification) - we'll discuss how to train a neural network to bucket customers into various customer cohorts based on their product interests and demographic information. We'll set up the code and hand it off to you for training on a GPU at home.
- Deep Matrix Factorization - We'll briefly cover how we used PyTorch to build the training data we work on in this course.