ResNet网络

寒假前学习了ResNet网络,开学后又重新复习了一遍。

ResNet在2015年由微软实验室提出,斩获当年ImageNet竞赛中分类任务第一名,目标检测第一名。获得COCO数据集中目标检测第一名,图像分割第一名。

ResNet是一种具有跳跃连接和批量归一化的新型CNN架构,能训练一个152层的神经网络,通过堆叠的层集合学习残差,批量归一化在每个卷积之后、激活之前进行运用。 ResNet 网络的训练误差会随着层数增大而逐渐减小,并且在测试集上的表现也会变好。

在ResNet推出后不久,Google就借鉴了ResNet 的精髓,提出了Inception V4和Inception-ResNet-V2.并通过融合这两个模型,在ILSVRC数据集上取得了惊人的3.08%的错误率。

1.ResNet网络中的亮点

  • 超深的网络结构(突破1000层)
  • 提出residual模块(残差模块)
  • 使用Batch Normalization加速训练(丢弃dropout)

为什么不用VGG一直叠加,也可以达到1000层?

在这里插入图片描述
如上图,简单地通过卷积层和最大化池化采样层堆叠网络行不通。层数越多,错误率越大。

     随着网络层数不断加深,随之而来的就是梯度消失或者梯度爆炸问题。即使解决了以上问题(论文用BN方法),仍会有退化问题,即层数深的网络依旧没有层数少的网络效果好(论文中用残差结构解决)。

residual结构:

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

其中右图11的卷积核用来降维和升维。如11,64就是保持高宽不变,使得深度由256-d变为64-d。

那什么时候使用实线的shortcut,什么时候使用虚线残差结构呢?当输入特征矩阵和输出特征矩阵shape不同的时候使用虚线残差结构。如下图


屏幕快照 2021-03-05 下午2.46.15.png
如下图是原论文中给出的参数列表。

屏幕快照 2021-03-05 下午2.48.21.png
上表一共提出了5中深度的ResNet,分别是18,34,50,101和152,首先看表的最左侧,我们发现所有的网络都分成5部分,分别是:conv1,conv2_x,conv3_x,conv4_x,conv5_x,之后的其他论文也会专门用这个称呼指代ResNet50或者101的每部分。 例如:101-layer那列,101-layer指的是101层网络,首先有个输入7x7x64的卷积,然后经过3 + 4 + 23 + 3 = 33个building block,每个block为3层,所以有33 x 3 = 99层,最后有个fc层(用于分类),所以1 + 99 + 1 = 101层,确实有101层网络; 注:101层网络仅仅指卷积或者全连接层,而激活层或者Pooling层并没有计算在内;我们关注50-layer和101-layer这两列,可以发现,它们唯一的不同在于conv4_x,ResNet50有6个block,而ResNet101有23个block,两者之间差了17个block,也就是17 x 3 = 51层。

对于我们ResNet50/101/152,其实在conv2_x所对应的一系列残差结构的第一层也是虚线残差结构。因为它需要调整输入特征矩阵的channel,根据表格可知通过3x3的max pool之后输出的特征矩阵shape应该是[56, 56, 64],但我们conv2_x所对应的一系列残差结构中的实线残差结构它们期望的输入特征矩阵shape是[56, 56, 256](因为这样才能保证输入输出特征矩阵shape相同,才能将捷径分支的输出与主分支的输出进行相加)。所以第一层残差结构需要将shape从[56, 56, 64] --> [56, 56, 256]。注意,这里只调整channel维度,高和宽不变(而conv3_x, conv4_x, conv5_x所对应的一系列残差结构的第一层虚线残差结构不仅要调整channel还要将高和宽缩减为原来的一半)。

BN(Batch Normalization):

目的:使一批(Batch)feature map满足均值为0,方差为1的分布规律

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汪呀呀呀呀呀呀呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值