This chapter focuses on CNNs and their building blocks. In this chapter, we will provide recipes regarding techniques and optimizations used in CNNs. A convolutional neural network, also known as ConvNet, is a specific type of feed-forward neural network where the network has one or multiple layers. The convolutional layers can be complemented with fully connected layers. If the network only contains layers, we name the network architecture a fully convolutional network (FCN). Convolutional networks and computer vision are inseparable in deep learning. However, CNNs can be used in other applications, such as in a wide variety of NLP problems, as we will introduce in this chapter.
Let's introduce the most part of convolutional networks: convolutional layers. In a layer, we have blocks that convolve over the input data (like a sliding window). This technique shares parameters for each block in such a way that it can detect a...