资讯详情

深度学习经典论文阅读系列之VGG网络

VGG论文阅读笔记

本文中提到的论文详细标注,放在个人仓库。如果你觉得好,请帮我点一个start,如果文章有任何问题,请在评论区纠正

image-20220426152935882

文章目录

  • VGG论文阅读笔记
    • 摘要
    • 一、介绍
    • 二、网络配置
      • 2.1 网络结构
      • 2.2 配置细节
      • 2.3 讨论
    • 三、分类框架
      • 3.1 训练
      • 3.2 测试
      • 3.3 实现细节
    • 四、分类实验
    • 五、结论

摘要

本文研究了网络深度对精度的影响,基于本文提出的模型。同时,该模型在其他数据集中具有良好的泛化作用,并取得了最佳效果(截止日期)。

本文的主要贡献是,并采用现有技术使网络深度达到16-19层。

在VGG在模型中,提出了各种配置模型,使用小卷积核,大部分是 3 × 3 3\times3 3×3卷积核在其中一种配置中使用 1 × 1 1\times1 1×1卷积核的大小

文章的整体结构:

  1. 在ILSVRC比较中不同配置
  2. 总结
  3. 附录A:ILSVRC综述目标定位
  4. 附录B:推广到其他数据集的效果

在阅读本篇论文的时候,由于能力有限,仅阅读了前三个部分,对网络的结构和训练过程有了一个清楚的了解,没有仔细看取得的结果

一、介绍

由于大规模的公开数据集(ImageNet)以及高性能的计算机系统(GPU大规模分布式集群)使卷积神经网络取得巨大成功。

随着卷积神经网络越来越被认可,人们在卷积网络的基础上做了一系列尝试,以获得更高的准确性。例如,2013年ILSVRC比赛冠军在第一卷积层中使用了更小的感觉窗口和更小的步骤。另一个改进是在整个图像和多个尺度上密集训练和测试网络。本文使用较小的卷积层( 3 × 3 3\times3 3×3卷积层的大小)解决了深度问题。

因此,本文提出了一个基于卷积网络的结构,可以获得更准确的结果。这个模型不仅仅是ILSVRC在分类和定位比赛中,比当前最佳算法更准确,也可以应用于其他图像识别数据集

二、网络配置

2.1 网络结构

网络的是一个 224 × 224 224 \times 224 224×224大小的RGB图片

预处理比较简单,在三个通道上减去了各个通道的均值(均值是从训练集的所有数据中计算得到的)

将预处理后的图片输入一堆卷积层,大部分卷积层感觉野的大小是 3 × 3 3\times3 3 ×3,在其中一个配置模型中还使用到了 1 × 1 1\times 1 1×1大小的卷积核,所有的卷积核的步长限制为1,另外还包含了5个最大池化层( 2 × 2 2\times2 2×2大小,步长为2),只在部分的卷积层后面有

大小为 3 × 3 3\times3 3×3的卷积核是捕捉左右,上下,中间信息的最小卷积核尺寸

1 × 1 1\times 1 1×1大小的卷积核可以看做是对输入通道的线性变化

对于 3 × 3 3\times3 3×3大小的卷积核来说设置步长为1可以保证在卷积前后图像的尺寸不发生变化

大小为 2 × 2 2\times2 2×2,步长为2的最大池化层可以使得图像的尺寸减半

在卷积层后面跟得是3个全连接层,前两层的大小是4096,后面都跟着一个ReLU层,第三层的大小是1000,最后面跟着一个softmax层

这个全连接层的配置与AlexNet的全连接层的配置一致

文章中说到所有的网络最后面的全连接层基本都一致(个人看法:应该在ILSVRC竞赛中都是一样的)

另外,在本文的基础配置中,并没有使用到AlexNet中的LRN(Local Response Normalisation)技术,作者实验中发现LRN技术在ILSVRC中并没有什么用,并且还增加了内存的消耗和计算的时间

2.2 配置细节

本文中的所有配置都在下标中列出来了,每一列代表一种不同的配置,命名为(A-E),所有的细节配置均与上一小节中提到的配置一致,只是在深度上不同而已(从11个带权重层的网络A(8个卷积层,3个全连接层)到19个带权重层的网络E(16个卷积层,3个全连接层))

通道的数目相对来说也比较少,第一层的通道数为64,每经过一次最大池化层乘2,最后到达512个通道

表二是网络参数的数量,虽然VGG比较深,但是因为使用了小卷积核原因参数数量相对于一些较大的网络来说还是比较少的

2.3 讨论

本文章中的网络配置与前面一些表现非常好的网络配置比较不一样(例如AlexNet和OverFeat),我们(VGG)在整个网络使用了非常小的感受野而不是在第一个卷积层使用相对来说比较大的卷积层(AlexNet中卷积核大小为 11 × 11 11\times 11 11×11步长为4,OverFeat中卷积核大小为 7 × 7 7\times7 7×7步长为2)

通过对卷积层作用的评估,可以很容易看出来

