What is the benefit of using Max pooling in convnets as opposed to just using convolution layers? (from Francois Chollet's Deep Learning with Python)
Max pooling layers are useful for two things:


undersampling the dimensions of their input, to reduce model parameters and also reduce overfitting
increasing the robustness of the model to small changes in the input image (e.g. if I change the input image slightly the model should predict the same thing).


However their usefulness is limited and are starting to be replaced by convolution layers with large strides. You could read this article on the matter.