COMPUTER VISION

VGGNet and InceptionNet: Depth vs Width in CNNs

VGGNet proved that stacking 3×3 kernels beats large kernels. InceptionNet showed that applying multiple kernel sizes in parallel captures multi-scale features. Both ideas shaped every modern CNN.

1VGGNet — Depth Through 3×3 Kernels

VGGNet (Simonyan & Zisserman, 2014 ImageNet) answered a fundamental question: how should we design deeper CNNs? The answer was radical in its simplicity — use only 3×3 convolutions throughout the entire network, and stack them as deep as memory allows. AlexNet (2012) used 11×11 and 5×5 kernels. VGG-16 replaced them all with 3×3 and became the first network to show that depth (16 weight layers) systematically improves accuracy, regardless of kernel size.

VGG-16 architecture: 5 convolutional blocks (64, 128, 256, 512, 512 channels) each with 2-3 layers of 3×3 conv + ReLU, separated by max-pooling. Then 3 fully-connected layers (4096 → 4096 → 1000 classes). Total: ~138M parameters. The vast majority live in the FC layers — a weakness that 1×1 convolutions and global average pooling later solved (see ResNet, InceptionNet).

VGG-11
8 conv + 3 FC. The lightest VGG variant. 133M params. Useful when GPU memory is limited. Accuracy lower than VGG-16 but architecture is identical — fewer layers per block.
VGG-16
13 conv + 3 FC. The canonical variant. 138M params, top-5 error 7.3% on ImageNet. Extremely well-studied; feature maps from conv4_3 and conv5_3 are widely used as backbones for detection and segmentation.
VGG-19
16 conv + 3 FC. 144M params. Marginal accuracy gain over VGG-16 at the cost of extra computation. Rarely preferred unless you specifically want deeper gradients for style-transfer experiments.

2The Mathematical Advantage of 3×3

Why use two 3×3 layers instead of one 5×5? The receptive field is identical — a 3×3 on the output of a 3×3 sees a 5×5 patch of the original input — but the parameter count is strictly smaller, and you get an extra ReLU nonlinearity in between. Three stacked 3×3 layers see a 7×7 patch with even larger savings over a single 7×7.

Parameter count (C channels, bias included): one 5×5 conv = C × C × 25 + C params. Two 3×3 convs = 2 × (C × C × 9 + C) params. For C=64: 5×5 costs 102,464 params; two 3×3 cost 73,856 params — 28% fewer. The gap widens with more channels. Additionally, two 3×3 layers give two ReLU activations — more nonlinearity, better gradient flow.

3InceptionNet — Parallel Multi-Scale Modules

GoogLeNet / InceptionNet (Szegedy et al., Google, 2014) asked a different question: instead of choosing one kernel size, what if we apply all of them at once and let the network learn which scales matter? The Inception module applies 1×1, 3×3, and 5×5 convolutions plus a 3×3 max-pool in parallel, then concatenates their output channels. This makes the network wider at each layer rather than just deeper.

Inception Module

  • Input → 4 parallel branches
  • Branch 1: 1×1 conv (local, cheap)
  • Branch 2: 1×1 then 3×3 conv (medium)
  • Branch 3: 1×1 then 5×5 conv (large context)
  • Branch 4: 3×3 max-pool then 1×1 conv
  • All outputs concatenated along channel dim

GoogLeNet vs VGG

  • GoogLeNet: 22 layers, only 6.8M params (vs VGG's 138M)
  • Achieves similar accuracy with 20× fewer parameters
  • No large fully-connected layers
  • Uses global average pooling before classifier
  • More complex to implement and train

41×1 Convolutions: The Bottleneck

The key to InceptionNet's efficiency is 1×1 convolutions used as channel-dimension bottlenecks. A 1×1 conv does not change spatial dimensions (H×W stays the same) but reduces the number of channels, e.g., 256 → 64. This is done before an expensive 3×3 or 5×5 conv, dramatically reducing the computation. This bottleneck design was later used in ResNet's bottleneck block, MobileNet's depthwise separable convolutions, and virtually every efficient modern architecture.

Channel reduction
A 1×1 conv with 64 filters takes a 256-channel feature map and outputs a 64-channel one. Same spatial size, far fewer channels to feed into the next expensive convolution.
Extra nonlinearity
Each 1×1 conv is followed by BatchNorm + ReLU. This adds depth (and nonlinearity) without changing spatial resolution — useful for increasing model capacity cheaply.
Cross-channel mixing
A 1×1 conv is equivalent to a per-pixel fully-connected layer across channels. It mixes channel information without any spatial context — useful for learned feature recombination.

Related

VGG parameter count and 3×3 vs 5×5 efficiency comparison

Recall check

0 of …

Say the answer out loud before revealing — recalling is what makes it stick. ➜ Next: ResNet and Identity Shortcuts

  1. Why does VGGNet use only 3×3 convolutions?

  2. What is an Inception module and why is it called 'parallel'?

  3. What does a 1×1 convolution do in InceptionNet?

  4. How does GoogLeNet achieve 20× fewer parameters than VGGNet?