chapter fifteen

15 Building a real-world CNN: VGG-Face and VGG-Face Lite

 

This chapter covers

  • Selecting and applying techniques to augment data for training a convolution neural network
  • Tuning a convolution neural network using dropout and batch normalization and evaluating performance
  • Building an accurate convolution neural network for object recognition using CIFAR-10 and facial identification

Convolutional neural network (CNN) architectures are useful tools for analyzing images and for differentiating their features. It could be lines or curves that signify your favorite automobile, or a particular higher-level feature like a green coloring present in most frog pictures. It could also be more complex indicators like a freckle near your left nostril, or the curvature near your chin passed down through generations of your family.

Humans have become adept through the years at picking out these identifying features and it’s fine to wonder why. As it turns out, what humans have grown accustomed to is looking at many millions and billions of example images shown to them since birth, and then receiving feedback about what they are seeing in those images. Remember your mom repeating the word ball while holding up a ball to you? Maybe not the very first time, but there’s a good chance you remember some time she said it. Then, what about the time you saw another ball, slightly different shape or color and asked, “Ball?”

15.1        Making a real-world CNN architecture for CIFAR-10

15.1.1                  Loading and preparing the CIFAR-10 image data

15.1.2                  Data augmentation

15.2        Building a deeper CNN architecture for CIFAR-10

15.2.1                  CNN optimizations for increasing learned parameter resilience

15.3        Training and applying a better CIFAR-10 CNN

15.4        Testing and evaluating your CNN for CIFAR-10

15.4.1                  CIFAR-10 accuracy results and ROC curves

15.4.2                  Evaluating the softmax predictions per class

15.5        Building VGG-Face for Facial Recognition

15.5.1                  Picking a subset of VGG-Face for training VGG-Face Lite

15.5.2                  TensorFlow’s Dataset API and data augmentation

15.5.3                  Creating a TensorFlow Dataset

15.5.4                  Training using TensorFlow datasets

15.5.5                  VGG Face lite model and training

15.5.6                  Training and evaluating VGG Face lite

15.5.7                  Evaluating and predicting with VGG Face lite

15.6        Summary