ResNet要点概述

(ResNet)Deep Residual Learning for Image Recognition

解决的问题: 网络越深,梯度消失的现象就越来越明显,则检测效果越来越差。

残差指的是什么?
其中ResNet提出了两种mapping(映射):一种是identity mapping,指的就是结构图中”弯弯的曲线”,另一种residual mapping,指的就是除了”弯弯的曲线“那部分。
最后的输出是 y=F(x)+x
identity mapping顾名思义,就是指本身,也就是公式中的x,
而residual mapping指的是“差”,也就是y−x,所以残差指的就是F(x)部分。

ResNet结构:
在这里插入图片描述
原理: 因为原数据x也一起用了,所以最差的效果是weight为0,此时残差F(x)为0,而当该部分有改进,就比原来的好。


ResNet结构设计:
在这里插入图片描述
这两种结构分别针对ResNet34(左图)和ResNet50/101/152(右图),一般称整个结构为一个”building block“。
其中右图又称为”bottleneck design”,使用1×1卷积的目的就是为了降低参数的数目。
(具体计算:第一个1x1的卷积把256维channel降到64维,然后在最后通过1x1卷积恢复,整体上用的参数数目:1x1x256x64 + 3x3x64x64 + 1x1x64x256 = 69632,而不使用bottleneck的话就是两个3x3x256的卷积,参数数目: 3x3x256x256x2 = 1179648,差了16.94倍。)


问题: 如果F(x)和x的channel个数不同怎么办?(卷积层相加需channel相同)
在这里插入图片描述
实线为同纬度相加,虚线为不同维度相加。
实线的连接部分都是执行3x3x64的卷积,他们的channel个数一致,所以采用计算方式:
y=F(x)+x
虚线的连接部分分别是3x3x64和3x3x128的卷积操作,他们的channel个数不同(64和128),所以采用计算方式:
y=F(x)+Wx
其中W是卷积操作,用来调整 x 的channel维度的;

ResNet不同结构参数表:
在这里插入图片描述

详细资料参考:
https://blog.csdn.net/lanran2/article/details/79057994

猜你喜欢

转载自blog.csdn.net/as6689093/article/details/83042506