【从会用模型到理解CV3】为什么卷积、ResNet、Attention 会有效?

学 CV 的过程中,几乎没人绕得开这三个词:

  • 卷积(Convolution)
  • ResNet
  • Attention

它们太常见了。
常见到很多时候,我们会默认自己“已经懂了”。

比如:

  • 卷积就是提特征的
  • ResNet 就是加 shortcut 的
  • Attention 就是让模型关注重点

这些说法当然不算错,但如果只停留在这里,其实还是太表面了。

因为真正值得想清楚的问题不是“它们是什么”,而是:

  • 它们为什么会出现?
  • 它们分别在解决什么问题?
  • 为什么这些设计在视觉任务里会长期有效?
  • 它们各自的优势和局限是什么?

如果这些问题没有想透,那后面看各种卷积变体、残差块、注意力模块时,就很容易变成“见一个记一个”,而不是建立一条真正清晰的理解路径。

所以这一篇,不想把它写成模块百科,而更想把它写成一篇问题驱动的解释

卷积、ResNet、Attention,本质上分别在补哪一块短板?

一、先说结论:这三个东西,其实解决的是三类不同问题

如果把这篇文章先压缩成一句话,我会这样概括:

  • 卷积 解决的是:如何高效地从图像中提取局部模式
  • ResNet 解决的是:网络变深之后,信息和梯度怎么稳定传递
  • Attention 解决的是:哪些信息更重要,以及远距离关系如何建模

这三者并不是互相替代的关系,而更像是在网络演化过程中,分别补上不同缺口。

所以理解它们最好的方式,不是逐个孤立记忆,而是把它们放进同一条链里看:

先有局部特征提取的问题,于是有了卷积;
再遇到深层网络难训练的问题,于是有了 ResNet;
后来发现局部建模还不够、信息权重也不能一视同仁,于是 attention 越来越重要。

这条逻辑链一旦顺了,很多后面的模型变化都会更容易理解。

二、为什么卷积会有用?

如果从今天往回看,卷积几乎像是视觉模型里的“基础设施”。
但它之所以会成为基础设施,并不是因为“它是传统”,而是因为它刚好特别适合图像这种数据。

1. 图像不是普通向量,而是有空间结构的数据

一张图像最重要的特点之一,是相邻像素之间通常不是独立的。
也就是说,图像不是一堆打乱顺序的数字,而是有明确空间邻接关系的二维信号。

例如:

  • 边缘通常体现在局部区域的亮度突变
  • 纹理体现在局部区域的重复模式
  • 轮廓体现在一系列相邻区域的结构变化

所以如果模型想理解图像,它首先就得有能力处理“局部邻域里的模式”。

而卷积刚好就是这样一种操作:

它不是全局一把抓,而是在局部窗口里扫描模式。

这让它天然适合视觉任务。

2. 卷积的本质,是局部模式匹配

从更直观的角度讲,卷积核可以理解成一个小小的“模式探测器”。

比如一个 (3\times3) 的卷积核,并不是在理解整张图,而是在问:

  • 这个小区域里有没有某种边缘?
  • 有没有某种纹理?
  • 有没有某种局部变化?

不同卷积核会学到不同类型的局部模式。
随着层数变深,这些局部模式又会被进一步组合成更复杂的结构。

所以卷积的核心价值可以概括成一句话:

它让模型能高效地从局部区域中提取可重复、可组合的视觉模式。

3. 为什么说卷积的归纳偏置特别适合视觉?

卷积之所以长期有效,还有一个关键原因:它带有非常强的视觉归纳偏置。

最重要的几个偏置包括:

(1)局部性

卷积默认认为:
图像中最重要的基础信息,首先存在于局部邻域里。

这和人类视觉的很多经验其实是一致的。
我们认边缘、认纹理、认局部形状,往往都从局部开始。

(2)参数共享

同一个卷积核会在整张图上滑动使用。
这意味着模型默认相信:

某种有意义的模式,不会只出现在一个固定位置,而可能在很多位置重复出现。

比如“边缘”不会只存在于左上角,纹理也不会只存在于中间。
参数共享正好对应了这一点。

(3)平移等变性

如果图像中的某个模式平移了,卷积响应也会跟着平移。
这让卷积天然适合捕捉“同一物体在不同位置出现”的情况。

所以你会发现,卷积强,不只是因为它能算特征,而是因为它对图像做了很合理的先验假设。

4. 卷积为什么高效?

