Qm
Advanced

Inception and Multi-Scale Convolution Blocks

A convolutional network design that runs several filter sizes side by side in the same layer and lets the network combine what each scale sees, instead of forcing a single filter size choice at every layer.

A standard convolutional layer picks one filter size, say 3x3, and applies it everywhere. But real images have features at different scales in the same picture: a small texture detail and a large object outline might both matter, and no single filter size is best for both. Choosing one filter size per layer forces a compromise the network has to live with for that whole layer.

An Inception block (introduced in GoogLeNet) sidesteps the choice by running several filter sizes, typically 1x1, 3x3, and 5x5 convolutions, plus a pooling operation, in parallel on the same input, then concatenating all their outputs together before passing them to the next layer. The network sees the same patch of the image through several different-sized "lenses" simultaneously and learns, through later layers' weights, how much to rely on each scale's output.

The obvious problem is cost: running a 5x5 convolution on every channel of a deep feature map is expensive, and doing it several times per block compounds fast. The practical fix is a 1x1 convolution inserted just before each larger filter, purely to shrink the number of channels first, cutting the computation of the subsequent 3x3 or 5x5 pass substantially before it happens, without changing the spatial resolution being examined.

Stacking many Inception blocks lets a network build up multi-scale features layer after layer rather than committing to one receptive field size architecture-wide, which was one of the ideas that let GoogLeNet reach high accuracy on ImageNet with a comparatively modest parameter count relative to contemporaries of similar depth.

An Inception block runs several convolution filter sizes side by side on the same input and concatenates their outputs, letting a network capture multi-scale features in one layer instead of committing to a single filter size, with 1x1 convolutions used beforehand to keep the extra parallel computation affordable.

Discussion

Sign in to join the discussion · reading is open to everyone

💡 Discussion rules

  1. Ask and answer about this concept. Off-topic gets removed.
  2. No homework dumps. Show what you tried first.
  3. Corrections are welcome. Cite a source when you claim an error.

Loading discussion…

Related concepts

Further reading

  • Szegedy et al., 'Going Deeper with Convolutions' (Inception/GoogLeNet)
ShareTwitterLinkedIn