残差连接
网络越深,本该越强,但早年一深就训不动——因为反向传播时,梯度要穿过每一层、一路连乘小于 1 的数,传到底层就可能几乎归零(梯度消失)。残差连接(ResNet 的核心)加了一条“跳线”:每个模块的输出 = 输入 + 这个模块学到的修正。反向求导时,这条跳线给梯度留了一条直通的路径(导数中出现恒等映射项),通常能显著减轻衰减,但实际梯度仍取决于残差分支和训练状态。正因如此,更深的网络更容易优化,Transformer 里也广泛使用它。拖动深度,对比两边梯度传到底层还剩多少。
每个色块是一层,颜色越深(浓)表示反向传播时梯度传到这一层还越强、越浅(发白)表示越弱。梯度从顶部(输出)往下传到底部(输入)。左边普通堆叠,右边每层带一条绿色跳线。
普通深层网络
残差网络(带跳线)
普通:梯度连乘消失
每层梯度乘一个小于 1 的数,层数一多,传到底层就趋近于 0,底层学不动。
残差:直接路径
跳线让导数中保留恒等映射项,梯度多了一条较少受残差分支衰减影响的路径。
所以能更深
ResNet 把网络从几十层推到上百层;Transformer 每个子层也都有残差。