ResNet:   (参考:ResNet解析

  • 随着网络的加深,出现了训练集准确率下降的现象,这不是由于Overfit过拟合造成的 (过拟合的情况训练集应该准确率很高) ,故此引入深度残差网络;
  • ResNet提出了两种mapping:一种是identity mapping  深度网络解析之-ResNet 部分,指的就是图中”弯弯的曲线”,另一种residual mapping 深度网络解析之-ResNet 残差部分,指的就是除了”弯弯的曲线“那部分,所以最后的输出是 深度网络解析之-ResNet
  • 如果继续加深网络,Resnet提供上述两种选择方式,如果网络已经到达最优residual mapping将被push为0只剩下identity mapping,这样理论上网络一直处于最优状态了,网络的性能也就不会随着深度增加而降低了。
  • 使用了一种叫做 “shortcut connection” 的连接方式 (即图中弧线)
  • 深度网络解析之-ResNet

 

Building Block:

  • 下图两种结构分别针对ResNet34(左图)和ResNet50/101/152(右图),整个结构为一个”building block“。右图又称为”bottleneck design”,目的是为了降低参数的数目和计算量:
  • 第一个1x1的卷积把256维channel降到64维,在最后通过1x1卷积恢复,参数数目:1x1x256x64 + 3x3x64x64 + 1x1x64x256 = 69632,而不使用bottleneck的话就是两个3x3x256的卷积,参数数目: 3x3x256x256x2 = 1179648,差了16.94倍。 
  • 对于常规ResNet,可以用于34层或者更少的网络中,对于Bottleneck Design的ResNet通常用于更深的如101这样的网络中。

深度网络解析之-ResNet

 

其他:

  • 如果 深度网络解析之-ResNet 和 深度网络解析之-ResNet 的 channel 不相同,则输出变为 深度网络解析之-ResNet,其中W是新的映射(projection shortcut),一般采用1x1的卷积; 或者用 Zero Padding 增加维度,此时一般要先做一个down sampling,可以采用strde=2的pooling;
  •  没有pooling层,通过 stride=2 的卷积控制特征图尺寸;
  • 用global average pool层替换了全连接层;
  • 残差学习需要学习的内容少,学习相对更容易,依据链式求导反向传播误差,可得不会出现梯度消失(详解 reference);
  • ResNet的一个重要设计原则是:当feature map大小降低一半时,featuremap的数量增加一倍,这保持了网络层的复杂度。
  • ResNet50 和 ResNet101 网络都分成5部分:conv1,conv2_x,conv3_x,conv4_x,conv5_x,其区别在于conv4_x,ResNet50有6个building block,而ResNet101有23个building block,差了17个block,即17 x 3 = 51层。(层数仅指卷积层和全连接层)

相关文章:

  • 2021-10-22
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-12
  • 2021-08-14
  • 2021-08-28
猜你喜欢
  • 2021-11-28
  • 2021-08-11
  • 2022-01-05
  • 2021-08-02
  • 2021-08-30
  • 2021-08-13
  • 2021-08-14
相关资源
相似解决方案