Skip to content

ResNet

A very deep CNN that uses shortcut connections, letting each block learn only a correction to its input. It made networks with 100+ layers trainable.

Also residual network · ResNet-50

Fig. / How it works
SKIP: x + f(x)
Role · kind
Models and algorithmsModel
Level
Intermediate

He, Zhang, Ren and Sun, Microsoft Research, 2015

Instead of every floor of a tall building redrawing the whole plan, each floor just adds small notes to the plan it received. Even with a hundred floors, the original plan stays readable.

Where it fits

+All relationships as a list

See it on the full map

How it works

By 2015, researchers had noticed something odd: stacking more layers onto a CNN eventually made it worse, even on training data. The extra layers were not overfitting; the network simply failed to train.

ResNet’s fix is the residual connection. Each block takes its input xx, computes some change F(x)F(x), and outputs x+F(x)x + F(x). If a block has nothing useful to add, it only needs to learn F(x)≈0F(x) \approx 0, which is easy. And during backpropagation, gradients flow straight through the ”+ x” shortcut, so they do not vanish across many layers.

With this trick, ResNets with 50, 101 and even 152 layers trained well and won the 2015 ImageNet competition. Residual connections then spread far beyond vision: every Transformer block uses them.

Everyday use cases

  • Case 01

    Standard vision backbone

    Pretrained ResNets are a common starting point for medical, industrial and satellite image models.

  • Case 02

    Transfer learning

    Replace the last layer and fine-tune on a few thousand of your own images.

Strengths, weaknesses and when to use it

Strengths

  • Trains reliably at great depth.
  • Simple, well understood, widely available pretrained.

Weaknesses

  • Matched or beaten by newer architectures at large scale.

When to use itAs a dependable, well-supported image backbone, especially with limited compute.

Compare with

Check yourself

  1. Q01

    What does a residual block compute?

    Show answer

    B: y = x + F(x)

Go deeper