VGG Net 论文细读

论文地址:《Very Deep Convolutional Networks for Large-Scale Image Recognition
思维导图:https://mubu.com/explore/5JnjDt1vIng


一、背景

LSVRC:大规模图像识别挑战赛

ImageNet Large Scale Visual Recognition Challenge 是李飞飞等人于2010年创办的图像识别挑战赛,自2010起连续举办8年,极大地推动计算机视觉发展。比赛项目涵盖:图像分类(Classification)、目标定位(Object localization)、目标检测(Object detection)、视频目标检测(Object detection from video)、场景分类(Scene classification)、场景解析(Scene parsing)。

VGG Net由牛津大学的视觉几何组(Visual Geometry Group)参加2014年ILSVRC提出的网络模型,它主要的贡献是展示了卷积神经网络的深度(depth)是算法优良性能的关键部分。

二、Abstract

Q1:做了什么?

研究了“卷积网络的深度”在大规模的图像识别环境下对准确性的影响(即神经网络的深度与其性能之间的关系)。

Q2:怎么做的?

使用一个非常小的卷积核(3\times3)对网络深度进行评估,评估发现将网络深度加至16层-19层,性能有了显著提升。

Q3:做得怎么样?

在ImageNet Challenge 2014竞赛中,定位赛道获得第一名,分类赛道获得第二名。

三、Architecture

论文提出了多种规模的网络架构(不同规模深度不尽相同),下图为其中性能表现良好的网络架构之一:VGG16结构图。

VGG16结构图

1、输入

  1. 规格:3@224x224(3个通道,宽高像素均为224);
  2. 唯一的预处理操作:计算出3个通道的平均值,在每个像素上减去平均值(处理后迭代更少,收敛更快);

2、卷积

  1. 大部分网络架构使用非常小的3x3卷积核贯穿整个网络;
  2. 部分网络架构除了3x3卷积核之外还使用了1x1卷积核;
  3. 卷积层步长(stride)=1,3x3卷积核的填充(padding)=1;
  4. 所有隐藏卷积层都配备了ReLU非线性激活。

3、池化

  1. 整个网络架构的池化总共由5个“MAX池化层”实现;
  2. 池化操作在一系列卷积操作之后执行;
  3. 池化窗口为2x2,步长=2。

4、分类器

所有卷积操作之后跟有3个全连接层(FC层):

  1. 前2个FC层:均为4096通道;
  2. 最后1个FC层:1000个通道;
  3. 全连接层之后是SoftMax分类器。

四、Dicussion

所有的ConvNet配置如图所示,VGG结构全部都采用较小的卷积核(3x3,部分1x1):

ConvNet配置

1、3x3卷积核的作用(优势)

两个3×3的卷积层串联相当于1个5×5的卷积层(二者具有等效感受野5x5),3个串联的3×3卷积层串联的效果相当于一个7×7的卷积层;

下图展示了为什么“两个3x3卷积层”与“单个5x5卷积层”具有等效的5x5的感受野。

等效感受野

1)作用1:减少网络层参数

  1. 对于两个3x3卷积核,所用的参数总量为2\times3^2\times{channels}(假设通过padding填充保证卷积层输入输出通道数不变);
  2. 对于单个5x5卷积核,参数量为5^2\times{channels}
  3. 参数量减少了(1-\frac{2\times3^2\times{channels}}{5^2\times{channels}})\times100\%=28\%

2)作用2:增加更多的非线性变换

2个3x3卷积层拥有比1个5x5卷积层更多的非线性变换(前者可以使用两次ReLU激活函数,而后者只有一次),使得卷积神经网络对特征的学习能力更强。

2、1x1卷积核的作用

1)作用1:降低运算量

不影响输入输出的维度情况下(即图片宽高尺寸不变),降低了大量运算,同时改变了维度(通道数);

2)作用2:提高非线性

卷积之后再紧跟ReLU进行非线性处理,提高决策函数的非线性。

五、Classification Framework

1、训练

1)参数设置

  1. 使用了mini-batch的梯度下降法(带有冲量),batch_size设为256,冲量设为0.9;
  2. 前两个FC层使用了dropout(失活概率为0.5),用来缓解过拟合;
  3. 训练通过权重衰减(L2惩罚乘子设定为5\times{10}^{-4})进行正则化;
  4. 学习率初始化为0.01
    • 当验证集准确率稳定时,学习率减少为原来\frac{1}{10}
    • 整个训练过程,学习率总共降低3次,学习在37万次迭代后停止(74个epochs)。

2)预训练

  1. 先训练较浅的网络A,A收敛之后呢,将A的网络权重保存下来;
  2. 再复用A网络的权重来初始化后面的几个复杂模型
    • 只对“前四个卷积层”、“后三层全连接层”复用A的网络权重,其它的中间层都是随机初始化;
      • 随机初始化,均值是0,方差是0.01,bias是0。

