ResNet残差网络论文总结

2017-03-30  本文已影响0人  SIAAAAAA

2015 ResNet

Resnet 受 VGG的设计启发做baseline:
卷积层多为3x3filter,相同output形状的层有相同个数滤波器,如果特征图变为一半大小,滤波器个数加倍(为了保存layer的时间复杂性)
进一步增加shortcut做resnet时,输入输出不变时就简单的加shortcut,但是遇到维度增加(64->128,128->256)时有两种选择:多余的dimension都补0(好处是不增加参数),或者用以下公式的线性映射,(利用1x1卷积做)。这两种方法都要以stride=2来做。

图片.png

处理:

  1. 用ImageNet中的图片,随机resize[256,480]中的一个大小,然后crop成224x224. 减去均值。
  2. 应用论文:A. Krizhevsky, I. Sutskever, and G. Hinton. Imagenet classification with deep convolutional neural networks. In NIPS, 2012.中的标准颜色augment。
  3. 在每个CONV后,activation前加上BN层。
  4. 应用论文:K. He, X. Zhang, S. Ren, and J. Sun. Delving deep into rectifiers: Surpassing human-level performance on imagenet classification. In ICCV, 2015.中的初始化方法。
  5. mini-batch=256, 用SGD。weight decay 0.0001,momentum=0.9 初始化学习率为0.1,遇到error plateaus就除以10。
  6. 共迭代600,000次。
  7. 不用dropout。

网络结构:

图片.png 图片.png

得出的主要结论有两个:

  1. 网络足够深的情况下,ResNet效果好
  2. 网络一般深,比如这里的18层,Res能在早期阶段提供更快的优化。
图片.png

图片中ABC是ResNet三种不同参数方法:
A:ZERO PADDING 不增加任何参数
B:维度增加时应用线性映射matrix M
C:每一个shortcut都用线性映射
得出的结论:
差不多。C稍微比AB好,B稍微比A好。然而我么要考虑到时空消耗所以就不用C
文章又进行了Bottleneck 结构设计,如下图,最终采取右边的方式,第一个1x1卷积负责降维,后一个1x1用于升维。

left:optionA right:bottleneck

在ImageNet上用的右边,做cifar10用的左边。

cifar10 中net结构

cifar10实验参数:

  1. weight decay 0.0001 momentum 0.9;
  2. 用了上面说的那篇文章中的初始化,用了BN,没用dropout;
  3. minibatch=128 (在俩GPU中 。。)
  4. 初始化lr=0.1 在32k和48k时除以10,共训练了64k (在训练110层的时先用0.01预热到80error以下,约400iter,然后用0.1);
  5. 集合分配:45K/5K TRAIN/VAL;
  6. 图片每边pad4,随机crop32x32(cifar10是28x28原图好像);
cifar10 不同模型结果

Identity Mappings in Deep Residual Networks

本文主要是改进模型,更好训练。


初始公式,可以发现有两部分 左边:原文 右边:提出

如果初始公式能改成:

改进

这样BP传递性质也很好

BP
上一篇下一篇

猜你喜欢

热点阅读