Deep Residual Learning for Image Recognition原论文名字
网络中的亮点:
1.超深的网络结构(突破1000层)
梯度消失和梯度爆炸
若每一层的误差梯度小于1,反向传播时,网络越深,梯度越趋近于0
反之,若每一层的误差梯度大于1,反向传播时,网路越深,梯度越来越大

1.2退化问题
在解决了梯度消失、爆炸问题后,仍然存在深层网络的效果可能比浅层网络差的现象

- 对于梯度消失或梯度爆炸问题,ResNet论文提出通过数据的预处理以及在网络中使用 BN(Batch Normalization)层来解决。
- 对于退化问题,ResNet论文提出了 residual结构(残差结构)来减轻退化问题,下图是使用residual结构的卷积网络,可以看到随着网络的不断加深,效果并没有变差,而是变的更好了。(虚线是train error,实线是test error)
2.提出residual模块

可以计算一下,假设两个残差结构的输入特征和输出特征矩阵的深度都是256维,如下图:(注意左侧结构的改动)
那么两个残差结构所需的参数为:
- 左侧:3 × 3 × 256 × 256 + 3 × 3 × 256 × 256 = 1 , 179 , 648
- 右侧:1 × 1 × 256 × 64 + 3 × 3 × 64 × 64 + 1 × 1 × 64 × 256 = 69 , 632
注:CNN参数个数 = 卷积核尺寸×卷积核深度 × 卷积核组数 = 卷积核尺寸 × 输入特征矩阵深度 × 输出特征矩阵深度
明显搭建深层网络时,使用右侧的残差结构更合适。

以34层网络结构为例


首先是一个77的卷积层,第二层一个33的最大池化下采样操作,在这里又将残差结构分为conv2_x一系列残差结构(对应图中使用了三个),conv3_x一系列残差结构(4个),conv4_x一系列残差结构(6个),conv5_x一系列残差结构(3个),然后就是平均池化下采样和全连接层。
residual结构


3.使用Batch Normalization加速训练(丢弃dropout)


注意的是这里的计算是一批数据所有在这一通道上的均值和方差

下面是BN求解的一个实例,得到的是矩阵结果




版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/156148.html