目录

1.VGG网络简介

一.VGG概述

二.VGG结构简介

2.VGG的优点

3.VGG亮点所在

计算量

感受野


1.VGG网络简介

一.VGG概述

VGGNet是牛津大学视觉几何组(Visual Geometry Group)提出的模型,该模型在2014ImageNet图像分类与定位挑战赛 ILSVRC-2014中取得在分类任务第二,定位任务第一的优异成绩。VGGNet突出的贡献是证明了很小的卷积,通过增加网络深度可以有效提高性能。VGG很好的继承了Alexnet的衣钵同时拥有着鲜明的特点。相比Alexnet ,VGG使用了更深的网络结构,证明了增加网络深度能够在一定程度上影响网络性能。

说得简单点,VGG就是五次卷积的卷积神经网络。

二.VGG结构简介

我们上文已经说了,VGG其实就是五层卷积。我们来看这个图:

这个图是作者当时六次实验的结果图。在介绍这个图前,我先进行几个概念说明:卷积层全部为3*3的卷积核,用conv3-xxx来表示,xxx表示通道数。

在这个表格中,我们可以看到,

第一组(A)就是个简单的卷积神经网络,没有啥花里胡哨的地方。

第二组(A-LRN)在第一组的卷积神经网络的基础上加了LRN(小白们不用太过了解这个,现在已经不是主流了,LRN是Alexnet中提出的方法,在Alexnet中有不错的表现 )

第三组(B)在A的基础上加了两个conv3,即多加了两个3*3卷积核

第四组(C)在B的基础上加了三个conv1,即多加了三个1*1卷积核

第五组(D)在C的基础上把三个conv1换成了三个3*3卷积核

第六组(E)在D的基础上又加了三个conv3,即多加了三个3*3卷积核

初高中就告诉我们,实验要控制变量(单一变量),你看,用到了吧

那么,我们从这一组实验中能得到什么结果呢?

1.第一组和第二组进行对比,LRN在这里并没有很好的表现,所以LRN就让他一边去吧

2.第四组和第五组进行对比,cov3比conv1好使

3.统筹看这六组实验,会发现随着网络层数的加深,模型的表现会越来越好

据此,咱们可以简单总结一下:论文作者一共实验了6种网络结构,其中VGG16和VGG19分类效果最好(16、19层隐藏层),证明了增加网络深度能在一定程度上影响最终的性能。 两者没有本质的区别,只是网络的深度不一样。

接下来,以VGG16为例作具体讲解:

相信有小白会疑惑:组号下面那个weight layers 是啥意思?别急,看下面:

看这几个数字加起来,是不是就是16?

就像上图展示的,除了黄色的maxpool(池化层),其他所有层数的总和,就是16,同理,VGG19也一样。

那么,为什么不算池化层呢?

这是因为,池化层没有权重系数,而其他层都有,所以.....

那么,我们接下来去看VGG是如何工作的:

看,一个长224,宽224,通道数3的图,经过第一个模块,通道数增加到64,随后经过池化层长宽减半。然后到第二个模块,通道数增加到128,到池化层长宽再减半......

一直到最后一次池化,得到7×7×512的结果,然后通过三个全连接层,变成最后的1×1×1000的分类结果(也不一定是一千,这里的1000是当时的比赛结果)

2.VGG的优点

1.小卷积核组:作者通过堆叠多个3*3的卷积核(少数使用1*1)来替代大的卷积核,以减少所需参数;

2.小池化核:相比较于AlexNet使用的3*3的池化核,VGG全部为2*2的池化核;

3.网络更深特征图更宽:卷积核专注于扩大通道数,池化专注于缩小高和宽,使得模型更深更宽的同时,计算量的增加不断放缓;

4.将卷积核替代全连接:作者在测试阶段将三个全连接层替换为三个卷积,使得测试得到的模型结构可以接收任意高度或宽度的输入。

5.多尺度:作者从多尺度训练可以提升性能受到启发,训练和测试时使用整张图片的不同尺度的图像,以提高模型的性能。

6.去掉了LRN层:作者发现深度网络中LRN(Local Response Normalization,局部响应归一化)层作用不明显。

3.VGG亮点所在