除了适合图像,卷积还有一个很现实的优点:高效

如果用全连接方式处理一张图像,参数量会大得惊人,而且会完全破坏图像的空间结构。
卷积则通过局部连接和参数共享,大大减少了参数量和计算量。

所以卷积同时满足了三件事:

  • 结构上适合图像
  • 表达上能提局部模式
  • 工程上足够高效

这就是为什么它会成为 CV 时代的长期主角。

三、卷积解决了什么,又没解决什么?

理解一个经典模块,最重要的不只是知道它“强”,还要知道它的边界在哪里。

卷积解决了什么?

1. 它解决了局部特征提取问题

这一点是最核心的。
图像里最基础的视觉模式,比如边缘、角点、纹理,本来就更适合通过局部扫描来提取。

2. 它解决了参数规模和空间结构兼顾的问题

相比全连接,卷积让模型在不破坏图像结构的前提下,仍然保持较高计算效率。

3. 它解决了视觉任务中的一部分不变性问题

比如某些模式出现在图像不同位置时,卷积都能较自然地响应。

但卷积也有明显局限。

4. 它天然更偏局部,长距离关系建模不直接

如果两个区域相距很远,卷积要靠很多层叠加才能让它们间接建立联系。
这不是说做不到,而是路径比较长、效率比较低。

5. 它对“该关注什么”没有显式动态选择能力

标准卷积是固定权重、固定扫描方式。
它不会像 attention 那样动态决定“这里更重要,那里次要”。

所以卷积非常强,但它更擅长:

稳定地提局部结构,而不是灵活地做全局关系建模和动态信息分配。

也正因为如此,后面才会有越来越多补足这些短板的设计。

四、为什么网络变深之后,ResNet 会变得重要?

卷积网络一开始变强,很大程度上依赖“更深”。
因为更深意味着:

  • 感受野更大
  • 表达能力更强
  • 可以逐层构造更复杂的特征

但问题很快就来了:

网络是不是越深越好?

理论上更深的网络可以表示更复杂的函数,听起来应该更强。
可实际训练时,事情没那么简单。

1. 深层网络最大的问题,不是“表达不够”,而是“优化困难”

很多人第一次学 ResNet,会以为它主要是在“增强表达能力”。
其实更准确地说,ResNet 首先是在解决优化问题

因为网络一旦很深,就容易出现:

  • 梯度消失
  • 梯度爆炸
  • 训练不稳定
  • 前面层的信息越来越难保留
  • 后面层即使参数更多,也不一定真学得更好

也就是说,深层网络不是不能强,而是经常训练不出来那个应有的强度

这才是 ResNet 真正要解决的核心矛盾。

2. ResNet 的关键,不是“更复杂”,而是“让信息更好走”

ResNet 最经典的公式是:

$$
y = F(x) + x
$$
看起来很简单,就是在某个变换 (F(x)) 后面,把输入 (x) 直接加回来。

但这件事的意义非常大。

它意味着:
某一层不必强迫自己完全重写输入,而可以只学习一个“增量修正”。

换句话说,网络不用每一层都从头创造新表示,而是可以在原有信息基础上慢慢改。

这个想法非常重要,因为它让网络学起来容易得多。

五、ResNet 为什么有效?

ResNet 有效,至少可以从两个层面理解。

1. 它改善了前向信息流

在普通深层网络里,信息必须一层一层往前传。
中间如果有些细节被压掉了,后面很可能就回不来了。

而残差连接提供了一条“旁路”,让原始信息可以更顺畅地穿过很多层。
这意味着:

  • 低层信息不容易完全被覆盖
  • 深层表示可以更稳定地建立在已有表示之上
  • 网络不至于层数一深就把早期信息弄丢得太厉害

2. 它改善了反向梯度流

训练时更关键的是梯度怎么传回来。
如果梯度在很深的网络里层层衰减,前面很多层就很难有效更新。

残差连接相当于给梯度也开了一条更顺畅的路径。
这大大降低了深层网络训练的难度。

所以从更本质的角度看,ResNet 之所以重要,不是因为它“花哨”,而是因为它让:

更深的表示学习真正变得可训练。

六、ResNet 到底解决了什么问题?

如果像前面那样总结:

  • 卷积解决的是“局部模式怎么高效提”
  • 那么 ResNet 解决的就是“深层网络里的信息和梯度怎么稳定传”

这也是为什么后来几乎所有深一点的网络,都会或多或少借鉴残差思想。
因为它触及的是一个非常底层的结构问题:

