卷积神经网络之VGG网络模型学习
VGG:VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION
牛津大学 visual geometry group(VGG)Karen Simonyan 和Andrew Zisserman 于14年发表的论文。论文地址:https://arxiv.org/pdf/1409.1556.pdf。与alex的文章虽然都采用层和每层之间用pooling层分开,最后三层FC层(Fully Connected全连接层)。但是AlexNet每层仅仅含有一个Convolution层,VGG每层含有多个(2~4)个Convolution层。AlexNet的filter的大小7x7(很大)而VGG的filter的大小是3x3(最小)。它通过降低filter的大小,增加层数实现更佳的效果。以下为论文解读。
ABSTRACT
研究了卷积网络深度对其大型图像识别的精准度的影响。主要贡献是使用非常小(3×3)卷积滤波器,将神经网络层次深度推到16-19层。2014年ImageNet分别在localisation和classification赛中获得了第一名和第二名。 同时模型对其他数据集很好地泛化。
1 INTRODUCTION
本文介绍了ConvNet架构的另一个重要方面设计 - 深度。很多人尝试改善2012年提出的AlexNet来实现更好的效果,ZFNet在第一卷积层使用更小的卷积(receptive window size)和更小的步长(stride)2,另一种策略是多尺度地在整张图像上密集训练和测试。
2 CONVNET CONFIGURATIONS
受到Ciresan et al.(2011); Krizhevsky et al. (2012).启发。为了公平测试深度带来的性能提升,VGGNet所有层的配置都遵循了同样的原则。
2.1 ARCHITECTURE
输入fixed-size 224 × 224 RGB image。数据预处理:每个像素上减去RGB的均值。在卷积层中小的Filter尺寸为3*3,有的地方使用1*1的卷积,这种1*1的卷积可以被看做是对输入通道的线性变换。卷积步长(stride)设置为1个像素,3*3卷积层的填充(padding)设置为1个像素。池化层采用max-pooling,共有5层,池化是2*2,步长为2。通过Relu进行非线性处理,增加网络的非线性表达能力。不使用局部响应标准化(LRN),这种标准化并不能在ILSVRC数据集上提升性能,却导致更多的内存消耗和计算时间。
2.2 CONFIGURATIONS


2.3 DISCUSSION
与AlexNet和ZFNet不同,VGGNet在网络中使用很小的卷积。用多个小filter代替大的filter更有好处。例如三个3*3卷积而不是一个7*7的卷积,因为每层后都有ReLU,我们结合了三个非线性整流层而不是单一层,这使得决策功能更具区分性。同类的网络例如Goodfellow et al的11层网络及GoogLeNet都采用的小的filter。
3 CLASSIFICATION FRAMEWORK
3.1 TRAINING
the input crops from multi-scale training images把原始 image缩放到最小边S>224后在图像上提取224*224crops,进行训练。
mini-batch gradient descent,batch size为256,momentum =0.9,权重衰减0.0005。
Dropout 在前两个全连接层。Dropout ratio设置为0.5。
3.2 TESTING
重缩放到尺寸Q,在网络中测试。细节论文介绍的很详细。
3.3 IMPLEMENTATION DETAILS
介绍了使用的机器及系统配置及训练时间。
4 CLASSIFICATION EXPERIMENTS
4.1 SINGLE SCALE EVALUATION
首先实验证明A-LRN network中用local response normalisation没有提升模型A的性能。所以在更深层次architectures (B–E)作者没有使用 normalisation。
训练数据集数据提升方法scale jittering显著的提高实验结果。

4.2 MULTI-SCALE EVALUATION
与表3对比,采用scale jittering在多尺度上评估可以提高分类的准确度。如表4所示。

4.3 MULTI-CROP EVALUATION
表5展示的是多剪裁评估及密集评估,及两者结合的效果。单模型通过与 dense ConvNet evaluation对比,效果好一点,如果结合两个方法,多剪裁和密集型则效果还可以提升一点。

4.4 CONVNET FUSION
结合多个卷积网络的sofamax输出,将多个模型融合在一起输出结果。表6展示的是结果。

4.5 COMPARISON WITH THE STATE OF THE ART
与当前STATE OF THE ART的模型做比较。与之前12,13的网络对比VGG优势明显。与GoogLeNet比较单模型好一点,7个网络融合不如googleNet。

