这篇文章发表在ICLR2015 (International Conference on Learning Representations),这个会议从2013年开始举办,上升快大牛多,关于Deep Learning的。这篇文章解决ConvNet 结构设计中“深度”这个重要问题。提出用3*3的卷积增加网络的深度,当weighted layers增加到16-19层时,accuracy得到明显提升。网络具有很强的泛化能力。两个最好性能的ConvNet models已经公开。

  1. Architecture

    在训练阶段,ConvNet的输入是固定大小的224*224RGB图像。唯一的预处理是减均值。网络由3*3的卷积层栈组成,有些地方也利用了1*1的卷积过滤器。卷积层的stride固定为1,对3*3的卷积层pad为1,以保持空间分辨率不变。通过5个Max-pooling通过2*2的窗口,stride为2进行空间池化。卷积层栈后面跟的是3个Fully_connected层。前2个是4096 way,第3个是1000 way。最后一层是softmax。所以隐藏层都用ReLU进行非线性化。在所有的网路中,除一个用了LRN外,其他都没有用,因为,这样一个规范化在ILSVRC 数据库上不能增强性能,但是导致了内存和计算时间的消耗。

  2. Configurations
    文章提出了5个网络(A-E),配置完全一样,除了深度,层数从11层到16层。conv 层的channel开始是64,在每一个max-pooling后增加一倍,直到达到512.
    ILSVRC-2012的第一个卷积层是11*11,stride 4;ILSVRC(ImageNet Large Scale Visual Recognition Challenge ) - 2013 , 2014 7*7,stride 4.本文在整个网络中使用的是较小感受野的3*3窗口,很容易能看出来2个3*3的卷积层栈相当于一个5*5的卷积,而3个则相当于一个7*7的卷积。那么为什么采用3*3的卷积,而不是7*7的?有两个原因:一是,用了3个非线性修正层,而不是一个,使得决策函数具有更强的判别能力;二是,减少了参数的数量,假设一个3层的3*3卷积层栈,输入输出都是C个channel,则需要的参数是3(3*3*C*C)=27*C*C,而一个7*7的卷积层,则需要参数7*7*C*C=49*C*C。
    1*1卷积层是一种在不影响conv感受野的前提下增加决策函数非线性能力的一种方式。
    Szegedy et al,2014的GoogLeNet在ILSVRC-2014中top-performing entry和本文的方法相似:基于非常深的ConvNet(22 weight layers)和小的卷积层(除了3*3的,也用了1*1和5*5的)。但是,他们的结构比本文的方法复杂,为了减少计算量,第一层的feature map的空间分辨率下降的过于粗暴。本文的方法outperform这个方法。

  3. Classfication Framework
    3.1 Training
    训练过程采用Krizhevsky et al.(2012)的方法。训练采用带momentum的 mini-batch gradient descend优化多项式逻辑回归目标函数。batch size 256,momentum 0.9。训练的规则化处理:权重衰减(L2惩罚因子设置为5*10\^(-4)),前两个全连接层dropout radio设置为0.5。学习率设置为0.01,当validation accuracy停止提高时,下降为原来的0.1,一共下降3次,在370k(74 epochs)迭代后停止。作者猜测尽管网络有大量参数和很深的网络结构,但是网络仍然能在较少的epoch后收敛,应当有两个方面原因:(1)由较深的网络结构和较小的conv过滤器filter强加的隐含的规则化,(2)某些层的预初始化。
    网络权重的初始化很重要,因为由于deep net的不稳定性,bad初始化阻碍学习。为了绕过这个问题,作者现在浅层的网络(A)上采用随机初始化参数的方法进行训练,然后,当训练较深网络结构时,前4个卷积层和最后3个全连接层采用net A的参数。作者没有降低预初始化层的学习率,而是允许在学习过程中改变。对于随机初始化,我们从0均值,方差为0.01的正态分布中采样。biase初始化为0。值得注意的是,作者提交后,发现采用Gloror&Bengio(2010)的随机初始化方法能够避免进行预训练。为获取固定大小224*224的Convnet输入图像,从rescaled的训练图像中随机crop。为了进一步增大训练集,crops进行随机水平翻转和随机RGB color shift(Krizhevsky et al,2012)。
    用S代表isotropically-rescaled(各向同性的训练图像)的最小边。若crop size 固定到224*224,原则上S可以取任意不小于224的值。作者采用2种方法设置训练Scale S:第一种是针对单尺度训练,固定S。(注意到,在采样sampled crops内的图像内容仍然能够表示多尺度的图像统计。)在本文的实验中,设定两个固定值S=256,S=384。对于给的的ConvNet,首先用S=256进行预训练,然后,对S=384进行训练,采用S=256预训练好的参数,采用较小的学习率0.001。第二种方法是设置多尺度训练,让训练图像的S在[Smin,Smax]范围内随机rescale,本文采用Smin=256,Smax=512。尽管图像中的对象可以是不同大小的,因此在训练过程中考虑这些是有益的。这也可以看成是一种通过尺度抖动进行训练集增广的方式,这也可以在很多范围的尺度上训练模型。为了提高速度,现在固定S=384上预训练,然后在多尺度模型上进行微调。
    3.2 Testing
    测试图像的预定义最小图像边被isotropically rescaled 到Q,Q不必等于训练尺度S。实验发现,Q采用多个不同值能够提高性能。然后采用近似Sermanet et al,2014的的方法在rescaled 的测试图像稠密采样上应用network。也就是第一个FC层改为7*7的卷积层,后两个FC层改为1*1conv层。结果全卷积网络被应用到完整(uncropped)图像上。结果是类分数图谱,通道数等于类数,空间分辨率的大小依赖输入图像大小。最后,为了获得固定大小的类分数向量,类分数图谱被空间平均化。为了增大测试集,也进行了图像水平翻转,原始图像和翻转图像的softmax类的值进行平均以获得图像的最终分数。
    采用了多GPU。在four NVIDIA Titan Black GPUs的系统中,训练一个单独网络需要2-3周。

  4. 实验
    采用ILSVRC-2012dataset,1000个类,被分成3个集合:traing(1.3M),validation(50k),testing(100k)。测试性能通过top-1和top-5误差进行评估。大多数实验采用validation set 作为test set集合,某些实验也在test set上进行,并提交给官方ILSVRC server作为“VGG”团队的成果。
    4.1 单尺度评估
    首先发现,采用LRN的A网络不能提高没采用任何规范化层网络的性能,因此,在B-E中都没有采用规范化。
    其次,随着ConvNet深度增加,分类误差降低。尽管深度相同,采用1*1conv的结构比全部采用3*3conv的效果差。这表明尽管增加的non-linearity确实有帮助(C比B好),但是通过Conv捕获空间信息也很重要(D比C好)。当深度达到19层时,误差率达到饱和,或许更深的网络对较大的数据集更有效。同时,也比较了采用5个5*5conv的浅层网络,把每一对3*3网络替换成一个5*5网络,误差率比B高了7%,这证实了采用小过滤器的深层网络比采用大过滤器的浅层网络更有效。
    最后,训练时的尺度抖动也导致了较好的性能。证实了通过尺度抖动增广训练集对于捕获多尺度图像统计特征确实是有用的。
    4.2 Multi-Scale evaluation
    考虑到训练集和测试集尺度差别大时将会导致性能下降,采用固定S训练的模型,测试Q={S+32,S,S-32},若训练采用的是尺度抖动的S在[Smin,Smax],则Q={Smin,0.5(Smin+Smax),Smax}.实验表明测试时尺度抖动导致了较好的性能。
    4.3 Multi-Crop evaluation
    实验表明multi-crops比dense evaluation略好,两种方法的结合效果比单独使用任意一种都好,作者认为这是由于卷积边界的不同处理方式导致的互补。
    4.4 Convnet Fusion
    通过Soft-max输出进行平均,将几个模型融合起来,由于模型的互补提高了模型性能。
    4.5 Comparison with the steate of art

    模型融合是提高性能的办法。

VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION相关推荐

  1. 《Very Deep Convolutional Networks For Large-Scale Image Recognition》翻译

    1 引言 2 ConvNet配置 2.1 架构 2.2 配置 2.3 讨论 3 分类框架 3.1 训练 3.2 测试 3.3 实现细节 4 分类实验 4.1 单尺度评估 4.2 多尺度评估 4.3 多 ...

  2. 多尺度人脸检测--Face Detection through Scale-Friendly Deep Convolutional Networks

    Face Detection through Scale-Friendly Deep Convolutional Networks http://shuoyang1213.me/projects/Sc ...

  3. VGGNet论文翻译-Very Deep Convolutional Networks for Large-Scale Image Recognition

    Very Deep Convolutional Networks for Large-Scale Image Recognition Karen Simonyan[‡] & Andrew Zi ...

  4. Very Deep Convolutional Networks for Large-Scale Image Recognition—中英文对照

    文章作者:Tyan 博客:noahsnail.com  |  CSDN  |  简书 翻译论文汇总:https://github.com/SnailTyan/deep-learning-papers- ...

  5. 深度学习论文阅读图像分类篇(三):VGGNet《Very Deep Convolutional Networks for Large-Scale Image Recognition》

    深度学习论文阅读图像分类篇(三):VGGNet<Very Deep Convolutional Networks for Large-Scale Image Recognition> Ab ...

  6. 论文研读 —— 7. Very Deep Convolutional Networks for Large-Scale Image Recognition (2/3)

    文章目录 3. Classification Framework 3.1. Training 3.2. Testing 3.3. Implementation Details 4. Classific ...

  7. Very Deep Convolutional Networks for Large-Scale Image Recognition—VGG论文翻译—中文版

    文章作者:Tyan 博客:noahsnail.com  |  CSDN  |  简书 声明:作者翻译论文仅为学习,如有侵权请联系作者删除博文,谢谢! 翻译论文汇总:https://github.com ...

  8. 《Very Deep Convolutional Networks for Large-Scale Image Recognition》——VGG论文总结

    题目 <Very Deep Convolutional Networks for Large-Scale Image Recognition> 简介 Abstract In this wo ...

  9. 【翻译】【VGGNet】VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION

    VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION 用于大规模图像识别的非常深的卷积网络 作者:Karen Simon ...

  10. VGGNet 阅读理解 - Very Deep Convolutional Networks for Large-Scale Image Recognition

    论文理解 - VGGNet - Very Deep Convolutional Networks for Large-Scale Image Recognition [VGG-Paper] [原文地址 ...

最新文章

  1. mysql 储存过程
  2. oracle缩小表空间
  3. python流程图基本元素-2-2:python之控制结构
  4. 打造最舒适的webview调试环境
  5. 【5】C++语法与数据结构之STL_list学生管理系统_链表内排序_函数指针
  6. classpass 配置mysql_jmeter压测学习18-JDBC配置连接mysql数据库
  7. 小熊的人生回忆(二)
  8. 4_less中带参数混合
  9. 积分竞猜网php源码_贵州省网络安全知识竞赛个人赛Writeup
  10. android o car模块,CarPlay for Android: Bonjour 及 插件源码移植问题分析
  11. C#导出数据—使用Word模板
  12. 数据挖掘--风电机组异常数据识别与清洗
  13. css实现奥运五环(立体)
  14. 隔离式DC-DC转换器:把直流电压转换成高频方波电压,由变压器升压或降压后,再经过整流滤波变为直流电压或者电流。
  15. Tensorflow安装过程的一些问题及解决办法
  16. 井柏然自己的字体,手写语录合集
  17. 4路3G-SDI的两种拼接方式
  18. 2021武汉理工大学计算机考研复试经验分享(最新版)
  19. Jetson Nano-PWM自动调速
  20. v-model组件使用

热门文章

  1. java判断星期天_java实现一个月的最后一个星期天
  2. java swing 页面布局方式_javaswing酷炫界面
  3. maven-eclipse 中index.html页面乱码
  4. PHP经验总结(一)序言
  5. 数据库VIEW(视图)
  6. phantomjs介绍
  7. iOS UICollectionView的实现
  8. MvvmLight:Command
  9. EDM营销的三个小窍门-EDM营销必看
  10. [小功能]按阅读数、评论数、评论时间查看首页随笔