论文学习-系统评估卷积神经网络各项超参数设计的影响-Systematic evaluation of CNN advances on the ImageNet

 博客:blog.shinelee.me | 博客园 | CSDN

写在前面

论文状态:Published in CVIU Volume 161 Issue C, August 2017
论文地址:https://arxiv.org/abs/1606.02228
github地址:https://github.com/ducha-aiki/caffenet-benchmark

在这篇文章中,作者在ImageNet上做了大量实验,对比卷积神经网络架构中各项超参数选择的影响,对如何优化网络性能很有启发意义,对比实验包括激活函数(sigmoid、ReLU、ELU、maxout等等)、Batch Normalization (BN)池化方法与窗口大小(max、average、stochastic等)、学习率decay策略(step, square, square root, linear 等)、输入图像颜色空间与预处理、分类器设计、网络宽度、Batch size数据集大小数据集质量等等,具体见下图

Table 1: List of hyper-parameters tested

实验所用的基础架构(Baseline)从CaffeNet修改而来,有以下几点不同:

  1. 输入图像resize为128(出于速度考虑)
  2. fc6和fc7神经元数量从4096减半为2048
  3. 网络使用LSUV进行初始化
  4. 移除了LRN层(对准确率无贡献,出于速度考虑移除)

所有性能比较均以基础架构为Baseline,实验中所有超参数调整也都是在Baseline上进行,Baseline accuracy为47.1%,Baseline网络结构如下

Baseline Network

论文实验结论

论文通过控制变量的方式进行实验,最后给出了如下建议:

  • 不加 BN时使用 ELU,加BN时使用ReLU(加BN时,两者其实差不多)
  • 对输入RGB图学习一个颜色空间变换,再接网络
  • 使用linear decay学习策略
  • 池化层将average与max求和
  • BatchSize使用128或者256,如果GPU内存不够大,在调小BatchSize的同时同比减小学习率
  • 用卷积替换全连接层,在最后决策时对输出取平均
  • 当决定要扩大训练集前,先查看是否到了“平坦区”——即评估增大数据集能带来多大收益
  • 数据清理比增大数据集更重要
  • 如果不能提高输入图像的大小,减小隐藏层的stride有近似相同的效果
  • 如果网络结构复杂且高度优化过,如GoogLeNet,做修改时要小心——即将上述修改在简单推广到复杂网络时不一定有效

需要注意的是,在Batch Size和学习率中,文章仅做了两个实验,一个是固定学习调整BatchSize,另一个学习率与Batch Size同比增减,但两者在整个训练过程中的Batch Size都保持不变,在这个条件下得出了 学习率与Batch Size同比增减 策略是有效的结论。最近Google有一篇文章

论文细节

一图胜千言,本节主要来自论文图表。

激活函数

Activation functions

在计算复杂度与ReLU相当的情况下,ELU的单一表现最好,ELU(卷积后)+maxout(全连接后)联合表现最好,前者提升约2个百分点,后者约4个百分点。值得注意的是,不使用非线性激活函数时,性能down了约8个百分点,并非完全不能用。

池化

Pooling

方法上,max和average池化结合取得最好效果(结合方式为 element-wise 相加),作者推测是因为同时具备了max的选择性和average没有扔掉信息的性质。尺寸上,在保证输出尺寸一样的情况下,non-overlapping优于overlapping——前者的kernel size更大

学习率

Learning rate policy
Learning rate policy

linear decay取得最优效果

BatchSize与学习率

Batch size and initial learning rate impact to the accuracy

文章中仅实验了固定学习调整BatchSize以及学习率与Batch Size同比增减两个实验,在整个训练过程中Batch Size保持不变,得出了 学习率与Batch Size同比增减 策略是有效的结论。

图像预处理

learned colorspace transformations

performance of using various colorspaces and pre-processing

灰度及其他颜色空间均比RGB差,通过两层1x1卷积层将RGB图映射为新的3通道图取得了最好效果

BN层

batch normalization

Top-1 accuracy gain over ReLU without BN

Sigmoid + BN 好于 ReLU无BN,当然,ReLU+BN更好。

分类器设计

Classier design

若将CNN网络拆成两个部分,前为特征提取,后为分类器。分类器部分一般有3种设计:

  1. 特征提取最后一层为max pooling,分类器为一层或两层全连接层,如LeNet、AlexNet、VGGNet
  2. 使用spacial pooling代替max pooling,分类器为一层或两层全连接层
  3. 使用average pooling,直接连接softmax,无全连接层,如GoogLeNet、ResNet

作者实验发现,将全连接替换为卷积层(允许zero padding),经过softmax,最后average pooling,即Pool5-C3-C1-CLF-AvePool取得了最好效果。

网络宽度

Network width impact on the accuracy

50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信