图像分类算法ResNet论文解读

论文名称:Deep Residual Learning for Image Recognition

论文地址:https://arxiv.org/pdf/1512.03385.pdf

代码地址:https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/slim/python/slim/nets/resnet_v1.py

 

ResNet的贡献在于,不直接训练多层卷积层网络H(x),而是训练输入x和输出之间的残差函数F(x)=H(x)−x,解决了梯度弥散问题,训练了更深的网络,模型没有更复杂,但准确率提升。

 

一、论文理解

1、网络退化问题

随着网络的加深,梯度弥散问题会越来越严重,导致网络很难收敛甚至无法收敛。梯度弥散问题目前有很多的解决办法,包括网络初始标准化,初始数据标准化以及中间层标准化(Batch Normalization)等。但是网络加深还会带来另外一个问题:随着网络加深,出现训练集准确率下降的现象,如下图:

然而,由图知,这并不是由过拟合引起的。

 

2、ResNet训练更深层次的网络

由于梯度消失/爆炸问题阻止训练的收敛,深层次的网络往往难以训练,ResNet提出了残差学习框架以简化深层的网络训练,为输入层定义残差函数,而不是直接训练卷积神经网络。ResNet训练了深度高达152层的残差网络(比VGG网络深8倍),但仍然具有较低的复杂度,产生的结果也更精确,在2015年的ILSVRC分类任务中获得第一名。

 

3、残差表示

ResNet 的出发点是,在一个浅层的网络模型上进行改造,将新的模型与原来的浅层模型相比较,改造后的模型至少不应该比原来的模型表现要差,极端情况下,新加层的结果为 0,这样它就等同于原来的模型了。

假设现在有一个由2个卷积层堆叠的卷积栈,将这个栈的输入/输出之间的原始映射称为 underlying mapping,ResNet 用 residual mapping 去替换underlying mapping。将 underlying mapping 标记为 H(x) ,将经过堆叠的非线性层产生的 mapping 标记为 F(x)=H(x)−x ,最原始的映射就被强制转换成 F(x)+x,这种恒等映射学习起来更容易。

 

4、正向传播与反向传播

假设卷积栈的输入为x,则输出可以定义为:

为卷积栈的输入,为卷积栈的输出,则残差网络正向传播公式为,加和是指第l层和L-1层之间的残差F(x):

ε 代表的是 loss 方程,由链式求导法得:

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值