A problem that arises from using fully connected, feed-forward neural networks in real-life applications is that the inputs of the problems we are trying to solve, for example images, are very large. If we just consider a simple image, 100 x 100 pixels in size, we will have 10,000 weights for each neuron in the first hidden layer alone. It's easy to see how this can rapidly become a huge problem.
CNN is a network architecture that uses some of the properties of the input data to reduce the amount of connections needed to connect different network layers. In particular, CNN relies on the input data having strong spatial correlation, meaning that correlated features will be close together and noncorrelated features further apart. This property is typical of images, where usually your task is to identify and classify subcomponents of a broader image. An...