学习 深度学习9-ResNet总结
1. 背景与动机在 ResNet 提出之前人们发现简单堆叠更多卷积层并不能让网络性能持续提升。当网络深度增加到一定程度后主要面临两个问题梯度消失/爆炸在反向传播过程中梯度会随着层数加深而指数级衰减或增长导致浅层参数几乎无法更新。退化问题更出乎意料的是即使解决了梯度消失深度网络在训练集上的误差不但不降反而升高。这不是过拟合而是网络在优化上变得更加困难难以学到理想的映射。ResNet 的核心思路是通过残差学习来克服退化问题同时结合批量规范化BN缓解梯度消失从而让极深网络的训练成为可能。2. ResNet 的整体设计风格ResNet 在设计上借鉴了 VGGNet 的简洁理念大量使用3×3 卷积核引入批量规范化层加速训练并稳定梯度。3. 残差块结构残差块是 ResNet 的基本单元其标准结构以 BasicBlock 为例如下具体流程输入经过3×3 卷积然后经过BN和ReLU激活再经过第二个3×3 卷积和BN此时还不激活在第二个 ReLU之前将当前结果与跳跃连接过来的原始输入逐元素相加相加后的结果再通过ReLU得到最终输出。跳跃连接的维度匹配相加操作要求两个张量的空间尺寸高、宽和通道数完全一致。当两者的通道数不同或者特征图尺寸需要缩减如步长不为 1时捷径连接上会加入一个1×1 卷积用合适的步长和输出通道数来调整输入使其与主路径的输出维度匹配然后再相加。4. 批量规范化层BN 以每个 mini-batch 为单位对数据进行归一化步骤为计算批次的均值 μ 与方差 σ²对输入进行归一化引入可学习的尺度参数 γ 和偏移参数 β进行线性变换这样做的好处稳定训练BN 使中间层的数据分布保持在较稳定的范围缓解了训练过程中由于参数更新导致的数据分布剧烈变化内部协变量偏移缓解梯度消失归一化后数据不会掉入激活函数的饱和区梯度能更有效地回传恢复表达能力如果仅做归一化数据会集中在 0 附近对于 Sigmoid 这类激活函数0 附近的梯度虽然不小但非线性弱通过让网络自己学习 γ 和 β可以将数据平移到非线性更强的区域从而保持网络的表达能力。z5. 总结残差块的跳跃连接让网络可以容易地学习恒等映射解决了深度网络中的退化问题使数百甚至上千层的网络成为可能批量规范化有效对抗梯度消失、加速收敛并降低对初始化的敏感性两者的结合共同成就了 ResNet 在深度学习和计算机视觉领域的里程碑地位。