0. 背景

Karen Simonyan等人在2014年参加Imagenet挑战赛的时候提出的深度卷积神经网络。作者通过对2013年的ILSVRC中最好的深度神经网络模型(他们最初的对应模型都是alexnet)进行研究,发现他们使用了更小的感受野,并且在第一层卷积层中使用了更小的stride,也就是这两点都有助于准确度的提升。所以本文就不去做无用功,从网络的深度去挖掘CNN模型的提升空间,并且发现当网络深度在超过16层时,有明显的提升效果,故而如果截取当前16层的网络,就被称之为VGG16。

从感受野角度来说,两个\(3*3\)的卷积核叠加,就等于一个\(5*5\)的卷积核的结果。可是从参数量上,前者明显会小于后者。而且从分层角度上看,因为之间会通过非线性激活函数的转换,所以\(3*3\)的卷积核叠加还能得到更非线性的特征提取结果

为了遵循单一变量的原则,除了深度外,其他涉及到的参数基本保持一致。

1. 模型


图1.1 VGG不同深度时的网络结构
如图1.1所示,图片的输入都是\(224*224\),卷积核大小都是\(3*3\),滑动的步长stride=1,在某些卷积层后面跟上最大池化,其中池化的大小为\(2*2\),且每一层卷积都是保留尺寸的卷积(即卷积之后,feature map的大小不变),且为了降维、对通道的线性变换、增加决策函数的非线性等目的,采用了《network in network》中的\(1*1\)的卷积操作。其中FC层表示该层为全连接层。
作者通过试验发现alexnet中的LRN(Local Response Normalisation,LRN)不但不利于准确度提升,反而还会占用内存,所以都省略了该层。


图1.2 不同深度VGG下参数量,单位为百万

2. 训练结果

作者在训练的时候,开始先训练模型A,然后在训练模型B的时候,将前面几层CNN和最后的全连接层的参数用模型A的权重来初始化,以此达到用小模型去预训练大模型的目的;
而且,作者用S表示对训练集图片做的一个缩放,用Q表示对测试集图片做的一个缩放,当然其中S和Q都不得小于224。

简单的训练过程如下:

  • 1 - 给定S和Q值,将图片进行各方向同性缩放到S和Q;
  • 2 - 然后用crop的方法对缩放后的图片进行采样到\(224*224\);
  • 3 - 将crop采样得到的图片放入VGG模型中训练。


图2.1基于单尺度测试情况下的结果

图2.2基于多尺度测试情况下的结果
从图2.1和图2.2中可以看出:从C模型与D模型对比,可以肯定深度的好处的确有助于准确度的提升;而从E模型与D模型的对比,发现还是E模型更好,作者认为深度有助于提升准确度,可是模型还是需要通过卷积核去抓取空间上下文信息。

因为大家通常都是直接将基于imagenet训练好的VGG拿来用,所以基本没多少人会从0开始训练VGG网络。而且论文中也显示4块卡,也需要小心的训练2-3个礼拜。本文只着重于VGG的网络结构,如有必要,后续再补全该博文。

参考文献:
[] - Zeiler M D, Fergus R. Visualizing and understanding convolutional networks[C]//European conference on computer vision. Springer, Cham, 2014: 818-833.
[] - Sermanet, P., Eigen, D., Zhang, X., Mathieu, M., Fergus, R., and LeCun, Y. OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks. In Proc. ICLR, 2014[]

