ResNet 为我解释一下这个是什么?

Created on: August 9, 2026

Answered using GPT-5.6 Thinking by Chat01

Question

ResNet

为我解释一下这个是什么?

Thought

Worked for a couple of seconds

Answer

ResNet(Residual Network,残差网络)是一种经典的深度神经网络架构,主要用于图像识别和计算机视觉。它由微软研究院团队在 2015 年提出。

它最核心的创新可以浓缩成一句话:

不要让网络直接学习“最终结果”,而是让它学习“输入需要改变多少”。

1. 为什么需要 ResNet?

传统卷积神经网络通常是这样一层层计算:

xF(x)x \rightarrow F(x)

理论上,网络层数越深,模型就越强。但实际训练时,网络太深会出现一个问题:

层数增加以后,模型反而可能训练得更差。

原因包括梯度传播困难,以及深层网络很难学会“这一层其实什么都不用做”。

ResNet 为此加入了一条捷径(Skip Connection / Shortcut Connection)

xx+F(x)x \rightarrow x + F(x)

也就是说,输入 xx 不仅进入神经网络层,还可以直接“绕过去”,最后和网络计算出的 F(x)F(x) 相加。


2. 什么叫“残差”?

假设我们真正想学习的目标是:

H(x)H(x)

普通神经网络直接学习:

H(x)H(x)

ResNet 则换一个思路,让网络学习:

F(x)=H(x)xF(x)=H(x)-x

于是:

H(x)=F(x)+xH(x)=F(x)+x

这里的 F(x)F(x) 就叫做 Residual(残差)

例如,你可以把它想成:

原图 → “需要修改的部分” → 加回原图 → 新结果

而不是:

原图 → 完全重新生成一个结果

这种方式通常更容易学习。


3. ResNet 的结构长什么样?

一个非常简化的 Residual Block(残差块)可以理解成:

text
┌───────────────┐ │ │ │ x │ │ ↓ x ──→ Conv ──→ ReLU ──→ Conv ──→ (+) ──→ 输出 │ ↑ └──────────────────────────────┘ Shortcut

上面的卷积层负责学习:

F(x)F(x)

下面那条直接连过去的线传递:

xx

最后得到:

y=F(x)+xy=F(x)+x

这就是 ResNet 最重要的结构——Residual Block


4. 为什么这个设计这么厉害?

一个很直观的原因是:

假如某几层实际上没什么需要学习的,普通网络还得费劲学出一个“原样输出”的函数。

而 ResNet 只需要让:

F(x)0F(x)\approx0

那么:

F(x)+xxF(x)+x\approx x

也就是说,这几层可以很容易地变成:

“没必要处理的话,就直接让信息通过。”

因此网络可以做得非常深。

于是就有了你经常看到的:

  • ResNet-18:18 层
  • ResNet-34:34 层
  • ResNet-50:50 层
  • ResNet-101:101 层
  • ResNet-152:152 层

其中 ResNet-50 是非常常见的计算机视觉 backbone(骨干网络)。

5. 一句话理解

你可以把普通神经网络理解成:

“请你重新计算一个答案。”

而 ResNet 更像:

“原来的答案先保留,你只告诉我需要修改什么。”

这一个看起来很简单的思想,让非常深的神经网络变得更容易训练,也是现代深度学习中非常重要的架构思想。

如果你正在学 CNN,我建议把 ResNet = CNN + Skip Connection + Residual Block 先记住,这样已经抓住它最核心的部分了。

Share this Q&A