An image classifier should recognize an airplane whether it appears near the top or bottom of an image. Translation invariance is the desired insensitivity to that shift: the pattern should still count as an airplane when its position changes. section 7.2.6
Figure 7.16 Translation invariance, or the lack thereof, with fully connected layers
Compare the airplane at different positions to see why a fully connected layer must learn new pixel relationships after a shift. section 7.2.6
A fully connected layer gives each pixel position its own place in a large set of weights. Move the same airplane, and the useful relationships now involve different positions. Randomly translating training images can expose the model to more positions, but the model still needs capacity to store those translated patterns. section 7.2.6
Convolution takes a more direct approach. A small kernel computes a weighted sum over a neighborhood, then uses the same weights at other locations. A local pattern can therefore be detected wherever it appears, without learning a separate set of weights for every position. section 8.1 section 8.1.1
Figure 8.2 Convolution and the equivalent linear operations. The linear weights will be sparse (only a few nonzero values) and tied (the same values appear in multiple places).
The equivalent linear operation makes the two ingredients visible: sparse weights restrict attention to nearby pixels, and tied weights reuse the same pattern across locations. section 8.1.1
From a small pattern to a larger one
A 3 × 3 kernel sees only a small neighborhood. Stacking convolutions with downsampling lets later layers account for relationships across larger parts of an image. For example, `nn.MaxPool2d(2)` reduces an image tensor from shape `[1, 3, 32, 32]` to `[1, 3, 16, 16]`. section 8.2.3 section 8.2.3




