Deep Learning · MT2 · section

Inception examines several spatial scales

CNN architectures and transfer learning

Definition. An Inception module is a convolutional building block that processes the same input through parallel branches using different receptive-field operations and concatenates their output feature maps along the channel dimension.

Structure and working

A conventional early Inception module includes 1 × 1, 3 × 3 and 5 × 5 convolution branches and a pooling branch. Suitable stride and padding preserve compatible spatial dimensions. The branch outputs are then concatenated. If branch channel counts are c₁, c₂, c₃ and c₄, the output depth is c₁ + c₂ + c₃ + c₄.

Branches operate on the same input. Matching spatial outputs are joined along the channel axis. Tap the diagram to enlarge.

Why use several branches?

Different branch receptive fields can capture patterns at different spatial scales. A 1 × 1 convolution mixes channel information at each position. Before an expensive larger kernel, it can reduce the number of input channels and therefore the parameter count and multiplication cost. The bottleneck calculation is developed in the following section.

Concatenation is not addition

Concatenation increases channel depth and retains each branch's feature maps separately. Elementwise addition requires equal shapes and combines corresponding values. Inception commonly uses concatenation; a standard residual block uses addition. A question giving branch sizes tests this distinction as well as the convolution formula.

Early Inception designs reduce reliance on a large fully connected classifier through global average pooling. The parallel design still needs compatible branch shapes and carefully chosen channel widths; increasing the number of branches or filters increases computation.