网络加深,精度会提高,但过深会产生梯度消失问题,此时精度达到饱和,可能还会下降。为了让模型能尽可能深,同时避免梯度消失(motivation),因此作者提出一个深度残差学习框架(deep residual learning framework)(idea)。
深度残差学习
残差模块
输入:X
有参网络层,比如AlexNet/VGG等:H
输出:y = H(X)
输入、输出之间的残差:H(X)- X
残差块的输出:H(X) = F(X)+ X
残差映射:F(X) = F(X, {W})
误差和残差的区别:
误差:观测值和真实值之间的差距
残差:预测值和观测值之间的差距。
作者给出的解释是,网络的一层通常可以看做Y = H(X), 而残差网络的一个残差块可以表示为 H(X) = F(X )+ X ,也就是 F(X) = H(X) - X ,在单位映射中, Y = X 便是观测值,而 H(X) 是预测值,所以F(X)便对应着残差,因此叫做残差网络。
参考链接: https://zhuanlan.zhihu.com/p/42706477.
identity mapping
图二中左边一条支路记为F(X),输出是F(X) + X,如果F(X)的输入和输出是相同通道数,可以实现直接相加;当通道数不同时,需要对X进行升维或者降维,我们就需要考虑建立一种有效的identity mapping函数,从而可以使得处理后的输入X与输出Y的通道数目相同即Y = F(X, Wi) + Ws*X,作者尝试了两种identity mapping的方式。一种即简单地将X相对Y缺失的通道直接补零从而使其能够相对齐的方式,另一种则是通过使用1x1的conv来表示Ws映射从而使得最终输入与输出的通道达到一致的方式。
参考链接:https://www.jianshu.com/p/93990a641066.
最后
原理看这个https://zhuanlan.zhihu.com/p/42706477
代码解释看这个https://www.cnblogs.com/jiyou/p/11272650.html
ResNet通过深度残差学习框架解决了深度网络的梯度消失问题,允许网络更深。残差块中,输入与经过有参网络层的输出相加,形成残差映射。identity mapping在通道数不同情况下,通过补零或1x1卷积保持输入输出通道一致。
557

被折叠的 条评论
为什么被折叠?



