# Is there any reason behind bias towards max pooling over avg pooling?

Consider the following excerpt taken from the chapter named Using convolutions to generalize from the textbook titled Deep Learning with PyTorch by Eli Stevens et al.

Downsampling could in principle occur in different ways. Scaling an image by half is the equivalent of taking four neighboring pixels as input and producing one pixel as output. How we compute the value of the output based on the values of the input is up to us. We could

• Average the four pixels. This average pooling was a common approach early on but has fallen out of favor somewhat.
• Take the maximum of the four pixels. This approach, called max pooling, is currently the most commonly used approach, but it has a downside of discarding the other three-quarters of the data.
• Perform a strided convolution, where only every $$N$$-th pixel is calculated. A $$3 \times 4$$ convolution with stride 2 still incorporates input from all pixels from the previous layer. The literature shows promise for this approach, but it has not yet supplanted max pooling.

The paragraph is mentioning that the research community is biased towards max-pooling than average pooling. Is there any rational basis for such bias?

I've found out rather a good explanation on Quora.

Max pooling extracts the most salient features - edges, cusps, whatever.

Average pooling operates smoothly - collects features, that are relevant to any part of the image.

Max pooling throws some information, It can be thought as some sense of "forgetting", whereas Average pooling depends on the whole input, despite the output representation is compressed.

There are cases, where each of these operations may not be good for feature extracting (from here):

In th first case Max Pooling will produce simply a white background, and in the second after Average pooling one will get a pale grey strip (although I think, it should be lighter, than depicted).

Probably It would make sense, to mix these two approaches, and pool half of the filters with Max Pooling, and another half with Average Pooling, although, I am not aware of the use of this approach in the literature.

The most flexible and expressive approach is the stridden convolution and the Average pooling, for example, is a particular case of it, but it introduces a certain (although not big) additional cost for storage of new parameters.