2015 ResNet
Resnet 受 VGG的设计启发做baseline:
卷积层多为3x3filter,相同output形状的层有相同个数滤波器,如果特征图变为一半大小,滤波器个数加倍(为了保存layer的时间复杂性)
进一步增加shortcut做resnet时,输入输出不变时就简单的加shortcut,但是遇到维度增加(64->128,128->256)时有两种选择:多余的dimension都补0(好处是不增加参数),或者用以下公式的线性映射,(利用1x1卷积做)。这两种方法都要以stride=2来做。
处理:
- 用ImageNet中的图片,随机resize[256,480]中的一个大小,然后crop成224x224. 减去均值。
- 应用论文:A. Krizhevsky, I. Sutskever, and G. Hinton. Imagenet classification with deep convolutional neural networks. In NIPS, 2012.中的标准颜色augment。
- 在每个CONV后,activation前加上BN层。
- 应用论文:K. He, X. Zhang, S. Ren, and J. Sun. Delving deep into rectifiers: Surpassing human-level performance on imagenet classification. In ICCV, 2015.中的初始化方法。
- mini-batch=256, 用SGD。weight decay 0.0001,momentum=0.9 初始化学习率为0.1,遇到error plateaus就除以10。
- 共迭代600,000次。
- 不用dropout。
网络结构:
图片.png 图片.png得出的主要结论有两个:
- 网络足够深的情况下,ResNet效果好
- 网络一般深,比如这里的18层,Res能在早期阶段提供更快的优化。
图片中ABC是ResNet三种不同参数方法:
A:ZERO PADDING 不增加任何参数
B:维度增加时应用线性映射matrix M
C:每一个shortcut都用线性映射
得出的结论:
差不多。C稍微比AB好,B稍微比A好。然而我么要考虑到时空消耗所以就不用C
文章又进行了Bottleneck 结构设计,如下图,最终采取右边的方式,第一个1x1卷积负责降维,后一个1x1用于升维。
在ImageNet上用的右边,做cifar10用的左边。
cifar10 中net结构cifar10实验参数:
- weight decay 0.0001 momentum 0.9;
- 用了上面说的那篇文章中的初始化,用了BN,没用dropout;
- minibatch=128 (在俩GPU中 。。)
- 初始化lr=0.1 在32k和48k时除以10,共训练了64k (在训练110层的时先用0.01预热到80error以下,约400iter,然后用0.1);
- 集合分配:45K/5K TRAIN/VAL;
- 图片每边pad4,随机crop32x32(cifar10是28x28原图好像);
Identity Mappings in Deep Residual Networks
本文主要是改进模型,更好训练。
初始公式,可以发现有两部分 左边:原文 右边:提出
如果初始公式能改成:
改进这样BP传递性质也很好
BP
网友评论