Convolutional Neural Networks

average pooling

Average pooling summarizes each window by its mean instead of its maximum. Where max pooling asks 'what was the single strongest response here?', average pooling asks 'what was the typical response across this region?'. It blends every value in the window, so a feature that is broadly present produces a high average even if no single pixel spikes, while isolated noise spikes get diluted. The result is a smoother, lower-contrast downsampling.

Precisely, for a window over a set R of n positions, average pooling outputs (1/n) times the sum over (i,j) in R of x[i,j], per channel. In backpropagation the gradient is shared equally — each position in the window receives 1/n of the incoming gradient — unlike max pooling, which routes everything to one position. This dense, even gradient makes average pooling stable and is one reason it is preferred for the final spatial collapse in modern networks.

Average pooling fell out of favour as a mid-network operation (max pooling gave sharper features for classification), but it is central in two modern places. Global average pooling at the head of a network (ResNet, Inception) averages each entire feature map to one number, replacing parameter-heavy dense layers. And average-style pooling underlies smooth multi-scale modules and some attention pooling. The trade-off versus max: averaging preserves the overall energy/context of a region but can wash out a small but important salient feature.

Average pooling the same 2x2 block [ [1, 7],[3, 2]] outputs (1+7+3+2)/4 = 3.25, and in backprop each of the four positions receives 1/4 of the upstream gradient.

Why it matters: average vs max is a bias choice. Use average when the whole region's content matters (texture, overall context, final classification head); use max when the peak/presence of a sharp feature matters (edges, parts). Many networks deliberately mix both at different stages rather than committing to one.