信息不能只被处理,还要能顺畅通过。

所以你以后看很多变体时,可以少纠结名字,多问一个问题:

  • 这个结构有没有改善信息流?
  • 它是不是在降低深层优化难度?
  • 它是不是在避免重要表示被层层重写后丢失?

如果答案是“是”,那它大概率就在借 ResNet 的核心思想。

七、ResNet 的局限是什么?

虽然 ResNet 很重要,但它也不是终点。

1. 它改善了信息流,但不直接解决“看什么更重要”

残差连接主要解决的是“信息能不能顺畅过”,而不是“信息该怎么分配权重”。

2. 它还是以卷积式局部建模为基础

所以它并没有从根本上改变卷积更偏局部的特点。
远距离关系仍然要靠层层堆叠去间接建立。

3. 它不直接提供动态全局建模能力

换句话说,ResNet 让网络更容易训练、更深、更稳,但它并没有显式回答:

  • 图里哪些区域更关键?
  • 很远的两个区域之间如何快速建立关系?
  • 不同位置/通道的重要性是否应该动态变化?

这些问题,就把我们自然引向 attention。

八、为什么 attention 会越来越重要?

在卷积和 ResNet 都已经很强之后,CV 研究还在不断往前走。
这时候一个越来越突出的现实是:

不是所有信息都同样重要,也不是所有依赖关系都只发生在局部。

这其实对应了两个新问题。

问题1:信息应该被一视同仁吗?

一张图里,显然不是所有区域都同等重要。

比如:

  • 目标区域比大面积背景更关键
  • 目标边界比纯背景区域更关键
  • 某些通道可能承载更有效的语义
  • 某些局部结构对分类/检测决策影响更大

如果模型对这些信息全部平均处理,往往不够高效,也不够准确。

问题2:远距离关系怎么建?

有时候,一个区域是否重要,不只取决于它自己,还取决于别的区域。

比如:

  • 一个局部纹理是不是目标,要结合上下文判断
  • 一个小区域是否属于前景,要看周围结构
  • 某些模式需要和远处另一个区域共同解释才有意义

而这些关系,标准卷积做起来并不直接。
它不是做不到,而是路径长、耦合弱、效率不高。

于是 attention 的价值就越来越明显。

九、attention 的本质到底是什么?

很多人会说,attention 就是“让模型关注重点”。
这句话没错,但还可以再精确一点。

我更喜欢这样理解:

attention 的本质,是一种动态的信息加权与选择机制。

它做的核心事情不是“凭空创造新信息”,而是:

  • 评估不同信息之间的相关性
  • 根据相关性给不同部分分配不同权重
  • 再把这些信息按权重聚合起来

写成非常抽象的形式,就是:

$$
\text{output}=\sum_i \alpha_i v_i
$$
这里的 $\alpha_i$ 表示权重,$v_i$ 表示被加权的信息。
重点在于:这个权重不是固定写死的,而是动态算出来的

所以 attention 和普通卷积很大的不同在于:

  • 卷积更像固定模板扫描
  • attention 更像根据当前输入动态决定“该看谁、看多少”

十、attention 为什么会有效?

attention 有效,最核心的原因其实有两个。

1. 它能做动态权重分配

不是每张图、每个区域、每个通道的重要性都一样。
attention 允许模型根据当前输入自己决定:

  • 哪个位置更值得看
  • 哪个通道更关键
  • 哪些特征应该被加强
  • 哪些信息应该被抑制

这使得模型处理信息的方式更灵活。

2. 它能更直接地建立长距离依赖

特别是在 self-attention 里,一个位置和另一个位置之间的关系可以直接建模,而不一定非要靠很多层局部卷积间接传播。

这让模型更容易整合全局上下文。
在很多任务里,这一点非常重要。

所以可以说,attention 补上的,是卷积和残差网络长期存在的一块短板:

动态选择信息 + 更直接地建模全局关系。

十一、attention 解决了什么,又没解决什么?

理解 attention 也要讲边界。

它解决了什么?

(1)信息权重不均的问题

它让模型不必平均对待所有信息。

(2)远距离依赖建模的问题

它让全局关系更容易显式建立。

(3)上下文整合的问题

某个局部到底重要不重要,可以借助全局语境判断。

它没解决什么?

(1)它不天然比卷积更适合局部细节

卷积对边缘、纹理、局部结构依然非常强。
attention 并不天然替代这部分优势。

(2)它通常更贵