Feature Extractor[VGG]的更多相关文章

  1. Feature Extractor[inception v2 v3]

    0 - 背景 在经过了inception v1的基础上,google的人员还是觉得有维度约间的空间,在<Rethinking the Inception Architecture for Com ...

  2. Feature Extractor[ResNet]

    0. 背景 众所周知,深度学习,要的就是深度,VGG主要的工作贡献就是基于小卷积核的基础上,去探寻网络深度对结果的影响.而何恺明大神等人发现,不是随着网络深度增加,效果就好的,他们发现了一个违背直觉的 ...

  3. Feature Extractor[SENet]

    0.背景 这个模型是<Deep Learning高质量>群里的牛津大神Weidi Xie在介绍他们的VGG face2时候,看到对应的论文<VGGFace2: A dataset f ...

  4. Feature Extractor[content]

    0. AlexNet 1. VGG VGG网络相对来说,结构简单,通俗易懂,作者通过分析2013年imagenet的比赛的最好模型,并发现感受野还是小的好,然后再加上<network in ne ...

  5. Feature Extractor[Inception v4]

    0. 背景 随着何凯明等人提出的ResNet v1,google这边坐不住了,他们基于inception v3的基础上,引入了残差结构,提出了inception-resnet-v1和inception ...

  6. Feature Extractor[DenseNet]

    0.背景 随着CNN变得越来越深,人们发现会有梯度消失的现象.这个问题主要是单路径的信息和梯度的传播,其中的激活函数都是非线性的,从而特别是乘法就可以使得随着层数越深,假设将传统的神经网络的每一层看成 ...

  7. 图像金字塔(pyramid)与 SIFT 图像特征提取(feature extractor)

    David Lowe(SIFT 的提出者) 0. 图像金字塔变换(matlab) matlab 对图像金字塔变换接口的支持(impyramid),十分简单好用. 其支持在reduce和expand两种 ...

  8. Feature Extractor[googlenet v1]

    1 - V1 google团队在模型上,更多考虑的是实用性,也就是如何能让强大的深度学习模型能够用在嵌入式或者移动设备上.传统的想增强模型的方法无非就是深度和宽度,而如果简单的增加深度和宽度,那么带来 ...

  9. Feature Extractor[batch normalization]

    1 - 背景 摘要:因为随着前面层的参数的改变会导致后面层得到的输入数据的分布也会不断地改变,从而训练dnn变得麻烦.那么通过降低学习率和小心地参数初始化又会减慢训练过程,而且会使得具有饱和非线性模型 ...

随机推荐

  1. 信息检索中的TF/IDF概念与算法的解释

    https://blog.csdn.net/class_brick/article/details/79135909 概念 TF-IDF(term frequency–inverse document ...

  2. iOS------教你如何APP怎么加急审核

    苹果的加急审核如何使用呢? 在iTunesconnect页面,点击右上角的“?”图标,在弹出菜单中选择“联系我们”, 联系我们 然后在Contact Us页面,选择“App Review” —> ...

  3. Android gravity和layout_gravity的区别

    一.gravity和layout_gravity相同处 两者都是设置对齐方式的属性.内部的属性值相同. 根据英文意思也能理解其中的意思.如center_horizontal表示在水平方向上的位置为中间 ...

  4. tornado 初解

    对于使用习惯Django的我来说,tornado实在是很简陋,没有那么多复杂的文件分类. 在tornado中,一个简单web只需要十几行简单的代码就OK了 import tornado.web imp ...

  5. Linux 中提高的 SSH 的安全性

    SSH 是远程登录 Linux 服务器的最常见的方式.且 SSH 登录的时候要验证的,相对来讲会比较安全.那只是相对,下面会介绍一些方式提高 SSH 的安全性 SSH 的验证 而SSH 登录时有两种验 ...

  6. 使用VSTS的Git进行版本控制(七)——管理仓库

    使用VSTS的Git进行版本控制(七)--管理仓库 在团队项目中创建Git repo管理项目的源代码.每个Git repo都有自己的权限和分支,可以与项目中的其他工作隔离开来. 任务1:从web门户创 ...

  7. SQL 数据插入、删除 大数据

    --测试表 CREATE TABLE [dbo].[Employee] ( [EmployeeNo] INT PRIMARY KEY, [EmployeeName] [nvarchar](50) NU ...

  8. MySQL【Delete误操作】数据恢复【转】

    前言:      操作数据库时候难免会因为“大意”而误操作,需要快速恢复的话通过备份来恢复是不太可能的,因为需要还原和binlog差来恢复,等不了,很费时.这里先说明下因为Delete 操作的恢复方法 ...

  9. 在ubuntu18.04上安装EOS

    在ubuntu18.04上安装EOS 在ubuntu18.04上安装EOS的目的: 把交易所的eos转到eos主网,防止交易所跑路或者交易所被黑客攻击 在不联网的安全环境下,用eos官方的命令行工具, ...

  10. 为什么会出现Notice: Undefined index: submit in D:\xampp\htdocs\test.php on line 19

    事例如下": <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:/ ...