ResNet论文笔记

ResNet 论文笔记

Deep Residual Learning for Image Recognition

在这里插入图片描述

论文第一页就放了这张图,左边是训练误差,右边是测试误差,CIFAR-10数据集,不加残差连接,20层和56层的网络。很明显,不加残差连接的情况下,越深的网络训练误差测试误差都更高。

部分要点:

1.引入了残差设计,能训练更深的网络,并且模型的复杂度不会显著上升

2.残差优化更容易,随着深度增加准确率会上升

3.没用dropout

Introduciton部分:

作者在第一段强调了深度的重要性,越深学到的语义信息更多。

在第二段提出问题:*是不是仅仅堆叠更多层就能学好?*网络的加深会出现梯度消失/爆炸的问题,用Xavier initialization(?)和归一化层(?)可以避免,但仅限浅层。

网络变深的时候性能会下降,准确度饱和后会迅速下降。而这不是由过拟合造成的(过拟合训练误差小,测试误差大,但这种情况两个误差都很大),层数变高训练误差也会变高。训练误差的下降表明并不是所有网络都是很容易优化的。

接下来很重要

我们设想一个浅层网络和它的深层的版本,构建深层版本有一种解决方案:多出来的层的权重都一一对应(identity mapping,输入x输出也是x),原来的层保持不变。这么构造的深层网络本来训的练误差应该不会比浅层的高,但是实验表明sgd找不到更好的解(或者说,在有限时间内找不到)。

resnet论文提出残差连接解决退化(性能下降)问题。(显示构造identity mapping)

在这里插入图片描述

H(x)是要求解的映射(几个堆叠的层要去拟合的),x是浅层给的feature,那么我们可以将这个问题转换为求解残差映射函数,也就是F(x)=H(x)-x,F(x)称为resnet funciton。x是一个跳跃连接,相当于执行identity mapping(恒等映射),没有添加额外参数,不会增加计算复杂度。

那么求解的问题变成了H(x)=F(x)+x。要让输入等于输出的话,F(x)=0就行了。原始的hx需要多个非线性层拟合,实际很难实现。残差网络如果训练到了最优,残差更容易变成0,即实现了恒等映射。残差函数F同样适合卷积层。

在这里插入图片描述

上图是VGG19,34层普通深层网络和加了残差的34层网络的架构。

如果输入和输出维度不同时是无法进行相加操作的(即F(x)和x的维度大小不一样)

当输入维度和输出相等时可以直接使用跳跃连接,但当F(x)维度变大时需要对x进行升维(文章中是说线性投影),才能进行计算。方法有两种:

1.0填充。(这个操作不会增加额外的参数)

2.采用1*1卷积。

Implementation

图片随着短边重新缩放,短边在[256,480]区间随机采样。从一个图(或其水平反转后的图)上随机裁剪224*224,并减去每个像素均值。使用色彩增强(提高对比度?), 在每次卷积之后和激活函数(?)之前使用batch normalization (BN)。初始化权重。mini-batchsize=256,学习率0.1,当错误率停滞时除以10,iterations=600000。权重衰减0.0001,momentum=0.9。

Experiments

在这里插入图片描述

FLOPs代表计算多少个浮点运算。由图4可见,深的resnet训练的动,而plain版本的就训练不动了。越深resnet的error效果

表1表示不同深度resnet的架构,其中每个模块如下图所示:

在这里插入图片描述

第一种block比较好理解,3* 3* 64的卷积。第二种design叫bottleneck,因为两头维度大,中间维度小,两个1*1卷积核用于降维和升维,第二个3 * 3卷积等于第一个design的第二个卷积。两种设计都有相似的时间复杂度。无参的跳跃连接很重要,减少了很多参数。

在这里插入图片描述

实验结果,越深的resnet网络top-1错误率越低,plain版本越深错误率越高。

在这里插入图片描述

这里可以看出越深resnet的效果是越好的,但是达到了1000层之后出现了一点overfitting,错误率上升,但没那么严重。

网络平稳不变(收敛)意味着train不动了,而不是找到了最优解

关于为什么resnet深层训练的动:

解释很多,一种解释:

在这里插入图片描述

求导之后的蓝色公式,就算方框内的梯度(原本的)小于1,相对来说非常小,右边的求导加上后梯度仍然较大,使得网络仍然能保持一个较大的梯度。

虽然层数深,但是内在的模型的复杂度不高,加了残差连接(手动引导网络)之后可能模型的复杂度降低了,过拟合没那么严重。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值