在AlexNet中,作者使用了11x11和5x5的大卷积,但大多数还是3x3卷积,对于stride=4的11x11的大卷积核,理由在于一开始原图的尺寸很大因而冗余,最为原始的纹理细节的特征变化可以用大卷积核尽早捕捉到,后面更深的层数害怕会丢失掉较大局部范围内的特征相关性,后面转而使用更多3x3的小卷积核和一个5x5卷积去捕捉细节变化。

而VGGNet则全部使用3x3卷积。因为卷积不仅涉及到计算量,还影响到感受野。前者关系到是否方便部署到移动端、是否能满足实时处理、是否易于训练等,后者关系到参数更新、特征图的大小、特征是否提取的足够多、模型的复杂度和参数量等。

计算量

VGG16相比AlexNet的一个改进是采用连续的几个3x3的卷积核代替AlexNet中的较大卷积核(11x11,7x7,5x5)。对于给定的感受野(与输出有关的输入图片的局部大小),采用堆积的小卷积核是优于采用大的卷积核,因为多层的非线性层可以增加网络深度来保证学习更复杂的模式,而且代价还比较小(参数更少)。

在VGG中,使用了3个3x3卷积核来代替7x7卷积核,使用了2个3x3卷积核来代替5*5卷积核,这样做的主要目的是在保证具有相同感知野的条件下,提升网络的深度,在一定程度上提升神经网络的效果。

比如,3个3x3连续卷积相当于1个7x7卷积:3个3*3卷积的参数总量为 3x(3×3×C2) =27C2,1个7x7卷积核参数总量为1×7×7×C2 ,这里 C 指的是输入和输出的通道数。很明显,27<49,即最终减少了参数,而且3x3卷积核有利于更好地保持图像性质,多个小卷积核的堆叠也带来了精度的提升。

感受野

简单理解就是输出feature map上的一个对应输入层上的区域大小。

计算公式:(从深层推向浅层)

F(i)为第i层感受野

strider为第i步的步距

ksize为卷积核或池化核尺寸

说白了,感受野其实就是结果层一个神经元节点发生变动能影响多少个输入层神经元节点。

以下图为例:

第一幅图大家可以看到,1个神经元连接了上一层3个神经元,第二幅图连接5个,第三幅图连接7个。并且大家发现没有,一次5*5卷积下来和两次3*3卷积得到的神经元相同, 一次7*7卷积下来和三次3*3卷积得到的神经元相同。

并且,大家也可以在最左边的图推一推,更改最后一层的一个节点将会影响第一层的7个节点,再看看最右边的图,改最后一层的一个节点将会影响第一层的7个节点。这就代表了3个conv3与一个conv7最终所得到的结果的感受野相同。

于是,在相同感受野的情况下:

堆叠小卷积核相比使用大卷积核具有更多的激活函数、更丰富的特征,更强的辨别能力。卷积后都伴有激活函数,可使决策函数更加具有辨别能力;此外,3x3比7x7就足以捕获细节特征的变化:3x3的9个格子,最中间的格子是一个感受野中心,可以捕获上下左右以及斜对角的特征变化;3个3x3堆叠近似一个7x7,网络深了两层且多出了两个非线性ReLU函数,网络容量更大,对于不同类别的区分能力更强

