0
$\begingroup$

I know that Pooling layers reduce the size of the image and so the number of parameters required, but why do we need to reduce the size of images, when it makes the image more unclear.

This is a truck:

enter image description here

This is a truck after going through a Max Pooling layer with pool size of (2, 2):

enter image description here

As you can see, the pooling layer just made it unclear, making it more difficult for the network to identify the image. I agree, that it reduced the size of the image but it also made it unclear.

And also, some networks have more than 1 Max Pooling layers, it would then make the image extremely unclear.

This is a truck after going through 2 Max Pooling layers:

enter image description here

This time the image is extremely unclear, making it super difficult for the network to identify it.

But this was just 2 Max Pooling layers, some networks have more than 2.

So, Why do we need Max Pooling layers if it makes the image very unclear?

$\endgroup$
6
  • 1
    $\begingroup$ Your example is not good because pooling is never applied directly to the input image, but to feature maps. $\endgroup$
    – Dr. Snoopy
    Sep 7, 2020 at 8:53
  • $\begingroup$ @Dr.Snoopy Yeah, but then the feature map will also become very unclear $\endgroup$ Sep 7, 2020 at 10:41
  • 1
    $\begingroup$ That does not matter, feature maps are not meant to be interpretable by humans $\endgroup$
    – Dr. Snoopy
    Sep 9, 2020 at 16:12
  • $\begingroup$ Yes, but the feature maps will get very unclear and blurry by pooling layer, so it would again become very difficult again for the model to identify the image. $\endgroup$ Sep 10, 2020 at 3:13
  • $\begingroup$ No, that is not true, pooling actually works, too much pooling will surely hurt, but in the right amount it improves CNN performance. It has nothing to do with feature maps being "unclear and blurry". $\endgroup$
    – Dr. Snoopy
    Sep 10, 2020 at 3:27

2 Answers 2

2
$\begingroup$

In CNN the output feature maps are sensitive to the location of features in the input. If the input image is translated the output feature map will also be affected by the translation, so that small movements in the position of the feature in the input image will result in a different feature map. One way to adress this sensitivity problem is using pooling layers, because of their down sampling ability. Pooling layers create a lower resolution version of the input that still contains the large or important structural elements, without the fine details which may be not usefull for the task.

So the max pooling layer makes the image unclear for the human eye by sampling it down to a lower resolution, but for the machine learning model it mostly removes not relevant elements and makes it more robust to changes in the input (like rotation, shifting, translation etc.)

$\endgroup$
1
  • $\begingroup$ Thank you, but how does Max Pooling make the image more robust to changes? $\endgroup$ Sep 7, 2020 at 10:47
0
$\begingroup$

The result of using a pooling layer and creating down sampled or pooled feature maps is a summarized version of the features detected in the input. They are useful as small changes in the location of the feature in the input detected by the convolutional layer will result in a pooled feature map with the feature in the same location. This capability added by pooling is called the model’s invariance to local translation

$\endgroup$
1
  • $\begingroup$ Why not just global pooling after the final conv layer to achieve translation invariance? $\endgroup$
    – ado sar
    Jul 15, 2023 at 23:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.