3)多尺度训练

Q1:什么是多尺度训练(Multi-scale)?

详见:https://www.cnblogs.com/xxxxxxxxx/p/11629657.html

通俗点讲,就是将一张图片先进行等比例缩放到不同尺寸(实现1张图片变多张图片),再在缩放后的图片中随机裁剪出指定尺寸区域得到更多的图像。

就这样,实现了训练集的数据增强。

Q2:作用是什么?

数据增强,有利于预防过拟合。

Q3:步骤是什么?

  1. 步骤1:将原始图像缩放到不同尺寸S;
    • Q:S设为多大合适呢?(两种解决方法A1、A2)
      • S过小,裁剪到224x224的时候,就相当于几乎覆盖了整个图片,这样对原始图片进行不同的随机裁剪得到的图片就基本上没差别,就失去了增加数据集的意义;
      • S过大,,裁剪到的图片只含有目标的一小部分,也不是很好。
    • A1:单尺度训练(将S设为一个固定值)
      • 论文评估了S=256和S=384两种单尺度模型;
    • A2:多尺度训练(将S设为一个区间[S_{min}, S_{max}]
      • 论文随机从[256,512]的区间范围内进行抽样,这样原始图片尺寸不一,有利于训练,这个方法叫做尺度抖动(scale jittering),有利于训练集增强。
  2. 步骤2:从缩放后的图片随机裁剪224x224区域的图片;
  3. 步骤3:对裁剪后的图片进行水平翻转和随机RGB色差调整(改变训练图像中 RGB 通道的强度);

2、测试

测试阶段与训练阶段主要有两点不同:

  1. 对于测试集同样采用Multi-scale,将图像缩放到尺寸Q,但是Q可以≠训练尺度S;
  2. 将“FC全连接层”转换为“等效卷积层”

六、Classification Experiments

1、Single Scale Evaluation

  1. 若S采用单尺度,设Q=S;若S采用多尺度,设Q=0.5(S_{min}+S_{max});
  2. 通过“A-LRN”证明,网络中加入LRN没什么用;
  3. 通过比较A-E的“top-1 val.error”和“top-5 val.error”发现,网络深度越深,训练性能越好,且深度达19层时,性能趋于饱和;
  4. 通过比较D和C,证明3x3卷积效果优于1x1卷积;
  5. 通过将“B”和“带有5x5卷积的浅层网络”,发现两个3x3卷积效果优于单个5x5卷积(即使二者具有等效的感受野);
  6. 通过比较单尺度S和多尺度S,发现尺度抖动有利于训练集数据增强。
在单测试尺度的ConvNet性能

2、Multi-Scale Evaluation

  1. 保持S为单尺度(S=256 or S=384),查看多尺度Q的性能(Q=\{S-32, S, S+32\});
  2. 令S为多尺度(S\in[S_{min}, S_{max}]),查看多尺度Q的性能(Q=\{ S_{min}, 0.5(S_{min}+S_{max}, S_{max}) \});
  3. 证明测试时的尺度抖动导致了更好的性能。
在多个测试尺度上的ConvNet性能

3、Multi-Crop Evaluation

  1. 将“稠密ConvNet_{(即未进行多裁剪)}评估”与“多裁剪图像评估”进行比较;
  2. 通过平均其soft-max输出来评估两种评估技术的互补性;
  3. 证明了使用多裁剪图像表现比密集评估略好,而且这两种方法确实是互补的(因为它们的组合优于其中的每一种)。
ConvNet评估技术比较

4、Convnet Fusion

  1. 查看多个卷积网络融合结果;
  2. ILSVRC提交的是单规模网络;post-提交的是多规模网络;
  3. 表现最好的多尺度模型(配置D和E)的组合,它使用密集评估将测试误差降低到7.0%,使用密集评估和多裁剪图像评估将测试误差降低到6.8%。
多个卷积网络融合结果

七、我的总结

VGGNet网络特点:

  1. 层数深(VGG拥有5段卷积,每段卷积内包含2-3个卷积层),同时每段尾部配有最大池化层,适用于大型数据集;
  2. 网络简洁,使用了同样大小的卷积核尺寸(3x3)和最大池化尺寸(2x2)贯穿整个网络架构;
  3. 采用“几个小滤波器(3x3)卷积层的串联组合”替代“一个大滤波器(5x5或7x7)卷积层”,效果更好;
  4. 训练和测试阶段都对数据集进行了Multi-scale将图片缩放并采样,实现了数据增强;
  5. 测试阶段将全连接层转换为等效卷积层,去除了FC层对输入图像尺寸的限制;
  6. 采用多GPU并行训练,每个GPU处理部分数据。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,539评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,594评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,871评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,963评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,984评论 6 393
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,763评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,468评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,357评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,850评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,002评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,144评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,823评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,483评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,026评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,150评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,415评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,092评论 2 355

推荐阅读更多精彩内容