ResNet 学习笔记

Abstract

开篇作者直入主题,讲述了文章的创新性是使用了残差学习网络结构。并且在ImageNet数据集比赛中,将残差网络做到了152层(是VGG网络的8倍)。在Cifar-10数据集上跑到了100层和1000层。作者还将数据集在COCO 物体识别数据集上进行了测试,提升了28%的输出效果。(这里面提到了特征表达的深度问题,比较关键)

Introduction

网络深度其实是图像分类的一个非常重要的方向,也可以说是比较绝对的一个方向。

这里面对于堆砌网络深度,有一个梯度消失,或者梯度爆炸的问题(其实就是后面层的梯度是前面层的累积的乘积,造成网络不稳定的一个问题,比较好的一种情况是连续乘积刚好平衡大于约等于1)困扰着简单的累加。解决的办法就是规范初始化,或者是BN算法(Batch Normalization,一种比较稳定的方法,通过每一层的输入进行归一化操作,保证每一层的输入数据分布是稳定的,从而可以加速网络的运行),这样就可以随心所欲的使用SGD了。

随着层数的加深,网络会退化,文中提到退化不是过拟合造成的,而是由加入更多的层会使模型进行错误的训练,作者也对此进行了证实。作者通过实验发现退化问题不是特别容易优化,几乎是所有都会面对的问题。

引入本文的主题深层残差学习框架来解决退化问题,通过给映射提高边界条件,潜在的映射表示为H(x),让堆叠的非线性层适合另一个映射F(x)=H(x)-x。这样原来的映射被重新定义为F(x)+x。它可以使用shortcut connections的前馈神经网络实现。对于某些点进行丢弃,跨越。 网络可以通过SGD对反向传播进行端到端的训练。

对于ImageNet 的比赛,作者得出了两个优点。1)残差网络适合优化深度网络,但是对于简单的叠加网络,会出现错误率高的问题。2)残差网络可以获得精确的增益,效果更好。

Related Work

VLAD,一种由残差向量关于字典的编码表示。用于解决一些偏微分方程(PDES),在求解过程会转化成一些子问题,多网格也会进行一些预处理。

Shortcut Connections,一种门控制策略。

Deep Residual Learning

Residual Learning

关于残差学习,残差的效果就是对于输出更加敏感,增加了输出变化对于权重的调整作用。Residual Net 核心思想是,去拟合残差函数 F(F=H(x)−g(x))F(F=H(x)−g(x)),选 g(x)=xg(x)=x 时效果最好。

Identity Mapping by Shortcuts

以下是何凯明的第二篇文章,比较了残差的输入是多少,当然是original好一些。shortcut连接相当于执行了同等映射,不会产生其他的参数,对于计算量也不会增加太多。整个网络还是一个端到端的反向传播训练。

Network Architectures

如图所示做了两种网络。

普通网络:以VGG为模板。用3X3的卷积过滤器,遵循的是两个简单的设计规则:1)特征图晓得相同,则各层的过滤器的数量是相同的 2)如果特征图的大小减半,那么过滤器的数量就会增加一倍,确保各个层之间的时间复杂度相同。用卷积层进行池化,层的步长为2。这个网络以一个全局平均池层和一个1000层的完全连接层和softmax作为终结。34层的当中含有36亿个FLOPs,是VGG-19的18%。

残差网络:对比了最右边的残差网络,维度增加了可以提供两种选择:1) short connection 仍然执行恒等映射,使用0来填充增加维度,不对额外的参数有要求  2) shortcut 用于匹配维数(1X1卷积完成),当shortcut融合两个大小的特征图时,他们执行的步长是2.

Implementation

文中提到对于图片进行了翻转,截取,像素减去平均等操作。使用了标准颜色增强的操作,在每次卷积和激活都使用batch normalization 操作进行归一化处理,防止梯度消失。SGD的批量大小是256,学习率是0.1,当误差停滞时,将学习率除以10,模型被训练多大60万次,使用0.0001的权重衰减,momentum的值设置为0.9.整体上采用了十字交叉验证的方法,为了得到比较好的结果,采用全卷积的形式,在多个尺度上平均得分。

 

Experiments

ImageNet Classification

普通网络,这里比较了34层网络及其子网络18层网络的错误率的结果,发现前者反而会更加大,34层网络始终具有更高的训练误差。在向前和向后的传播过程中,信号都具有非0的方差。由于使用了BN规范化,所以梯度消失的可能性会比较小。文中提出了收敛速度和训练误差其实是负相关的。

残差网络,自然是解决了训练误差在层数高反而高的问题。

Identity vs. Projection Shortcuts

采用了投影操作,对于三种操作进行了对比 1)填充0增加维度shortcut,这里不改变shortcut的参数 2)恒等shortcut操作  3)对shortcut采用投影

Deeper Bottleneck Architectures

右边是残差网络的升级板,1X1的目的是降维,让3X3的卷积作为一个低维输入输出的bottleneck。50层ResNet,模型有38亿个FLOPs,101层和152层ResNet

CIFAR-10 and Analysis

这里需要说的是,学习率取值0.1在层数比较大的时候会影响收敛性,会设置为0.01.

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值