In this chapter, we'll discuss Convolutional Neural Networks (CNNs) and their applications in Computer Vision (CV). CNNs started the modern deep learning revolution. They are at the base of virtually all recent CV advancements, including Generative Adversarial Networks (GANs), object detection, image segmentation, neural style transfer, and much more. For this reason, we believe CNNs deserve an in-depth look that's beyond our basic understanding of them.
To do this, we'll start with a short recap of the CNN building blocks, that is, the convolutional and pooling layers. We'll discuss the various types of convolutions in use today since they are reflected in a large number of CNN applications. We'll also learn how to visualize the internal state of CNNs. Then, we'll focus on regularization techniques and implement...