Data Science: Deep Learning in Python

A guide for writing your own neural network in Python and Numpy, and how to do it in Google's TensorFlow.
4.6 (612 ratings) Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
5,087 students enrolled
$19
$120
84% off
Take This Course
  • Lectures 39
  • Length 4 hours
  • Skill Level Intermediate Level
  • Languages English
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works

Discover

Find online courses made by experts from around the world.

Learn

Take your courses with you and learn anywhere, anytime.

Master

Learn and practice real-world skills and achieve your goals.

About This Course

Published 1/2016 English

Course Description

This course will get you started in building your FIRST artificial neural network using deep learning techniques. Following my previous course on logistic regression, we take this basic building block, and build full-on non-linear 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 GPU-optimization, check out my follow-up 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 NetworksRestricted Boltzmann MachinesAutoencoders, 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.


All the code for this course can be downloaded from my github: /lazyprogrammer/machine_learning_examples

In the directory: ann_class

Make sure you always "git pull" so you have the latest version!


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.
  • Ask lots of questions on the discussion board. The more the better!
  • Realize that most exercises will take you days or weeks to complete.


USEFUL COURSE ORDERING:

  • (The Numpy Stack in Python)
  • Linear Regression in Python
  • Logistic Regression in Python
  • (Supervised Machine Learning in Python)
  • Deep Learning in Python
  • Practical Deep Learning in Theano and TensorFlow
  • Convolutional Neural Networks in Python
  • (Easy NLP)
  • (Cluster Analysis and Unsupervised Machine Learning)
  • Unsupervised Deep Learning
  • (Hidden Markov Models)
  • Recurrent Neural Networks in Python
  • Natural Language Processing with Deep Learning in Python


What are the requirements?

  • How to take partial derivatives and log-likelihoods (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 (cross-entropy cost, gradient descent, neurons, XOR, donut) will give you the proper context for this course

What am I going to get from this course?

  • Code a neural network from scratch in Python and numpy
  • Code a neural network using Google's TensorFlow
  • Describe the various terms related to neural networks, such as "activation", "backpropagation" and "feedforward"
  • 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
  • Install TensorFlow

What is the target audience?

  • 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 log-likelihoods. 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.

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.

Curriculum

Section 1: What is a neural network?
03:45

Overview of the course and prerequisites.

04:20

An almost purely qualitative description of neural networks.

Where does this course fit into your deep learning studies?
Preview
04:57
Deep Learning Readiness Test
05:33
Introduction to the E-Commerce Course Project
08:52
Section 2: Classifying more than 2 things at a time
From Logistic Regression to Neural Networks
05:12
02:54

What's the function we use to classify more than 2 things?

Sigmoid vs. Softmax
01:30
Where to get the code for this course
01:30
03:39

How do we code the softmax in Python?

06:23

Let's extend softmax and code the entire calculation from input to output.

E-Commerce Course Project: Pre-Processing the Data
05:24
E-Commerce Course Project: Making Predictions
03:55
1 question

What do you get if you don't use a non-linearity such as sigmoid, tanh, rectifier, or softmax?

1 question

test

Section 3: Training a neural network
What does it mean to "train" a neural network?
06:15
11:50

Derivation of backpropagation from first principles. Defining the objective function, taking the log, and differentiating the log with respect to weights in each layer.

04:47

A further look into backpropagation.

04:37

Backpropagation for deeper networks, exposing the structure, and how to code it more efficiently.

17:07

How to code bacpropagation in Python using numpy operations vs. slow for loops.

The WRONG Way to Learn Backpropagation
03:52
E-Commerce Course Project: Training Logistic Regression with Softmax
08:11
E-Commerce Course Project: Training a Neural Network
06:19
Backpropagation for binary output
1 question
Section 4: Practical Machine Learning
01:06

What are the donut and XOR problems again?

04:21

We look again at the XOR and donut problem from logistic regression. The features are now learned automatically.

Try the Donut and XOR yourself
1 question
01:26

sigmoid, tanh, relu along with their derivatives

04:10

Tips on choosing learning rate, regularization penalty, number of hidden units, and number of hidden layers.

Manually Choosing Learning Rate and Regularization Penalty
04:08
Section 5: TensorFlow, exercises, practice, and what to learn next
07:31

A look at Google's new TensorFlow library.

Visualizing what a neural network has learned using TensorFlow Playground
11:35
03:41
What did you learn? What didn't you learn? Where can you learn more?
You know more than you think you know
04:52
How to get good at deep learning + exercises
05:07
Section 6: Project: Facial Expression Recognition
Facial Expression Recognition Problem Description
12:21
The class imbalance problem
06:01
Utilities walkthrough
05:45
Facial Expression Recognition in Code (Binary / Sigmoid)
12:13
Facial Expression Recognition in Code (Logistic Regression Softmax)
08:57
Facial Expression Recognition in Code (ANN Softmax)
10:44
Section 7: Appendix
How to install Numpy, Scipy, Matplotlib, Pandas, IPython, Theano, and TensorFlow
17:22
Gradient Descent Tutorial
04:30

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Lazy Programmer Inc., Data scientist and big data engineer

I am a data scientist, big data engineer, and full stack software engineer.

For my masters thesis I worked on brain-computer interfaces using machine learning. These assist non-verbal and non-mobile persons communicate with their family and caregivers.

I have worked in online advertising and digital media as both a data scientist and big data engineer, and built various high-throughput web services around said data. I've created new big data pipelines using Hadoop/Pig/MapReduce. I've created machine learning models to predict click-through rate, news feed recommender systems using linear regression, Bayesian Bandits, and collaborative filtering and validated the results using A/B testing.

I have taught undergraduate and graduate students in data science, statistics, machine learning, algorithms, calculus, computer graphics, and physics for students attending universities such as Columbia University, NYU, Humber College, and The New School. 

Multiple businesses have benefitted from my web programming expertise. I do all the backend (server), frontend (HTML/JS/CSS), and operations/deployment work. Some of the technologies I've used are: Python, Ruby/Rails, PHP, Bootstrap, jQuery (Javascript), Backbone, and Angular. For storage/databases I've used MySQL, Postgres, Redis, MongoDB, and more.

Ready to start learning?
Take This Course