Importance of pooling layer in CNN

I recently came across a bunch of question regarding pooling in CNN.

  1. Will removing the max pooling layer from the CNN architecture effect the accuracy?
  2. Is pooling necessary for convolutional neural network?
  3. What will happen if we remove pooling layers from the General CNN architecture?
  4. Does removing pooling layers from CNN will improve results? 

There are many other similar questions like these and this article will answers all those questions.


Photo by Thomas Tucker on Unsplash


So, firstly if you don't know what pooling is then you can go through this article, it will help you in understanding pooling deeply. And if you just want to know the answers to the above questions then continue with this article.

So, we know that pooling helps in reducing the dimension. But why we want to reduce the dimension?

The answer is to reduce the computational power required to train the model. If we don't reduce the dimension then our model will take very long or most probably our machine will fail to train the model.

Now, let's assume that you got lot of money to spend on getting all GPU TPU to fulfill the computational power required to train your model without reducing the dimensions. So, now will it improve your results? The answer is no. In fact it will worsen your results, Why? Because if you will use complete image without reducing dimension It will capture everything present in the image. For example take the below image of a cat. Now if you to train a model without pooling layer. The model will train on the complete image and it will capture everything which is present in the image along with the cat or in other words your model will also train on unnecessary features which have very little to no use which will result in a noisy model.

Pooling helps you to deal with this problem. It extracts the high level features present in the image and leave all the unnecessary information. This not only helps the model to capture high level features but it also helps in reducing the time taken to train the model as model will not train on the unnecessary features.

So the role of pooling layer in CNN is very important.

  • Pooling makes our model to train only on high level features.
  • Pooling helps CNN model to train faster and reduce training time.
  • Pooling helps in reducing the cost to train the model as it reduces the computational power required to train the model.
I hope you got all your answers. If you still have any question or confusion you are free to drop a comment. 
Watch this video for understanding pooling deeply.