Deep Learning: Convolutional Neural Networks in Python

Computer Vision and Data Science and Machine Learning combined! In Theano and TensorFlow
4.8 (127 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.
2,322 students enrolled
$19
$120
84% off
Take This Course
  • Lectures 25
  • Length 3 hours
  • Skill Level Expert 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 4/2016 English

Course Description

This is the 3rd part in my Data Science and Machine Learning series on Deep Learning in Python. At this point, you already know a lot about neural networks and deep learning, including not just the basics like backpropagation, but how to improve it using modern techniques like momentum and adaptive learning rates. You've already written deep neural networks in Theano and TensorFlow, and you know how to run code using the GPU.

This course is all about how to use deep learning for computer vision using convolutional neural networks. These are the state of the art when it comes to image classification and they beat vanilla deep networks at tasks like MNIST.

In this course we are going to up the ante and look at the StreetView House Number (SVHN) dataset - which uses larger color images at various angles - so things are going to get tougher both computationally and in terms of the difficulty of the classification task. But we will show that convolutional neural networks, or CNNs, are capable of handling the challenge!

Because convolution is such a central part of this type of neural network, we are going to go in-depth on this topic. It has more applications than you might imagine, such as modeling artificial organs like the pancreas and the heart. I'm going to show you how to build convolutional filters that can be applied to audio, like the echo effect, and I'm going to show you how to build filters for image effects, like the Gaussian blur and edge detection.

We will also do some biology and talk about how convolutional neural networks have been inspired by the animal visual cortex.

After describing the architecture of a convolutional neural network, we will jump straight into code, and I will show you how to extend the deep neural networks we built last time (in part 2) with just a few new functions to turn them into CNNs. We will then test their performance and show how convolutional neural networks written in both Theano and TensorFlow can outperform the accuracy of a plain neural network on the StreetView House Number dataset.

All the materials for this course are FREE. You can download and install Python, Numpy, Scipy, Theano, and TensorFlow with simple commands shown in previous courses.

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.


NOTES:

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

In the directory: cnn_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
  • Can write a feedforward neural network in Theano and TensorFlow


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?

  • Install Python, Numpy, Scipy, Matplotlib, Scikit Learn, Theano, and TensorFlow
  • Learn about backpropagation from Deep Learning in Python part 1
  • Learn about Theano and TensorFlow implementations of Neural Networks from Deep Learning part 2

What am I going to get from this course?

  • Understand convolution
  • Understand how convolution can be applied to audio effects
  • Understand how convolution can be applied to image effects
  • Implement Gaussian blur and edge detection in code
  • Implement a simple echo effect in code
  • Understand how convolution helps image classification
  • Understand and explain the architecture of a convolutional neural network (CNN)
  • Implement a convolutional neural network in Theano
  • Implement a convolutional neural network in TensorFlow

What is the target audience?

  • Students and professional computer scientists
  • Software engineers
  • Data scientists who work on computer vision tasks
  • Those who want to apply deep learning to images
  • Those who want to expand their knowledge of deep learning past vanilla deep networks
  • People who don't know what backpropagation is or how it works should not take this course, but instead, take parts 1 and 2.
  • People who are not comfortable with Theano and TensorFlow basics should take part 2 before taking this course.

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: Outline and Review
Introduction and Outline
Preview
01:50
Review of Important Concepts
03:41
Where to get the code and data for this course
02:52
How to load the SVHN data and benchmark a vanilla deep network
05:03
Section 2: Convolution
What is convolution?
Preview
05:18
Convolution example with audio: Echo
06:39
Convolution example with images: Gaussian Blur
05:32
Convolution example with images: Edge Detection
Preview
03:21
Write Convolution Yourself
09:14
Section 3: Convolutional Neural Network Description
Architecture of a CNN
05:08
Relationship to Biology
02:18
Convolution and Pooling Gradients
02:39
LeNet - How the Shapes Go Together
12:51
Section 4: Convolutional Neural Network in Theano
Theano - Building the CNN components
04:19
Theano - Full CNN and Test on SVHN
17:26
Visualizing the Learned Filters
03:35
Section 5: Convolutional Neural Network in TensorFlow
TensorFlow - Building the CNN components
03:39
TensorFlow - Full CNN and Test on SVHN
10:41
Section 6: Practical Tips
Practical Image Processing Tips
03:07
Section 7: Project: Facial Expression Recognition
Facial Expression Recognition Problem Description
12:21
The class imbalance problem
06:01
Utilities walkthrough
05:45
Convolutional Net in Theano
21:03
Convolutional Net in TensorFlow
19:03
Section 8: Appendix
How to install Numpy, Scipy, Matplotlib, Pandas, IPython, Theano, and TensorFlow
17:22

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