为什么使用多个 3 × 3 3\times3 3×3大小的卷积层而不是一个比较大的卷积层?

  1. :每一个卷积层后面都会跟着一个非线性激活层,因此,为了达到 7 × 7 7\times7 7×7的效果需要使用三个 3 × 3 3\times 3 3×3大小的卷积核,因此就会有三个非线性激活层,相比较一个激活层来说可以得到的更好的拟合效果
  2. :每一个卷积核的参数数量为 s i z e × s i z e × C i n size \times size \times C_{in} size×size×Cin​,卷积核的数量为 C o u t C_{out} Cout​,因此可以算出来三个 3 × 3 3\times 3 3×3大小的卷积核的参数为 3 × ( 3 × 3 × C ) × C = 27 C 2 3\times(3\times 3 \times C)\times C=27C^2 3×(3×3×C)×C=27C2,而一个 7 ∗ 7 7*7 7∗7大小的卷积层的参数为 ( 7 × 7 × C ) × C = 49 C 2 (7\times 7\times C)\times C =49C^2 (7×7×C)×C=49C2,比使用小的卷积核多了 81 % 81\% 81%的参数

另外,在配置C中还用到了 1 × 1 1\times 1 1×1大小的卷积层, 1 × 1 1\times 1 1×1大小的卷积层主要有两个作用

  • 在不影响卷积层接受域大小(分辨率)的情况下
  • :较大的卷积核计算起来计算成本较高,因此应该在计算前先使用 1 × 1 1\times 1 1×1大小的卷积核进行降维处理,减少输入的通道数量,可以起到减少计算的作用,降维主要是在GoogLeNet的Inception块中使用到了

GoogLeNet 2014年ILSVRC分类竞赛冠军,主要使用了一种叫做Inception的结构,这个结构中包含多个不同大小的卷积核, 1 × 1 , 3 × 3 , 5 × 5 , 7 × 7 1\times1,3\times3,5\times5,7\times7 1×1,3×3,5×5,7×7,可以让网络可以同时检测到不同大小的特征

三、分类框架

3.1 训练

VGG的训练过程类似于ALexNet

使用的是带动量的小批量梯度下降作为优化函数,同时添加了L2正则项进行正则化,使用Dropout减少全连接层过拟合,并且应用了学习率退火,具体参数设置如下:

  • batch size:256

  • momentum:0.9

  • weight decay: 5 × 1 0 − 4 5\times 10^{-4} 5×10−4

  • dropout ratio:0.5

  • learning rate:0.01

    学习率退火:当验证集的准确率停止提升的时候除以10,学习率总共下降了三次,一共经过了74个Epochs

该网络与AlexNet相比来说参数的数量更多并且更深,但是因为(更小的卷积层)和导致收敛的速度更快

在训练的时候首先使用比较浅的配置A进行预训练,然后将预训练好的模型中应用到其他模型上去(前面的几个卷积层和最后三个全连接层,可以对照表A看)

:该模型数据增广也比较常规,对图片进行缩放后裁剪出 224 × 224 224\times224 224×224大小的图片,然后进行随机水平翻转和随机的RGB通道切换

如何进行缩放?

在本文章中对具体如何进行缩放也进行了解释:训练用到的 224 × 224 224\times 224 224×224的图片是从缩放后的原始图片中裁剪出来的,而缩放不仅仅可以缩小也可以放大,记图片缩放后的最短边的长度为S,也称为训练尺度(training scale)

有两种设置训练尺度S的办法

  • 第一种是使用固定的S,对应的是单尺度的训练,本文使用了两种大小:256(先前的模型中用的比较多)和384
  • 第二种方法是变化的S,给定一个S变化的范围 [ S m i n , S m a x ] [S_{min},S_{max}] [Smin​,Smax​](文章中使用的范围是 [ 256 , 512 ] [256, 512] [256,512]),使其在这个范围中随机选值来缩放图片,由于目标物体通常是不同的大小的,因此这种做法可以看做是对训练集的一种数据增广方法

3.2 测试

这里没有太看明白,不太清楚为什么文章中说到要把全连接的层转换为卷积层

3.3 实现细节

实现使用的是基于C++的Caffe toolbox,并且还做了一系列的优化,是的可以在一个系统的多个GPU上进行训练和测试。

多GPU训练首先将一个batch上的数据平均分配到各个GPU上面,计算完成之后再将所有的GPU的计算结果取平均值就可以得到整个batch上面的计算结果,与单个GPU上取得的结果一致

最后,该模型在配备有4个NVIDIA Titan Black GPU的机器上训练一个架构需要花费2-3周的时间

四、分类实验

这里使用的数据集是ILSVRC-2012,这个数据集有,包含三个部分:,可以通过两个指标来评估准确率:top-1 和 top-5误差

  • top-1误差是一个多类分类误差,表示分类错误图片的比例
  • top-5误差是竞赛评估的主要指标,表示了真实的类别不在预测到的概率最大的五个类别中的错误率

在该部分总共介绍了三种不同的评估方法,分别是

  • 单尺度评估
  • 多尺度评估
  • 多次裁剪评估

在评估完成后与当前效果最好的网络进行了比较

感觉这里对模型理解帮助不大,没有仔细读,因此就不细写了

五、结论

在这次的工作中,我们评估了大尺度图像分类汇总非常深的卷积神经网络的作用,他展示了模型的深度对于分类准确率的重要性。

同时在附录中,我们也展示了我们的模型更广范围的任务以及数据集上得到一个很好的泛化效果。

最后,我们的结论再一次证明了

标签: lrn系列热继电器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台