pooling layer
**Pooling Layers** — downsampling operations that reduce spatial dimensions of feature maps while retaining the most important information, reducing computation and providing translation invariance.
**Types**
- **Max Pooling**: Take the maximum value in each window. Most common. Preserves the strongest activation (strongest edge/feature detection)
- **Average Pooling**: Take the mean of each window. Smoother, preserves overall activation level
- **Global Average Pooling (GAP)**: Average entire feature map to a single value. Used as classifier instead of fully connected layers (reduces parameters dramatically)
**Typical Usage**
```
Conv(3x3) → ReLU → MaxPool(2x2, stride=2)
```
- Input: 32x32 → Output: 16x16 (halves spatial dimensions)
- Reduces computation by 4x for subsequent layers
**Why Pooling?**
- **Dimension reduction**: Fewer pixels = fewer computations in next layer
- **Translation invariance**: Small shifts in input don't change the output (object moves slightly → same detection)
- **Larger receptive field**: Each neuron in the next layer sees a larger region of the original input
**Modern Trends**
- Strided convolutions (stride=2) increasingly replace explicit pooling layers
- Vision Transformers use patch embedding instead of pooling
- GAP remains standard for final classification in most architectures
**Pooling** is simple but critical — it controls the spatial hierarchy that makes CNNs effective.