前言:
由于以往的网络模型都是层层叠加,网络的层次太深,导致了浅层的参数不敏感,从而出现了网络退化、梯度消失等问题。都是因为反向传播中的链式法则都是相乘,在求梯度时,都在(0,1)之间,层层缩小,就会出现梯度消失,反之,梯度大于1,就是梯度爆炸。
于是出现了Resnet网络,该网络模型中的核心结构(残差结构)解决了网络退化的问题,即在求梯度时,对x求导时出现了加法。
结构图:
原始的34层-Resnet网络:
添加残差结构的34层-Resnet网络:
残差结构:
残差结构讲解:
在正常的神经网络中,增加一个分支,可以理解为一条高速公路,简单来说,就是将数据原样传输,直接对结果产生影响,使网络的输出不再是单纯卷积的输出,而是拥有原始特征和提取出来的特征,是一种加法而不是拼接,使梯度敏感,能够让浅层特征与深层特征结合(F(x)+x),使提取的特征效果更好,并且前提是要求前后的通道数是一致的。
Resnet的网络结构:
可以看出Resnet模型由多个残差模块堆叠起来,主要分为5个卷积块和一个pooling层,首先通过第一个卷积块进行下采样。以34层Resnet网络为例,添加虚线残差结构,目的是为了进行通道数的改变,来保持主分支与short cut的输出维度相同。