Sunday, March 17, 2019

DeepLearning.AI Convolutional Neural Networks Deep Learning Specialization Course (Review)

Andrew Ng is famous for his Stanford machine learning course provided on Coursera.

In 2017, he released a five-part course on deep learning also on Coursera titled “Deep Learning Specialization” that included one module on deep learning for computer vision titled “Convolutional Neural Networks.”

This course provides an excellent introduction to deep learning methods for computer vision applications for those practitioners that are already familiar with the basics of deep learning. It does not focus on too much math and does not include any code. Instead, it is designed to develop intuitions for the main techniques used in the field.

In this post, you will discover a breakdown and review of the convolutional neural networks course taught by Andrew Ng on deep learning for computer vision.

After reading this post, you will know:

  • The course is actually a sub-course in a broader course on deep learning provided by deeplearning.ai.
  • The course is not free, and requires subscription and enrollment on Coursera, although all of the videos are available for free on YouTube.
  • The course provides an excellent introduction to deep learning for computer vision for developers familiar with the basics of deep learning.

Let’s get started.

Overview

This tutorial is divided into five parts; they are:

  1. Deep Learning Specialization Overview
  2. Convolutional Neural Networks Course Breakdown
  3. Course Videos on YouTube
  4. Discussion and Review

Deep Learning Specialization Overview

Andrew Ng is a machine learning researcher famous for making his Stanford machine learning course publicly available and later tailored to general practitioners and made available on Coursera.

He is also the Cofounder of Coursera and formerly Director of Google Brain and Chief Scientist at Baidu.

In 2017, he launched a new website called deeplearning.ai that provides deep learning training for general practitioners (e.g. developers) with courses available via his Coursera platform (that requires a subscription).

The complete course is divided into five sub-courses; they are:

  • Course 1: Neural Networks and Deep Learning
  • Course 2: Improving Deep Neural Networks
  • Course 3: Structuring Machine Learning Projects
  • Course 4: Convolutional Neural Networks (our focus)
  • Course 5: Sequence Models

The courses are in video tutorial format and are presented by Andrew with the same hands-on style as his famous Machine Learning course.

The course is designed for developers who are beginners in the field of deep learning.

Convolutional Neural Networks Course Breakdown

Of note is the deep learning for computer vision sub-course, titled “Convolutional Neural Networks.”

Convolutional Neural Networks - Computer Vision

Convolutional Neural Networks – Computer Vision

This course is designed to teach developers how convolutional neural networks work and how to use them for standard computer vision tasks.

This course will teach you how to build convolutional neural networks and apply it to image data. Thanks to deep learning, computer vision is working far better than just two years ago, and this is enabling numerous exciting applications ranging from safe autonomous driving, to accurate face recognition, to automatic reading of radiology images.

About this Course, Coursera.

It is divided into four weeks; they are:

  • Week 1: Foundations of Convolutional Neural Networks
  • Week 2: Deep convolutional models: case studies
  • Week 3: Object detection
  • Week 4: Special applications: Face recognition & Neural style transfer

Each week is divided into 10-to-12 topics, each covered in a short video lasting a few minutes to no more than about 15 minutes.

Most topics are presented in a practical manner with very little math. What little math that is included is focused on topics such as calculating loss functions or calculating the number of parameters (weights) in the model.

In addition to the lack of math, the course also does not present code, and instead focuses on helping the viewer develop an intuition for the techniques discussed.

Week 1. The first week is dedicated to introducing the main type of neural network used for computer vision problems: the convolutional neural network or CNN. Topics focus on how convolutional layers work, filters, padding, strides, as well as the related pooling layer.

Week 2. The second week focuses on important milestones in developing effective CNN models, such as LeNet for digit recognition and a suite of models developed for ImageNet, such as AlexNet, ResNet, and Inception. As each milestone is discussed, the innovation of the model design is described in a way that explains why the model is effective and how the technique can be used more generally. The week ends with data preparation, including data augmentation and transfer learning.

Week 3. The third week focuses on object detection, introducing the simpler problems of image classification, image localization, and landmark detection. These are the ‘killer-apps‘ of deep learning for computer vision and the important sub-techniques of the YOLO method are introduced step-by-step and built up into a complete working system.

Week 4. Finally, the last week ends with face detection and recognition, building up the techniques required for such a system, including one shot learning, siamese networks, and a suitable loss function. The week is divided into two parts and the second part focuses on neural style transfer, a technique that although is purely aesthetic, is a lot of fun.

