Goal

Pooling layers are mostly there for dimensionality reduction. They help the network to reduce the spatial size of the feature maps. We can then add another convolutional block that will be applied on a different scale (Scale separation, ml architecture context).

They introduce a form of feature hierarchy, where lower layers capture the more fine grained features, while higher layers capture more abstract and global features.

Furthermore they help achieve translation invariance, since the position of an object won't affect the prediction anymore. How to think about model architecture#Equivariance

Functionality

Similar to Convolutional Layers, they usually apply a filter onto a region, compressing it to a single value.

There are different types of filters (different types of pooling layers).

Methods

| Max Pooling Layer |

When to use them?

To find spikes, abnormalities. Good for edge detection. Use in early layers.

| | ------------------------- | -------------------------------------------- | | Average Pooling Layer |

When to use them?

It captures the general presence of features. It smooths out outliers, gets rid of spikes. For tasks where the general presence of features is more important than local extremes. Example: Sentiment analysis from images.

It can be interesting to use them with noisy data, but I would recommend preprocessing the data properly instead.

Use it if detecting global trends is important, like a slowly narrowing pipe for example.

| | Global Pooling Layers | |