Foundation of Convolutional Neural Networks

Objectives

  • Learning Objectives
  • Explain the convolution operation
  • Apply two different types of pooling operations
  • Identify the components used in a convolutional neural network (padding, stride, filter, ...) and their purpose
  • Build a convolutional neural network
  • Implement convolutional and pooling layers in numpy, including forward propagation
  • Implement helper functions to use when implementing a TensorFlow model
  • Create a mood classifer using the TF Keras Sequential API
  • Build a ConvNet to identify sign language digits using the TF Keras Functional API
  • Build and train a ConvNet in TensorFlow for a binary classification problem
  • Build and train a ConvNet in TensorFlow for a multiclass classification problem
  • Explain different use cases for the Sequential and Functional APIs

Deep Convolutional Case Studies

Objectives

  • Implement the basic building blocks of ResNets in a deep neural network using Keras
  • Train a state-of-the-art neural network for image classification
  • Implement a skip connection in your network
  • Create a dataset from a directory
  • Preprocess and augment data using the Keras Sequential API
  • Adapt a pretrained model to new data and train a classifier using the Functional API and MobileNet
  • Fine-tine a classifier's final layers to improve accuracy

Object Detection

Objectives

  • Identify the components used for object detection (landmark, anchor, bounding box, grid, ...) and their purpose
  • Implement object detection
  • Implement non-max suppression to increase accuracy
  • Implement intersection over union
  • Handle bounding boxes, a type of image annotation popular in deep learning
  • Apply sparse categorical crossentropy for pixelwise prediction
  • Implement semantic image segmentation on the CARLA self-driving car dataset
  • Explain the difference between a regular CNN and a U-net
  • Build a U-Net

Special Applications: Face Recognition and Neural Style Transfer

Objectives

  • Differentiate between face recognition and face verification
  • Implement one-shot learning to solve a face recognition problem
  • Apply the triplet loss function to learn a network's parameters in the context of face recognition
  • Explain how to pose face recognition as a binary classification problem
  • Map face images into 128-dimensional encodings using a pretrained model
  • Perform face verification and face recognition with these encodings
  • Implement the Neural Style Transfer algorithm
  • Generate novel artistic images using Neural Style Transfer
  • Define the style cost function for Neural Style Transfer
  • Define the content cost function for Neural Style Transfer