VGG网络讲解——小白也能懂相关推荐

  1. 计组(唐第三版)|数电小白看得懂的74138译码器及电路(例4.1的补充讲解)

    目录 前言 讲解问题 1. 快速理解基本的电路符号 a.高低电平 b. 高电平有效和低电平有效的理解及表示 c.基本的门元件 2. 数电小白也能看得懂的74138译码器 c. 74138译码器结构功能 ...

  2. 深度学习小白如何看懂神经网络模型/图?

    深度学习小白如何看懂神经网络模型/图? 神经网络的图还是比较容易看懂的,比电路图什么的要好懂多了.只是刚开始接触有些不习惯罢了,多看一些就好了. 下面举几张神经网络图作为例子(由简单到复杂). 简单的 ...

  3. 【转载】计算机视觉~VGG网络

    [转载:一文读懂VGG网络 - Amusi的文章 - 知乎 https://zhuanlan.zhihu.com/p/41423739] 目录 前言 VGG原理 VGG网络结构 VGG优缺点 VGG优 ...

  4. CNN基本步骤以及经典卷积(LeNet、AlexNet、VGGNet、InceptionNet 和 ResNet)网络讲解以及tensorflow代码实现

    课程来源:人工智能实践:Tensorflow笔记2 文章目录 前言 1.卷积神经网络的基本步骤 1.卷积神经网络计算convolution 2.感受野以及卷积核的选取 3.全零填充Padding 4. ...

  5. 视频教程-ps基础课程绝对初级,小白听得懂-Photoshop

    ps基础课程绝对初级,小白听得懂 微博认证教育博主,office及设计专业培训讲师.百度.新浪.搜狐.网易等自媒体签约作者 Bob ¥12.00 立即订阅 扫码下载「CSDN程序员学院APP」,100 ...

  6. MobileNetv1、MobileNetv2、MobileNetv3网络讲解

    目录 前言 一.MobileNetv1 1.1.传统卷积 1.2.DW卷积 1.3.深度可分离卷积(Depthwise Separable Conv) 1.4.网络架构 1.5.超参数 α , ρ \ ...

  7. pytorch 搭建 VGG 网络

    目录 1. VGG 网络介绍 2. 搭建VGG 网络 3. code 1. VGG 网络介绍 VGG16 的网络结构如图: VGG 网络是由卷积层和池化层构成基础的CNN 它的CONV卷积层的参数全部 ...

  8. slim php dd model,第二十四节,TensorFlow下slim库函数的使用以及使用VGG网络进行预训练、迁移学习(附代码)...

    在介绍这一节之前,需要你对slim模型库有一些基本了解,具体可以参考第二十二节,TensorFlow中的图片分类模型库slim的使用.数据集处理,这一节我们会详细介绍slim模型库下面的一些函数的使用 ...

  9. 9篇小白都能懂系列博客学完MySQL基础

    博主经过三天的时间整理终于把MySOL基础部分内容总结成了这九篇博客,如果博主漏写了重点的基础部分的内容,或者说博主写的地方有错误还请CSDN的兄弟们提醒(这一点就比较重要了),由于博主的时间比较有限 ...

最新文章

  1. java命令行生成jar_命令行生成可执行的jar包
  2. 修改Chrome的UserAgent
  3. Android开发8:UI组件TextView,EditText,Button
  4. cocos2d-x游戏实例(26)-简易动作游戏(4)
  5. 深度解密Go语言之Slice
  6. 【渝粤教育】国家开放大学2018年秋季 0233-22T学前儿童语言教育 参考试题
  7. Jmeter Web 性能测试入门 (四):一个小实例带你学会 Jmeter 脚本编写
  8. PHP PDO连接PostgreSQL报错 SCRAM authentication requires libpq version 10 or above in解决
  9. Js 获取 本周、本月起始时间
  10. PR模板 红黑大气手机竖屏竖版时尚短视频宣传抖音PR模板
  11. echarts饼图自动显示数据
  12. 网络套接字------IP地址
  13. MFC控件绘制透明png图片或者半透明图片
  14. 数据脱敏,你会了吗(二)
  15. 本周涨粉一倍,我决定再开源一个商超管理系统
  16. 一天一篇latex刘海洋代码解析:1.2.4 命令与环境
  17. 【K210学习笔记】#MaixPy#(3)人脸检测与人脸识别
  18. 【转载】21世纪中国计算神经科学展望
  19. 工业机器人三点工具定位法图文_手把手教你工业机器人三点示教法
  20. PMP考试时间是什么时候?

热门文章

  1. 双非本科小渣渣的字节跳动Android岗面试题分享(已拿offer,分享攒人品~)
  2. 找工作,攒人品(4)
  3. QQmail2007
  4. 华为硬件工程师社招机考题库_华为硬件工程师笔试、面试题
  5. GPL和AGPLv3的区别
  6. 共射极放大电路静态工作点自动调整分析
  7. 从零开始 教你如何搭建Discuz!4.1论坛(图)
  8. Unity3d 微信小程序(小游戏)项目实现流量主接入功能(含源码)
  9. m4a转mp3,flac转mp3,wav转mp3
  10. windows服务部署