人为地让神经网络某些层跳过下一层神经元的连接,隔层相连,弱化每层之间的强联系,这种神经网络被称为Residual Networks(ResNets)
Residual Networks由许多隔层相连的神经元子模块组成,称之为Residual block(残差块)。单个Residual block的结构如下图所示:
arrow-up-right
紫色线是skip connection(跳跃连接),直接建立a[l]a^{[l]}a[l]与a[l+2]a^{[l+2]}a[l+2]之间的隔层联系。相应的表达式如下:
a[l]a^{[l]}a[l]直接隔层与下一层的线性输出相连,a[l]a^{[l]}a[l]插入的时机是在线性激活之后,ReLU激活之前,与z[l+2]z^{[l+2]}z[l+2]共同通过激活函数(ReLU)输出a[l+2]a^{[l+2]}a[l+2]
这种模型结构对于训练非常深的神经网络效果很好。非Residual Networks称为Plain Network
Residual Network的结构
Plain Network
与Plain Network相比,Residual Network能够训练更深层的神经网络,有效避免发生发生梯度消失和梯度爆炸
随着神经网络层数增加,Plain Network实际性能会变差,training error甚至会变大
Residual Network的训练效果却很好,training error一直呈下降趋势
Last updated 6 years ago