Solved – Why is max pooling necessary in convolutional neural networks

conv-neural-networkdeep learningpooling

Most common convolutional neural networks contains pooling layers to reduce the dimensions of output features. Why couldn't I achieve the same thing by simply increase the stride of the convolutional layer? What makes the pooling layer necessary?

Best Answer

You can indeed do that, see Striving for Simplicity: The All Convolutional Net. Pooling gives you some amount of translation invariance, which may or may not be helpful. Also, pooling is faster to compute than convolutions. Still, you can always try replacing pooling by convolution with stride and see what works better.

Some current works use average pooling (Wide Residual Networks, DenseNets), others use convolution with stride (DelugeNets)