尤其标准 self-attention 在高分辨率视觉任务里,计算和显存代价很高。

(3)它也不是“加了就一定涨”

如果任务本身主要瓶颈不是全局关系,或者数据量、训练策略跟不上,attention 并不一定稳稳赢。

所以 attention 强,但不是万灵药。
它的优势最能体现在:

  • 需要上下文建模
  • 需要动态聚焦
  • 需要跨区域整合信息

的场景里。

十二、把三者放在一起看,就更清楚了

到这里,你其实可以把它们三者摆成一个很清楚的分工图:

卷积

负责:高效提取局部模式

它最擅长:

  • 边缘
  • 纹理
  • 局部结构
  • 低层到中层视觉特征

ResNet

负责:让深层网络的信息和梯度更顺畅地流动

它最擅长:

  • 稳定训练更深网络
  • 保持表示连续性
  • 改善前向与反向路径

Attention

负责:动态分配信息权重,并更直接建模长距离关系

它最擅长:

  • 重点区域增强
  • 全局上下文建模
  • 通道/空间动态重加权

所以这三者不是谁彻底取代谁,而更像是现代视觉模型里的三种核心能力:

  1. 局部建模能力
  2. 稳定信息流能力
  3. 动态全局建模能力

真正强的模型,往往不是单押某一种,而是把这几种能力组合得比较好。

十三、为什么现代CV模型越来越喜欢“卷积 + 残差 + attention”?

你现在再看很多模型,会发现一个非常常见的现象:

backbone 里有卷积,
基本块里有残差,
某些位置再插入 attention 或类似加权模块。

这不是巧合,而是因为这三者确实分别对应了视觉建模中的三类长期需求:

  • 图像一定需要局部模式提取
  • 深层网络一定需要稳定训练和稳定信息流
  • 复杂任务一定会受益于更智能的信息选择和上下文整合

所以现代模型经常不是“换掉卷积”,而是:

  • 用卷积保局部
  • 用残差保可训练性
  • 用 attention 补动态关系和全局感知

这样组合起来更合理。

十四、从“问题”而不是“名词”去理解它们,才最有用

我越来越觉得,学这些经典模块时,最怕的是只记结论:

  • 卷积好
  • ResNet 强
  • attention 火

这样很容易停留在名词层面。

真正有用的理解方式,是始终追问:

对卷积:

  • 为什么图像适合局部扫描?
  • 卷积的强归纳偏置到底带来了什么?
  • 它的局部优势会不会变成全局建模短板?

对 ResNet:

  • 深层网络难训练到底难在哪?
  • shortcut 为什么能改善优化?
  • 它是在增强表达,还是在让表达更容易学出来?

对 attention:

  • 它是在补哪种信息处理短板?
  • 为什么“动态权重分配”比固定卷积更灵活?
  • 它什么时候真正有价值,什么时候只是增加开销?

当你这么问时,这些模块就不再只是“知识点”,而会变成你以后看论文、改模型时的分析工具。

十五、对CV学生来说,最应该真正记住的是什么?

如果让我把整篇文章最后压缩成三句话,我会这样写:

卷积让模型会看局部。
ResNet 让深层网络能学得动。
Attention 让模型知道该重点看什么,并能看得更远。

这三件事,恰好对应了视觉模型里最基础的三种能力。

所以以后你再看一个新模型时,不妨先问它:

  • 它的局部建模是靠什么完成的?
  • 它的信息流和梯度流是怎么保证的?
  • 它有没有动态建模重点信息和全局关系的能力?

你一旦开始这样看,很多复杂结构都会变得没那么乱。

结语

卷积、ResNet、Attention 之所以会成为经典,不是因为它们只是“历史上很火的模块”,而是因为它们分别抓住了视觉建模里三个非常根本的问题:

  • 如何提局部特征
  • 如何让深层网络可训练
  • 如何动态建模重要信息与全局关系

所以真正理解它们,不应该停留在“它们是什么”,而要继续问:

它们为什么会存在?又分别填补了什么结构空缺?

当你开始从这个角度去看模型时,后面遇到各种卷积变体、残差单元、通道注意力、空间注意力、自注意力、混合架构时,就会更容易抓住本质,而不是被名字牵着走。


【从会用模型到理解CV3】为什么卷积、ResNet、Attention 会有效?
http://example.com/2026/03/16/从会用模型到理解CV3/
作者
Alaskaboo
发布于
2026年3月16日
更新于
2026年3月15日
许可协议