Paper Breakdowns  /  ResNet
Paper 12~7 min readCVPR 2016
Paper Breakdown

ResNet,
explained.

Everyone believed deeper networks should be smarter networks — until they weren't. Add too many layers and performance got worse, even on the training data, and nobody could say why. This 2015 paper found the culprit and fixed it with a one-line idea so simple it now sits inside nearly every deep model, Transformers included.

Video breakdown
The animated walkthrough is in production.
Read the full breakdown below in the meantime ↓
01

The degradation problem

By 2015, depth was the frontier — more layers, more power. But the authors hit a wall that made no sense: a 56-layer plain network had higher error than a 20-layer one, and not just on test data — on the training data too.

That rules out overfitting, which would show up only at test time. The deeper network literally couldn't fit data the shallower one handled easily. The problem wasn't capacity; it was that very deep plain networks had become too hard to optimize. This was the degradation problem.

02

The insight: a deep net should never be worse than a shallow one

Here's the logic that cracked it. Suppose your best 20-layer network is great. A 56-layer network could match it exactly — just make the 36 extra layers do nothing, passing their input straight through. So more depth should never hurt; worst case, the extra layers learn to be invisible.

The trouble is that a stack of plain layers finds "do nothing" — the identity function — surprisingly hard to learn. So the authors changed the architecture to make doing nothing the easy, default option.

03

The skip connection

Their fix: add a shortcut that carries a block's input directly to its output, and let the layers add to it. Instead of computing a whole new output, the block computes output = input + F(input). The layers only have to learn F — the residual, the change to apply — not the entire mapping.

A residual block
x weight layers
F(x)
+ x + F(x)
↑ the shortcut carries x straight across to the +

Now "do nothing" is trivial: the block just learns F = 0, and the shortcut passes the input through untouched. Extra depth can only help, never actively hurt.

04

Why it fixes training

Skip connections do two quiet, crucial things. They make each block's default behavior "do no harm," so optimization starts from a sane place. And they give gradients a clean highway straight back through the network during training — sidestepping the vanishing-gradient problem where the learning signal fades to nothing before it reaches the early layers of a very deep net.

Worth knowing

With residual connections, the authors trained a network 152 layers deep — eight times deeper than typical nets of the day — and it kept getting better. The degradation problem simply vanished.

05

The results

ResNet won the ImageNet 2015 classification challenge and swept detection and localization, with a 152-layer network reaching around 3.6% top-5 error — better than human-level on that benchmark, and a huge leap over the previous year's winners.

NetworkDepthTrains well?
Plain net20 layersYes
Plain net56 layersNo — degrades
ResNet152 layersYes — keeps improving
06

Why it still matters

The residual connection escaped computer vision and went everywhere. Look inside a Transformer — the architecture behind every modern LLM — and each block wraps its attention and feed-forward layers in exactly this output = input + sublayer(input) pattern. It's a big reason deep Transformers train stably at all.

ResNet's lesson is one of the most reused in all of deep learning: don't force a block to reinvent its input from scratch — hand it the input for free and let it learn only what to change. A one-line idea that made "deep" learning actually deep.

Frequently asked

Quick answers

What is ResNet?

A 2015 architecture that introduced the residual skip connection, letting networks train over 150 layers deep and win ImageNet. Blocks learn a residual added to their input via a shortcut.

What is the degradation problem?

Stacking more layers eventually raised error even on training data — not overfitting, but very deep plain networks becoming too hard to optimize.

What is a skip connection?

A shortcut routing a block's input to its output so it computes input + F(input). The layers learn only F, the change; learning "do nothing" (F=0) becomes trivial.

Why do skip connections help?

They give gradients a clean path back through the network (no vanishing gradient) and make each block's default "do no harm," so depth can only help.

Do Transformers use them?

Yes — every Transformer block wraps its sub-layers in residual connections, the exact idea ResNet introduced, which is part of why deep Transformers train stably.

Finished this one? 0 / 30 Paper Breakdowns done

Explore the topic

See this alongside everything else on the same subject — handbooks, system designs, challenges and tools, in one place.

More Paper Breakdowns