【论文阅读】Deep Residual Learning

1.研究背景

【论文阅读】Deep Residual Learning_第1张图片

在深度学习中,随着网络层数的增加,模型一般会出现过拟合、梯度消失或爆炸的问题,分别可以通过正则化、Batch Normalization来解决。那么,是否只要不断地增加网络的层数,就能获得更好的结果呢?实验数据表明网络会出现退化(degradation)的现象:随着网络层数的增加,训练集loss逐渐下降并趋于饱和,当网络层数继续增加时,训练集loss反而会增大。这时,浅层网络反而比深层网络有更好的训练效果。

2.相关工作

Highway Networks

所谓Highway Networks,就是输入某一层网络的数据一部分经过非线性变换,另一部分直接从该网络跨过去不做任何转换,就想在高速公路上行驶一样,而多少的数据需要非线性变换,多少的数据可以直接跨过去,是由一个权值矩阵和输入数据共同决定的。下面是Highway Networks的构造公式:

y=H(x,W_{H})\cdot T(x,W_{T})+x\cdot C(x,W_{C})

3.残差网络

(1)残差单元

【论文阅读】Deep Residual Learning_第2张图片

H(x)=F(x)+x

F(x)=H(x)-x

(2)残差结构对梯度的影响

【论文阅读】Deep Residual Learning_第3张图片

【论文阅读】Deep Residual Learning_第4张图片【论文阅读】Deep Residual Learning_第5张图片

虽然残差网络提出的初衷并不是为了解决梯度消失的问题,但作者发现确实可以比普通网络更有效地消除梯度消失。

(3)恒等映射的必要性

【论文阅读】Deep Residual Learning_第6张图片

(4)Shortcut Connections

【论文阅读】Deep Residual Learning_第7张图片

实线:identity shortcuty=F(x,{W_{i}})+x

虚线:projection shortcut y=F(x,{W_{i}})+W_{s}xWs{_{}}表示1*1卷积

(5)1*1卷积

  • 改变维度

输入图片:n*n*n_{channels}

卷积核:n_{kernels} 个 ,1*1*n_{channels}

输出图片:n*n*n_{kernels}

【论文阅读】Deep Residual Learning_第8张图片

inputpicture:Rlayer,Glayer,Blayer

purplelayer=α1×Rlayer+α2×Glayer+α3×Blayer

yellowlayer=β1×Rlayer+β2×Glayer+β3×Blayer

outputpicture:purplelayer,yellowlayer

可以看出,1*1卷积类似于神经网络的全连接层。新的层就是输入feature map的线性组合,从而实现通道数的增加或减少。

  • 减少参数

【论文阅读】Deep Residual Learning_第9张图片

a该层的参数为(1x1x192x64)+(3x3x192x128)+(5x5x192x32) =387072
b该层的参数为(1x1x192x64)+(1x1x192x96)+(1x1x192x16)+(3x3x96x128)+(5x5x16x32)+(1x1x192x32)=163328

(6)Bottleneck结构

【论文阅读】Deep Residual Learning_第10张图片

256维的bottleneck结构和原来64维的block的时间复杂度(FLOP=Floating point operations per second)一样,缩短了训练时间。152层的ResNet的复杂度比VGG-16/19还要低。

4.网络架构

【论文阅读】Deep Residual Learning_第11张图片

每层都用‘0’填充(padding=‘SAME’),因此每层输出的特征图尺寸只和步长有关,与卷积核大小无关。每层中有一个残差块的步长为2(stride=2),其他都为1

ResNet-34

【论文阅读】Deep Residual Learning_第12张图片

 

你可能感兴趣的:(深度学习)