Data Science: Deep Learning in Python
What you will learn

Learn how Deep Learning REALLY works (not just some diagrams and magical black box code)

Learn how a neural network is built from basic building blocks (the neuron)

Code a neural network from scratch in Python and numpy

Code a neural network using Google's TensorFlow

Describe different types of neural networks and the different types of problems they are used for

Derive the backpropagation rule from first principles

Create a neural network with an output that has K > 2 classes using softmax

Describe the various terms related to neural networks, such as "activation", "backpropagation" and "feedforward"

Install TensorFlow
Curriculum
Section 1: Welcome
Section 2: Review
Section 3: Preliminaries: From Neurons to Neural Networks
Section 4: Classifying more than 2 things at a time
Section 5: Training a neural network
Section 6: Practical Machine Learning
Section 7: TensorFlow, exercises, practice, and what to learn next
Section 8: Project: Facial Expression Recognition
Section 9: Backpropagation Supplementary Lectures
Section 10: Appendix
Course Description
The MOST indepth look at neural network theory, and how to code one with pure Python and Tensorflow
Requirements
 How to take partial derivatives and loglikelihoods (ex. finding the maximum likelihood estimations for a die)
 Install Numpy and Python (approx. latest version of Numpy as of Jan 2016)
 Don't worry about installing TensorFlow, we will do that in the lectures.
 Being familiar with the content of my logistic regression course (crossentropy cost, gradient descent, neurons, XOR, donut) will give you the proper context for this course
Description
This course will get you started in building your FIRST artificial neural network using deep learningtechniques. Following my previous course on logistic regression, we take this basic building block, and build fullon nonlinear neural networks right out of the gate using Python and Numpy. All the materials for this course are FREE.
We extend the previous binary classification model to multiple classes using the softmax function, and we derive the very important training method called "backpropagation" using first principles. I show you how to code backpropagation in Numpy, first "the slow way", and then "the fast way" using Numpy features.
Next, we implement a neural network using Google's new TensorFlow library.
You should take this course if you are interested in starting your journey toward becoming a master at deep learning, or if you are interested in machine learning and data science in general. We go beyond basic models like logistic regression and linear regression and I show you something that automatically learns features.
This course provides you with many practical examples so that you can really see how deep learning can be used on anything. Throughout the course, we'll do a course project, which will show you how to predict user actions on a website given user data like whether or not that user is on a mobile device, the number of products they viewed, how long they stayed on your site, whether or not they are a returning visitor, and what time of day they visited.
Another project at the end of the course shows you how you can use deep learning for facial expression recognition. Imagine being able to predict someone's emotions just based on a picture!
After getting your feet wet with the fundamentals, I provide a brief overview of some of the newest developments in neural networks  slightly modified architectures and what they are used for.
NOTE:
If you already know about softmax and backpropagation, and you want to skip over the theory and speed things up using more advanced techniques along with GPUoptimization, check out my followup course on this topic, Data Science: Practical Deep Learning Concepts in Theano and TensorFlow.
I have other courses that cover more advanced topics, such as Convolutional Neural Networks, Restricted Boltzmann Machines, Autoencoders, and more! But you want to be very comfortable with the material in this course before moving on to more advanced subjects.
This course focuses on "how to build and understand", not just "how to use". Anyone can learn to use an API in 15 minutes after reading some documentation. It's not about "remembering facts", it's about "seeing for yourself" via experimentation. It will teach you how to visualize what's happening in the model internally. If you want more than just a superficial look at machine learning models, this course is for you.
HARD PREREQUISITES / KNOWLEDGE YOU ARE ASSUMED TO HAVE:

calculus

linear algebra

probability

Python coding: if/else, loops, lists, dicts, sets

Numpy coding: matrix and vector operations, loading a CSV file
TIPS (for getting through the course):

Watch it at 2x.

Take handwritten notes. This will drastically increase your ability to retain the information.

Write down the equations. If you don't, I guarantee it will just look like gibberish.

Ask lots of questions on the discussion board. The more the better!

Realize that most exercises will take you days or weeks to complete.

Write code yourself, don't just sit there and look at my code.
WHAT ORDER SHOULD I TAKE YOUR COURSES IN?:

Check out the lecture "What order should I take your courses in?" (available in the Appendix of any of my courses, including the free Numpy course)
Who this course is for:
 Students interested in machine learning  you'll get all the tidbits you need to do well in a neural networks course
 Professionals who want to use neural networks in their machine learning and data science pipeline. Be able to apply more powerful models, and know its drawbacks.
 People who already know how to take partial derivatives and loglikelihoods. Since we cover this in more detail in my logistic regression class, it is not covered quite as thoroughly here.
 People who already know how to code in Python and Numpy. You will need some familiarity because we go through it quite fast. Don't worry, it's not that hard.