Course Videos on YouTube

The complete breakdown of the course topics is provided below.

  • Week 1: Foundations of Convolutional Neural Networks
    • Computer Vision
    • Edge Detection Example
    • More Edge Detection
    • Padding
    • Strided Convolutions
    • Convolutions Over Volume
    • One Layer of a Convolutional Network
    • Simple Convolutional Network Example
    • Pooling Layers
    • CNN Example
    • Why Convolutions?
    • Yann LeCun Interview
  • Week 2: Deep convolutional models: case studies
    • Why look at case studies?
    • Classic Networks
    • ResNets
    • Why ResNets Work
    • Networks in Networks and 1×1 Convolutions
    • Inception Network Motivation
    • Inception Network
    • Using Open-Source Implementation
    • Transfer Learning
    • Data Augmentation
    • State of Computer Vision
  • Week 3: Object detection
    • Object Localization
    • Landmark Detection
    • Object Detection
    • Convolutional Implementation of Sliding Windows
    • Bounding Box Predictions
    • Intersection Over Union
    • Non-max Suppression
    • Anchor Boxes
    • YOLO Algorithm
    • (Optional) Region Proposals
  • Week 4: Special applications: Face recognition & Neural style transfer
    • What is face recognition?
    • One Shot Learning
    • Siamese Network
    • Triplet Loss
    • Face Verification and Binary Classification
    • What is neural style transfer?
    • What are deep ConvNets learning?
    • Cost Function
    • Content Cost Function
    • Style Cost Function
    • 1D and 3D Generalizations

Kindly, the videos for this course have also been made available via YouTube.

Convolutional Neural Networks Taught by Andrew Ng

Convolutional Neural Networks Taught by Andrew Ng

A YouTube playlist of the course is also available, although some of the videos for Week 3 are out of order:

The videos have a naming convention of C4WnLnn, where Wn refers to the week number (1-4) and Lnn refers to the lecture number (e.g. 01 to 12). Take note of the order of the videos in Week 3; you may need to jump around in the playlist manually.

Two videos are missing from the playlist; they are:

Note that Week 1 includes a video interview with Yann LeCun, the inventor of Convolutional Neural Networks. This is part of a video series titled “Heroes of Deep Learning Interviews” that is also available on YouTube.

You can easily watch all of the videos in a few hours.

Discussion and Review

I watched all of the videos via YouTube (on double speed) and took extensive notes.

It’s a great course and I think it does an excellent job of developing intuitions for the topics covered, including CNNs, milestone models, object detection, face recognition, and style transfer.

The introduction to convolutional layers and related topics of padding, stride, etc, is perhaps one of the cleanest presentations I have seen. I also found Week 2 and Week 3 on milestone CNN models and object detection very clear. Week 4 was fine, starting well, but got very messy as we dove into neural style transfer.

If you are already familiar with the basics of CNNs, as many deep learning practitioners are, then I would recommend focusing on Week 3 and Week 4. Week 3 is especially great, diving into the elements of the killer-app of object detection and the challenging YOLO method to address it.

YOLO is an important topic to cover, but it might have been simplified if the focus was on a simpler (easier to implement method) such as Fast or Faster R-CNN.

I found myself watching almost every minute of the course, skipping only over some of the messy mathematical descriptions. In fact, diving into explanations of loss functions was perhaps the least interesting and perhaps not-required parts of the course.

I have never found video an effective medium for teaching math. It needs to be taken slowly, with clear (LaTeX) equations, explanation, and working code.

If you are new to deep learning for computer vision but are familiar with the basics of deep learning, then I recommend the course, specifically watching the videos. You can easily complete them in one or two sittings.

Further Reading

This section provides more resources on the topic if you are looking to go deeper.

Summary

In this post, you discovered a breakdown and review of the convolutional neural networks course taught by Andrew Ng on deep learning for computer vision.

Specifically, you learned:

  • The course is actually a sub-course in a broader course on deep learning provided by deeplearning.ai.
  • The course is not free, and requires subscription and enrollment on Coursera, although all of the videos are available for free on YouTube.
  • The course provides an excellent introduction to deep learning for computer vision for developers familiar with the basics of deep learning.

Do you have any questions?
Ask your questions in the comments below and I will do my best to answer.

The post DeepLearning.AI Convolutional Neural Networks Deep Learning Specialization Course (Review) appeared first on Machine Learning Mastery.


Machine Learning Mastery published first on Machine Learning Mastery

No comments:

Post a Comment