残差网络(Residual Network,ResNet)是由微软亚洲研究院的何凯明等人于2015年提出的一种深度卷积神经网络结构。其主要目标是解决深层神经网络训练过程中的梯度消失和梯度爆炸问题,使得网络可以更深、更容易训练,并取得更好的性能。
ResNet的核心思想是引入了残差模块,通过在模块内部引入跳跃连接(skip connection)来直接将输入信息传递到后续层,从而使得网络可以更容易地学习到残差部分。这种设计有助于缓解梯度消失的问题,允许信号在网络中能够更容易地向前传播。
具体来说,ResNet中的每个基本模块(basic block)包含两个或三个卷积层,在卷积层之间使用了跳跃连接。对于两个卷积层的基本模块,
其计算公式为
H(x) = F(x) + x,
其中 F(x) 表示卷积操作的输出,x 表示输入的特征图。
对于三个卷积层的基本模块,其计算公式为 H(x) = F(x) + Wx,其中 Wx 表示对输入进行线性投影,使得维度相适应。
ResNet通过堆叠多个基本模块来构建深层网络。同时,在网络的第一个卷积层之前和最后一个基本模块之后,ResNet还引入了池化层和全连接层,用于特征提取和分类。
ResNet的优点主要体现在以下几个方面:
1. 允许更深的网络:由于残差连接的存在,梯度可以更容易地传播,使得网络可以更深、更复杂,而不会出现梯度消失或梯度爆炸的问题。
2. 网络性能更好:相比于同样层数的普通神经网络,ResNet可以获得更好的训练和测试精度,尤其在处理大规模图像数据集时效果显著。
3. 参数量更少:由于使用了跳跃连接,ResNet可以有效地减少网络中参数的数量,从而降低过拟合的风险,节省计算资源。