卷积神经网络之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等 ...
随机推荐
- weblogic应用加载不上
这个的问题是编译的问题,在web-inf文件中的classes中少了config文件夹的配置信息 可在项目的build path 中的source中配置
- vue.js 源代码学习笔记 ----- $watcher
/* @flow */ import { queueWatcher } from './scheduler' import Dep, { pushTarget, popTarget } from '. ...
- (转)MapReduce Design Patterns(chapter 4 (part 1))(七)
Chapter 4. Data Organization Patterns 与前面章节的过滤器相比,本章是关于数据重组.个别记录的价值通常靠分区,分片,排序成倍增加.特别是在分布式系统中,因为这能提高 ...
- Java API访问ZK的权限控制
无权限访问结点 /** * 对于ZK的授权访问 * Created by liuhuichao on 2017/7/27. */ public class AutoSample { private s ...
- Java并发编程之CountDownLatch,CyclicBarrier实现一组线程相互等待、唤醒
java多线程应用场景不少,有时自己编写代码又不太容易实现,好在concurrent包提供了不少实现类,还有google的guava包更是提供了一些最佳实践,这让我们在面对一些多线程的场景时,有了不少 ...
- Windows下安装Web.py快速指南
环境介绍 首先介绍下安装使用的环境 - Windows 7 - Python 3.6 Web.py介绍 web.py是Python在Web领域一个轻量级的解决方案,所谓轻量,就是非常简单快速满足Web ...
- 使用编译时注解简单实现类似 ButterKnife 的效果
这篇文章是学习鸿洋前辈的 Android 如何编写基于编译时注解的项目 的笔记,用于记录我的学习收获. 读完本文你将了解: 什么是编译时注解 APT 编译时注解如何使用与编写 举个例子 思路 创建注解 ...
- 对于KVO,你真的了解么?
目录 关于面试 官方文档 核心代码 (Key-Value Observing) 进阶(手动创建KVO) 关于isa指针 参考文章链接 一.关于面试 面试官:谈一谈你对KVO的理解? A:添加响应者 ...
- 【剑指offer】反转链表,C++实现(链表)
1.题目 输入一个链表的头结点,首先反转链表后,然后输出链表的所有元素(牛客网). struct ListNode { int val; struct ListNode *next; }; 2.思路 ...
- 20179223《Linux内核原理与分析》第四周学习笔记
补交第三周作业 完成一个简单的时间片轮转多道程序内核 1.使用实验楼的虚拟机打开shell,用cd LinuxKernel/linux-3.9.4进入linux-3.9.4. 2.执行命令qemu - ...