应用于图像识别的深度残差网络:ResNet

应用于图像识别的深度残差网络:ResNet

1.论文背景

《Deep Residual Learning for Image Recognition》ResNet是微软MSRA何凯明团队在2015年ImageNet上使用的网络,在当年的classification、detection、localization比赛中,ResNet均获了第一名的好成绩。

2.论文工作

作者首先提出了在加深网络深度进行训练时发现的问题:只是进行卷积层与池化层的叠加时,与浅层网络(比如20层)相比,随着网络层数的增加(比如56层),误差反而增大。

原因分析:随着网络加深,1.梯度消失或梯度爆炸问题加重;2.网络能力退化。

问题解决:

  • 对于问题1,作者在网络中加入了BN(BatchNormalization)层。
  • 对于问题2,作者提出了残差块(ResidualBlock)。

2.1 BN层

Batch Normalization是Google团队在2015年论文《Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift》中提出的。通常神经网络的输入满足一定分布的特征矩阵,但是随着神经元的非线性变换,会使得除了第一层之外其它层的输入不一定满足一定的分布了,从而网络难以快速收敛,难以训练。

BN的目的是使特征图满足均值为0,方差为1的分布规律,这里的特征图理论上是指整个训练样本集所对应特征图的数据要满足分布规律,也就是说要计算出整个训练集的特征图然后在进行标准化处理,但是这对于一个大的数据集明显是不可能做到的,所以这里是Batch Normalization,也就是计算一个Batch数据的特征图然后再进行标准化(batchsize越大越接近整个数据集的分布,效果越好)。

BN计算方法:
在这里插入图片描述

其中μ和σ平方分别是均值和方差,它们是在正向传递过程中统计得到的。ε是一个很小的值,用来防止分母为0。γ和β是可学习的两个参数,γ用来调整数值分布的方差大小,初始为1,β用来调节数值均值的位置,初始为0,这两个参数是在反向传播过程中学习得到的。

2.2 残差块

作者提出了两种残差块,如下图:
在这里插入图片描述

左边的结构针对于网络层数较少(34层)的网络结构。该结构主线将输入特征图经过2个深度64的3×3卷积,弧线(论文中叫shortcut)表示将主线处理后的特征图与原输入特征图进行一个相加,因此主分支输出应当与shortcut,也就是原输入特征图的shape必须相同,然后经过Relu激活函数。

右边的结构针对于网络层数较多(50/101/152层)的网络结构。该结构计算过程与左边结构类似,两个1×1卷积用分别来对特征图进行降维和升维。

2.3 34层ResNet网络结构

在这里插入图片描述

在这里插入图片描述

其中实弧线结构与上面说的残差块是一样的,它们的输入特征图和输出特征图shape是一样的。而虚弧线完成了特征图shape上的变换,即下采样,对应的是Conv3_x至Conv5_x中的第一次残差块,以Conv3_x中的第一个残差块为例,它的具体结构如下,右边虚线上的1×1卷积保证了主线输出和shortcut特征图shape上的一致:

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值