ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

网络越深反而越“笨“?ResNet 用一条“短路“救了深度学习——残差网络论文精读

网络越深反而越“笨“?ResNet 用一条“短路“救了深度学习——残差网络论文精读 在深度学习的历史上有一个反直觉到让整个圈子愣住的实验现象你辛辛苦苦把网络从 20 层加到 56 层结果不但没变强反而训练误差和测试误差都变大了。这不符合直觉。按常理56 层的网络至少能学会 20 层网络会的东西——大不了后面 36 层什么都不干、原样复制前面 20 层的输出呗怎么会更差可实验就是这样更深反而更差。直到 2015 年何恺明团队的论文《Deep Residual Learning for Image Recognition》残差网络ResNet用一条短路解决了它并一举拿下 ImageNet 冠军把深度推到了 152 层。这篇我们精读这篇论文的核心思想。论文要解决的真问题退化不是过拟合先厘清一个关键区别这是读懂 ResNet 的第一道门槛。直觉上网络越深越容易过拟合——训练误差很低、测试误差很高因为模型死记硬背了训练集。如果是这样那加深后测试误差变大就很好解释。但论文给出的实验数据狠狠地否定了这个解释加深后训练误差也变大了。也就是说连训练集都拟合不好了。这叫什么这叫退化degradation——它跟过拟合是两码事。过拟合是训练好、测试差退化是训练本身就差。更深层的直觉是网络加深意味着你要优化的函数变复杂了。一个 56 层的网络理论上表达能力只强不弱因为多出的层可以学恒等映射保持不退化。问题在于优化器学不会恒等映射。让 36 层网络去学什么都不做、原样输出看似简单实际上对一个非线性网络来说非常难——每一层都有权重、激活函数、非线性变换要让几十层叠起来恰好等效于恒等映射参数得配合得天衣无缝。梯度下降在这么复杂的地形里根本找不到这个解。核心思想与其学目标不如学差值既然直接学恒等映射这么难何恺明团队换了个问法能不能让网络默认就是恒等映射只去学偏离恒等映射的那一点点这就是**残差学习Residual Learning**的全部思想。普通的网络每一层试图直接拟合一个目标映射H ( x ) H(x)H(x)。残差网络则加了一条短路shortcut connection把输入x xx原封不动地加到输出上y F ( x ) x y \mathcal{F}(x) xyF(x)x现在F ( x ) \mathcal{F}(x)F(x)要学的不再是完整的H ( x ) H(x)H(x)而是残差F ( x ) H ( x ) − x \mathcal{F}(x) H(x) - xF(x)H(x)−x——也就是目标输出与输入的差值。这个改动的精妙之处在于如果最优解恰好是恒等映射即H ( x ) x H(x) xH(x)x残差网络只需让F ( x ) 0 \mathcal{F}(x) 0F(x)0就行。把权重往 0 推比让几十层非线性堆叠去恰好合成一个恒等映射容易太多太多了。一句话总结这篇论文的灵魂与其逼网络直接学答案不如让网络默认不改变只学需要改变多少。把学恒等映射这个难题变成了学零映射这个容易题。从梯度的角度它顺便治好了梯度消失残差连接的威力还能从另一个角度看得更清楚——梯度。回忆一下反向传播误差梯度要从最后一层一层层往回传。网络越深梯度要穿过的层越多。而激活函数比如 sigmoid的导数最大只有 0.25几十个 0.25 连乘下来梯度早就衰减到接近 0 了——这就是梯度消失深层网络学不动的根本原因之一我之前在《反向传播把误差用链式法则掰开》那篇里拆过这条链。残差连接怎么救它看y F ( x ) x y \mathcal{F}(x) xyF(x)x对x xx求导∂ y ∂ x ∂ F ( x ) ∂ x 1 \frac{\partial y}{\partial x} \frac{\partial \mathcal{F}(x)}{\partial x} 1∂x∂y​∂x∂F(x)​1那个“1”就是关键。它意味着梯度往回传时除了穿过F \mathcal{F}F的那条艰难的路还有一条短路可以原样传回去那个 1。哪怕F \mathcal{F}F这条路的梯度衰减没了短路那条路也能把梯度抄近道送回前面的层。所以残差网络既降低了学恒等映射的难度又给梯度开了条高速通道。一箭双雕。论文里的两个具体结构论文给出了两种残差块Residual BlockBasicBlock基本块两个 3×3 卷积适用于较浅的网络如 ResNet-18、ResNet-34Bottleneck瓶颈块1×1 卷积降维 → 3×3 卷积 → 1×1 卷积升维先用 1×1 把通道数压下去再恢复省计算量适用于很深的网络如 ResNet-50、ResNet-101、ResNet-152。两种块结构不同但那个y F ( x ) x y \mathcal{F}(x) xyF(x)x的短路是它们的共同灵魂。整篇论文真正核心的创新就这一条。成果与影响一条短路打开深度的大门有了残差连接深度这个被封印的武器彻底解禁了ResNet 把网络做到了152 层VGG 才 19 层在 2015 年的 ImageNet 图像分类比赛里ResNet 以3.57% 的 top-5 错误率夺冠首次超过了人类的识别水平人类约 5.1%论文拿了 CVPR 2016 的最佳论文何恺明也凭借这项工作在深度学习史上留下了浓墨重彩的一笔。更深远的影响在于短路连接从此成了几乎所有深层网络的标准配置。后来的 DenseNet、Transformer 里的残差结构、乃至今天的大模型都能看到这条短路的影子——它已经从一个技巧变成了深层网络设计的常识。结语面对难换个问法就是创新ResNet 这篇论文最值得学的不是公式公式简单得惊人而是它提问题的方式。别人问的是“怎么让更深的网络更好用” 何恺明问的是“网络加深到底难在哪” 一路追问下去发现难在学恒等映射于是把问题转化为学零映射一条短路就解决了。这正是第一性原理的味道先找到真正的困难是什么再针对那个困难设计解法而不是在原来的路子上修修补补。很多看起来惊天动地的突破拆开看核心就一句换个问法。读论文最怕的就是公式看不懂、只想抄代码。想把 ResNet 里的梯度、卷积、链式法则这些数学看透推荐 B站【408实验室】的《机器学习数学基础》补齐底子——数学通了论文里的每一个式子都会变成顺理成章。
返回列表