Introduction to CNNs
CNNs are commonly used in image processing and have been the winning models in several image-processing competitions. They are often used, for example, for image classification, object detection, and semantic segmentation.
Sometimes, CNNs are also used for non-image-related tasks, such as recommendation systems, videos, or time-series analysis. Indeed, CNNs are not only applied to two-dimensional data with a grid structure but can also work when applied to one- or three-dimensional data. In this chapter, however, we focus on the most common CNN application area: image processing.
A CNN is a neural network with at least one convolution layer. As the name states, convolution layers perform a convolution mathematical transformation on the input data. Through such a mathematical transformation, convolution layers acquire the ability to detect and extract a number of features from an image, such as edges, corners, and shapes. Combinations of such extracted features...