残差网络的理解ResNet

Deep Residual Learning for Image Recognition 这篇论文已很有名

参考了大家阅读后的看法http://www.jianshu.com/p/e58437f39f65,也想聊聊自己阅读后的理解



       网络深度是影响深度卷积神经网络性能的一大因素,但是研究者发现当网络不断加深时,训练的结果并不好。这不是因为过拟合,因为过拟合的话应该是训练集上结果好,测试集不好,但深度网络出现的现象是训练集上的效果就不好。而且这种现象还会随着深度加深而变差。这并不符合逻辑,因为深层网络在训练时,可以是在浅层网络的函数上加上一个恒等变换。而深层网络显然没有把这种恒等变换学习到。因此,提出了Resnet。

网络结构是有好多个block组成,每个block的构成如下图,加入了一个shortcut connections  从函数上来看就是加入了一个恒等变换。



      从正向传播上来看,引入恒等变换可以使网络参数调整作用更大。这个地方引用下知乎上一个特别好的回答(http://www.jianshu.com/p/e58437f39f65)

“F是求和前网络映射,H是从输入到求和后的网络映射。比如把5映射到5.1,那么引入残差前是F'(5)=5.1,引入残差后是H(5)=5.1, H(5)=F(5)+5, F(5)=0.1。这里的F'和F都表示网络参数映射,引入残差后的映射对输出的变化更敏感。比如s输出从5.1变到5.2,映射F'的输出增加了1/51=2%,而对于残差结构输出从5.1到5.2,映射F是从0.1到0.2,增加了100%。明显后者输出变化对权重的调整作用更大,所以效果更好。残差的思想都是去掉相同的主体部分,从而突出微小的变化,看到残差网络我第一反应就是差分放大器”

     这位朋友的回答我觉得很形象。

     那么什么是更敏感,我觉得从反向传播上来看就是“梯度消失现象得以解决”。梯度是用来更新权值参数以使网络拟合的更好的,用误差项来求得,而误差项表征的其实就是对网络损失值的敏感程度(我是这么理解的)。所以说,加入了一个short connections 从反向传播上,给误差项来了一个直接向前面层的传播并相加,缓解了梯度的减小问题。从而解决了梯度消失。

猜你喜欢

转载自blog.csdn.net/qq_27292549/article/details/80473662