分类网络 resnet

本文详细介绍了ResNet(残差网络)的由来,指出深度学习网络在达到一定深度后性能退化的现象,并引入ResNet的创新结构——残差块。残差块允许网络更容易学习微小变化,通过1*1卷积实现Bottleneck模块,减小模型计算量。ResNet50的layer1-4结构分析展示了如何通过不同步长和通道数调整实现特征学习与尺寸变化。此外,downsample操作在保持模型性能的同时降低了计算复杂度。
摘要由CSDN通过智能技术生成

1. resnet由来

一般印象当中,深度学习网络越深(复杂,参数多)越有着更强的表达能力,可后来我们发现当网络达到一定深度后,再一味地增加网络层数并不能带来网络的性能提高反而会招致网络收敛变得更慢,分类准确率也变得更差网络性能退化)。

2. 残差网络和普通网络结构对比

在ResNet中,右图结构单元叫残差块。

残差块有如下优点:

1. 易实现H(x)=x,其只需将权重值设定为0

2. 易实现H(x)=x + delta(x),便于网络对微小波动进行调节(残差的思想都是去掉相同的主体部分,从而突出微小的变化)

3. Bottleneck模块

Bottleneck模块通过1*1卷积降维再进行卷积操作,从而缩小模型训练和预测所需的时间以及模型的大小。

并通过在1*1的卷积进行升维保证输出达到指定的维度。对最终的模型精度并无影响

4. Res50结构分析

4.1 layer 1

ResNet50 layer1

和Basicblock不同的一点是,每一个Bottleneck都会在输入和输出之间加上一个卷积层,只不过在layer1中还没有downsample,这点和Basicblock是相同的。至于一定要加上卷积层的原因,就在于Bottleneck的conv3会将输入的通道数扩展成原来的4倍,导致输入一定和输出尺寸不同。

layer1的3个block结构完全相同,所以图中以“×3 \times 3×3”代替。

4.2  layer 2

ResNet50 layer2

尺寸为256×56×56 256\times56\times56256×56×56的输入进入layer2的第1个block后,首先要通过conv1将通道数降下来,之后conv2负责将尺寸降低(stride=2,图6从左向右数第2个红圈标注)。到输出处,由于尺寸发生变化,需要将输入downsample,同样是通过stride=2的1×1 1\times11×1卷积层实现。

之后的3个block(layer2有4个block)就不需要进行downsample了(无论是residual还是输入),如图6从左向右数第3、4个红圈标注,stride均为1。因为这3个block结构均相同,所以图6中用“×3 \times 3×3”表示。

4.3  layer3-4

layer3和layer4结构和layer2相同,无非就是通道数变多,输出尺寸变小,就不再赘述。

参考资料:

ResNet网络结构分析: https://zhuanlan.zhihu.com/p/79378841

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值