5 CONCLUSION
本文的19层深的卷积神经网络,在效果和泛化能力上有很好的成果。论证了深度对于cv问题的重要性。
本文参考
https://arxiv.org/pdf/1409.1556.pdf
http://m.blog.csdn.net/muyiyushan/article/details/62895202
卷积神经网络之VGG网络模型学习的更多相关文章
- 卷积神经网络之AlexNet网络模型学习
ImageNet Classification with Deep Convolutional Neural Networks 论文理解 在ImageNet LSVRC-2010上首次使用大型深度卷 ...
- 卷积神经网络之ResNet网络模型学习
Deep Residual Learning for Image Recognition 微软亚洲研究院的何凯明等人 论文地址 https://arxiv.org/pdf/1512.03385v1.p ...
- 了解卷积神经网络如何使用TDA学习
在我之前的文章中,我讨论了如何对卷积神经网络(CNN)学习的权重进行拓扑数据分析,以便深入了解正在学习的内容以及如何学习它. 这项工作的重要性可归纳如下: 它使我们能够了解神经网络如何执行分类任务. ...
- 卷积神经网络之VGG
2014年,牛津大学计算机视觉组(Visual Geometry Group)和Google DeepMind公司的研究员一起研发出了新的深度卷积神经网络:VGGNet,并取得了ILSVRC2014比 ...
- 卷积神经网络CNN与深度学习常用框架的介绍与使用
一.神经网络为什么比传统的分类器好 1.传统的分类器有 LR(逻辑斯特回归) 或者 linear SVM ,多用来做线性分割,假如所有的样本可以看做一个个点,如下图,有蓝色的点和绿色的点,传统的分类器 ...
- 深度学习之卷积神经网络(CNN)学习
1.卷积神经网络中卷积的核心意义是什么?每一组卷集核 权重是一个抽特征的滤波器, 从卷集核的角度抽取特征 2.卷积神经网络很好的特性参数共享机制每一个神经元固定一组a x b x c(图像的通道数) ...
- 卷积神经网络(CNN)学习算法之----基于LeNet网络的中文验证码识别
由于公司需要进行了中文验证码的图片识别开发,最近一段时间刚忙完上线,好不容易闲下来就继上篇<基于Windows10 x64+visual Studio2013+Python2.7.12环境下的C ...
- 【深度学习与TensorFlow 2.0】卷积神经网络(CNN)
注:在很长一段时间,MNIST数据集都是机器学习界很多分类算法的benchmark.初学深度学习,在这个数据集上训练一个有效的卷积神经网络就相当于学习编程的时候打印出一行“Hello World!”. ...
- SIGAI深度学习第七集 卷积神经网络1
讲授卷积神经网络核心思想.卷积层.池化层.全连接层.网络的训练.反向传播算法.随机梯度下降法.AdaGrad算法.RMSProp算法.AdaDelta算法.Adam算法.迁移学习和fine tune等 ...
随机推荐
- vue.js 源代码学习笔记 ----- 工具方法 option
/* @flow */ import Vue from '../instance/index' import config from '../config' import { warn } from ...
- 浅析C#中ASP.NET页面的生存周期
一般来说,页要经历下表概述的各个阶段.除了页生命周期阶段以外,在请求前后还存在应用程序阶段,但是这些阶段并不特定于页. 阶段 说明 页请求 页请求发生在页生命周期开始之前.用户请求页时,ASP.NET ...
- Android支持Split Apks后,如何获得指定包名下的所有类
从Android5.0以后,支持多个apk动态部署,这导致以前通过单一apk获取包路径下的所有类的方法失效,不过稍微修改一下原先的代码就可以,代码如下 public static final List ...
- 机器人操作系统(ROS)在线实训平台学习实验指南
机器人操作系统(ROS)在线学习指南 在高校开设ROS相关课程已经积累了一年多的经验,由于自动化类专业在课程安排中不同于计算机相关专业,通常没有Linux相关的课程基础,直接上手ROS较为 ...
- 判断序列是否为二叉排序树的后序遍历 python
题目:给定一个序列,判断其是不是一颗二叉排序树的后序遍历结果 分析:首先要知道什么是排序二叉树,二叉排序树是这样定义的,二叉排序树或者是一棵空树,或者是具有下列性质的二叉树: (1)若左子树不空,则左 ...
- HDU 1033
http://acm.hdu.edu.cn/showproblem.php?pid=1033 这题的题干说的很绕,结合样例不难理解题意,走折线,A代表顺时针,V代表逆时针,给一个包含A和V的字符串,输 ...
- python类中self是什么
参考文献:http://www.cnblogs.com/linuxcat/archive/2012/01/05/2220997.html 注: (1)self在定义类的方法时是必须有的. (2)调用时 ...
- BJOI 模拟赛 #3 题解
T1 一个网格,每个点有权值,求有多少条路径权值乘积不小于 $n$ $R,C \leq 300, n \leq 10^6$ sol: 暴力 dp 是 $O(R \times C \times n)$ ...
- Hash学习小结
Hash 简要说明 \(OI\)中一般采用进制\(hash\).模数可以用\(unsigned \ long \ long\)自然溢出,也可以使用大质数.值得一提的是,\(unsigned\ long ...
- Roslyn 入门:使用 Visual Studio 的语法可视化窗格查看和了解代码的语法树
使用 Visual Studio 提供的 Syntax Visualizer,我们可以实时看到一个代码文件中的语法树.这对我们基于 Roslyn 编写静态分析和修改工具非常有帮助.本文将介绍如何安装它 ...