Chapter 9: Convolutional Neural Networks for Image Classification
In the previous chapters, we talked about Recurrent Neural Networks (RNNs) and how they can be applied to different types of sequential data and use cases. In this chapter, we want to talk about another family of neural networks, called Convolutional Neural Networks (CNNs). CNNs are especially powerful when used on data with grid-like topology and spatial dependencies, such as images or videos.
We will start with a general introduction to CNNs, explaining the basic idea behind a convolution layer and introducing some related terminology such as padding, pooling, filters, and stride.
Afterward, we will build and train a CNN for image classification from scratch. We will cover all required steps: from reading and preprocessing of the images to defining, training, and applying the CNN.
To train a neural network from scratch, a huge amount of labeled data is usually required. For some specific domains, such as...