深度学习界的“任督二脉”:为什么 ResNet 只是简单加了个“x”就封神了?

张开发
2026/4/14 16:44:27 15 分钟阅读

分享文章

深度学习界的“任督二脉”:为什么 ResNet 只是简单加了个“x”就封神了?
版权声明本文同步发布于个人博客。欢迎交流与转载但请务必注明出处。在深度学习的历史长河中2015年是一个分水岭。这一年何恺明团队提出了残差网络ResNet不仅拿下了ImageNet大赛冠军更彻底改变了我们设计神经网络的方式。很多人看完ResNet的公式后都会一愣“就这不就是把输入x xx直接加到输出上吗Y F ( x ) x Y F(x) xYF(x)x这也太简单了吧”没错它的核心操作确实就是简单的“加法”。但正是这个看似不起眼的“跳跃连接”Skip Connection打通了深层神经网络的“任督二脉”让训练上千层的网络成为可能。今天我们就用大白话聊聊为什么这个简单的“x”如此神奇。一、曾经的困境网络越深反而越笨在ResNet出现之前深度学习界有一个朴素的信念层数越深模型越强。就像读书一样读得越多懂得越多。然而现实给了大家一记响亮的耳光。当研究人员试图把网络堆叠到几十层甚至上百层时发现了一个诡异的现象**网络不仅没有变强效果反而变差了**甚至连在训练集上的准确率都下降了。这就是著名的**“退化问题”Degradation Problem**。这不是过拟合因为训练误差也高了。也不是算不动显卡没爆。而是优化太难了网络找不到正确的参数方向越学越乱。这就好比你给一个团队不断加人本来想提高效率结果人太多反而沟通不畅连原本能做的简单任务都搞砸了。二、ResNet 的天才思路别“从头学”只学“修正量”面对这个困境何恺明团队换了一个角度思考如果我们要构建一个很深的网络理想情况下新增加的层至少不应该让效果变差吧也就是说如果后面的层学不到东西它们应该学会**“什么都不做”数学上叫恒等映射**即H ( x ) x H(x) xH(x)x直接把输入原样传过去就行了。1. 普通网络的难处在普通网络中想要实现“什么都不做”网络必须拼命调整成千上万个权重参数让这一堆复杂的矩阵乘法运算结果恰好等于输入x xx。比喻这就像让你通过调节一堆复杂的水龙头和管道最后流出来的水要和倒进去的水一模一样。这太难了稍微调偏一点结果就错了。2. ResNet 的妙招残差学习ResNet 说既然让网络拟合H ( x ) x H(x) xH(x)x这么难那我们换个目标吧。我们不让网络直接拟合最终结果H ( x ) H(x)H(x)而是让它拟合**“差异”**残差F ( x ) H ( x ) − x F(x) H(x) - xF(x)H(x)−x那么最终的输出就变成了H ( x ) F ( x ) x H(x) F(x) xH(x)F(x)x这有什么好如果理想情况真的是“什么都不做”H ( x ) x H(x)xH(x)x那么网络只需要学习F ( x ) 0 F(x) 0F(x)0。把一堆权重变成 0让神经元“休眠”比让一堆权重配合出完美的恒等变换要容易得多那个“x”的操作就是给了网络一个**“保底机制”**如果你学不到有用的特征那就把F ( x ) F(x)F(x)设为0至少我能把原始信息x xx原封不动地传下去绝不会变差。三、核心魔法那条“跳跃连接”到底干了什么ResNet 的核心结构叫残差块Residual Block里面有一条横跨几层的连线叫跳跃连接Skip Connection。公式很简单输出 卷积层变换 ( 输入 ) 输入 \text{输出} \text{卷积层变换}(输入) \text{输入}输出卷积层变换(输入)输入你觉得这只是个数学加法错在神经网络的**训练过程反向传播**中这个加法引发了物理性质的革命。1. 梯度传播的“高速公路”神经网络的训练靠的是反向传播误差信号需要从最后一层传回第一层告诉前面的层该怎么改参数。没有跳跃连接时误差信号必须穿过每一层的激活函数和权重。数学上是连乘关系梯度 ⋯ × w 3 × w 2 × w 1 \text{梯度} \dots \times w_3 \times w_2 \times w_1梯度⋯×w3​×w2​×w1​。后果如果权重w ww小于1连乘几十次后梯度就变成了0梯度消失。前面的层收不到任何指令根本没法更新网络“死”掉了。有了跳跃连接后因为公式里有 x xx当我们求导时多出了一项∂ ( 输出 ) ∂ x ∂ F ( x ) ∂ x 1 \frac{\partial (\text{输出})}{\partial x} \frac{\partial F(x)}{\partial x} \mathbf{1}∂x∂(输出)​∂x∂F(x)​1注意那个1 \mathbf{1}1这意味着无论中间的卷积层F ( x ) F(x)F(x)变得多么复杂、权重变得多么小永远有一个大小为 1 的梯度可以通过那条跳跃连线无损地、直接地传回前面比喻普通网络像玩“传声筒”游戏话经过几十个人传递最后面目全非梯度消失。ResNet旁边拉了一根专用电话线。不管传声筒那边多吵电话线里永远能清晰地听到原始声音。这保证了深层网络的“大脑”能收到清晰的指令。2. 集成学习的视角从另一个角度看跳跃连接让数据有了多条路径有的数据走了全部 50 层。有的数据通过跳跃连接只走了 48 层、40 层甚至 2 层就直接到了后面。这使得 ResNet 不像是一个单一的“深”网络而更像是一个由很多不同深度的子网络组成的“超级团队”。这种结构本身就比单一的深层网络更鲁棒更不容易出错。四、结局深度不再是瓶颈有了 ResNet 之后发生了什么以前大家不敢超过 20 层。有了 ResNet50 层、101 层、152 层随便堆而且层数越深效果真的越好再也没有出现“越深越笨”的情况。ResNet 的出现让计算机视觉模型的性能突飞猛进并迅速成为了所有深度学习任务的标准骨干网络Backbone。直到今天无论是识别图片、检测物体还是大模型的视觉编码器你依然能看到 ResNet 的影子。五、总结ResNet 的伟大不在于它用了多么复杂的数学技巧而在于它洞察了优化的本质思维转变从“学习完整函数”转变为“学习微小修正残差”。结构创新通过跳跃连接x创造了一条梯度为 1 的无损通道彻底解决了梯度消失问题。保底机制让“躺平”输出0成为合法的最优解确保了增加层数永远不会让模型变差。所以下次当你看到Y F ( x ) x Y F(x) xYF(x)x这个简单的公式时请不要忽视它。这条简单的“加法”连线正是打通深度学习任督二脉的关键钥匙。一句话总结ResNet 告诉我们有时候“保留初心”加上原始的 x比“盲目重塑”更能走向成功。

更多文章