2.2 残差网络(Residual Networks (ResNets))

人为地让神经网络某些层跳过下一层神经元的连接,隔层相连,弱化每层之间的强联系,这种神经网络被称为Residual Networks(ResNets)

Residual Networks由许多隔层相连的神经元子模块组成,称之为Residual block(残差块)。单个Residual block的结构如下图所示:

紫色线是skip connection(跳跃连接),直接建立a[l]a^{[l]}a[l+2]a^{[l+2]}之间的隔层联系。相应的表达式如下:

z[l+1]=W[l+1]a[l]+b[l+1]z^{[l+1]}=W^{[l+1]}a^{[l]}+b^{[l+1]}
a[l+1]=g(z[l+1])a^{[l+1]}=g(z^{[l+1]})
z[l+2]=W[l+2]a[l+1]+b[l+2]z^{[l+2]}=W^{[l+2]}a^{[l+1]}+b^{[l+2]}
a[l+2]=g(z[l+2]+a[l])a^{[l+2]}=g(z^{[l+2]}+a^{[l]})

a[l]a^{[l]}直接隔层与下一层的线性输出相连,a[l]a^{[l]}插入的时机是在线性激活之后,ReLU激活之前,与z[l+2]z^{[l+2]}共同通过激活函数(ReLU)输出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

Was this helpful?