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

 

This chapter covers

  • Augmenting data for training a convolution neural network (CNN)
  • Tuning a CNN by using dropout and batch normalization and evaluating performance
  • Building an accurate CNN for object recognition with CIFAR-10 and facial identification

Convolutional neural network (CNN) architectures are useful tools for analyzing images and for differentiating their features. Lines or curves may indicate your favorite automobile, or the indicator might be a particular higher-level feature, such as the green coloring present in most frog pictures. More complex indicators might be a freckle near your left nostril or the curvature of 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. Humans have grown accustomed to looking at 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 showing you a ball? There’s a good chance that you remember some time she said it. What about the time you saw another ball of a slightly different shape or color and said, “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 Performing 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

Summary