ResNet的网络结构

ResNet网络结构

ResNet也就是深度残差网络,其实深度残差网络就是把一串的训练,分成了一个个的block去训练,让每一个block的误差最小,最终达到整体误差最小的目的,避免了训练过程中出现梯度消失。

对于传统的CNN网络,简单的增加网络的深度,容易导致梯度消失和爆炸。既然这样,针对梯度消失和爆炸的解决方法一般方法是正则初始化(normalized initialization)和中间的正则化层(intermediate normalization layers),但是这会导致另一个问题,退化问题,随着网络层数的增加,在训练集上的准确率却饱和甚至下降了。这个和过拟合不一样,因为过拟合在训练集上的表现会更加出色。

残差学习结构通过前向神经网络+shortcut链接实现,其中shortcut连接相当于简单执行了同等映射,不会产生额外的参数,也不会增加计算复杂度。整个网络依旧可以通过端到端的反向传播训练。

ResNet网络结构:
ResNet的网络结构
计算细节:
ResNet的网络结构
这里引入一个两层神经网络, ResNet的网络结构
其中,g(x)为**函数,常用 relu。
ResNet的网络结构
在残差网络中,直接将a[l]加入到a[l+1]后面的下一个的**函数前,
ResNet的网络结构
加上了这个产生的残差代码块。