Convolutional Neural Network is a type of neural network that uses an image’s spatial local patterns as features instead of raw pixels. It applies a pattern of weights, called a Kernel, to the pixels of the image to transform the input. The Kernel is then replicated across multiple units in a layer, in a process called Convolution.

This mitigates two problems when using images with traditional Feedforward Neural Networkss, since in these:

  • each pixel behaves as a feature, so the number of weight parameters is quickly enormous. If a picture has pixels and each input layer is connected to units in the first hidden layer, then we already have weight parameter weights
  • the adjacency or locality of pixels is of no importance. The pixels could be scrambled and it would not affect how the model makes predictions at all since each pixel is just a feature by itself with no connection to the neighbouring pixels.

As information propagates through the network the portion of the image that can affect a neuron’s activation, called the receptive field, is increased in deeper layers of the network as seen below: A method to reduce the computational complexity and control overfitting is to reduce the dimensions of the feature maps, known as downsampling, which can be done by using a technique known as Pooling.