VGG网络讲解——小白也能懂

这篇具有很好参考价值的文章主要介绍了VGG网络讲解——小白也能懂。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

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结构简介

我们上文已经说了,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种网络结构,其中VGG16VGG19分类效果最好(1619层隐藏层),证明了增加网络深度能在一定程度上影响最终的性能。 两者没有本质的区别,只是网络的深度不一样。

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

VGG网络讲解——小白也能懂 

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

VGG网络讲解——小白也能懂

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

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

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

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

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

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层:作者发现深度网络中LRNLocal Response Normalization,局部响应归一化)层作用不明显。

3.VGG亮点所在

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

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

计算量

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

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

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

感受野

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

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

VGG网络讲解——小白也能懂

Fi)为第i层感受野

strider为第i步的步距

ksize为卷积核或池化核尺寸

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

以下图为例:VGG网络讲解——小白也能懂

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

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

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

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

到了这里,关于VGG网络讲解——小白也能懂的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 《 Arm Compiler 5.06 》__ARM编译器官网下载、安装和使用说明(小白也能懂)

    目录 一、前言 二、官方网站下载 三、我的资源 四、编译器安装在 Keil 软件上  五、Keil选择编译器V5 “ V5.06 update 7(build 960) ” 六、测试 (* ̄︶ ̄)创作不易!期待你们的 点赞、收藏和评论喔。         【Keil MDK-Arm5.37】不再默认安装 《 Arm Compiler 5.06  》 ,而安装的只有最新

    2024年02月03日
    浏览(115)
  • 《 STM32 ST-LINK Utility 》__代码下载工具下载、安装和使用说明(小白也能懂)

    目录 一、什么是STM32 ST-LINK Utility? 二、STM32 ST-LINK Utility有什么用? 三、官方途径下载软件! 四、我的资源 五、安装 六、怎么用? 1、比如我们经常使用的Keil是如何生成hex 2、读取STM32内部FLASH及芯片信息 3、打开hex程序 4、下载程序  (* ̄︶ ̄)创作不易!期待你们的 点赞、

    2024年02月06日
    浏览(50)
  • 低代码!小白用10分钟也能利用flowise构建AIGC| 业务问答 | 文本识别 | 网络爬虫

    flowise工程地址:https://github.com/FlowiseAI/Flowise flowise 官方文档:https://docs.flowiseai.com/ 这里采用docker安装: step1: 克隆工程代码 (如果网络不好,下载压缩文件也是一样) step2: 进入工程目录docker文件下复制 .env.example 内容创建 .env 关于这个文件参数说明:https://github.com/Flow

    2024年02月04日
    浏览(45)
  • 小白也能看懂的 AUC 详解

    上篇文章 小白也能看懂的 ROC 曲线详解 介绍了 ROC 曲线。本文介绍 AUC。AUC 的全名为 A rea U nder the ROC C urve,即 ROC 曲线下的面积,最大为 1。 根据 ROC 和 AUC 的关系,我们可以得到如下结论 ROC 曲线接近左上角 --- AUC 接近 1:模型预测准确率很高 ROC 曲线略高于基准线 --- AUC 略大

    2024年02月06日
    浏览(49)
  • 小白也能看懂的ChatGPT知识介绍

    ChatGPT 是一款由 OpenAI 开发的人工智能技术驱动的语言模型应用。以下是 ChatGPT 的主要特点和功能: 自然语言处理:ChatGPT 可以识别和理解自然语言,包括英语、法语、德语、西班牙语等多种语言。它可以回答各种问题、提供各种建议,并与人类进行自然的对话。 语言模型:

    2024年02月06日
    浏览(47)
  • Java 零基础入门学习(小白也能看懂!)

    📚博客主页:爱敲代码的小杨. ✨专栏:《Java SE语法》 ❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️ 1.1.1什么是 Java Java是一种优秀的程序设计语言 ,它具有令人赏心悦目的语法和易于理解的语义。 不仅如此, Java还是一个有一系列计算机软

    2024年01月19日
    浏览(52)
  • 小白也能看懂的零信任SDP介绍

    SDP全称是Software Defined Perimeter,即软件定义边界,是由国际云安全联盟CSA于2013年提出的基于零信任(Zero Trust)理念的新一代网络安全技术架构。 一个经典访问关系普遍都可汇总为这样的访问模型:【终端】-【网络】-【业务系统】。访问最初是由终端产生请求,通过网络发送给

    2024年02月08日
    浏览(44)
  • STP生成树协议(超详细小白也能看懂)

    目录 一、为什么要用STP 二、STP的作用 三、STP操作 四、STP名词解释: 五、生成树选举办法 六、生成树选举因素 七、根桥选举: 八、根端口的选举 九、端口状态 十、定时器 十一、故障恢复时间         十二、广播风暴 十三、广播风暴危害 十四、BPDU组成 十五、STP的一

    2024年02月09日
    浏览(40)
  • 小白也能玩转Docker:应用部署、迁移与备份

    目录 1、应用部署 1.1、Mysql 1.2、Ngixn 1.3、Redis 1.4、RabbitMQ 1.5、Elasticsearch 1.6、Zookeeper 2、迁移与备份 2.1容器保存为镜像 2.2镜像备份 2.3镜像恢复与迁移 1.1、Mysql 拉取mysql的镜像: 为mysql镜像创建一个容器(守护进程方式创建): 进入mysql容器中 在容器中登录本地的mysql数据库:

    2024年02月10日
    浏览(84)
  • 干货|小白也能自制电子相册赶紧码住~

    你是否想拥有一个独一无二的电子相册,却又苦于不知道如何下手?今天教你一个简单的方法,即使你是小白,也能轻松自制电子相册! 一、选择合适的工具 首先,你需要选择一个合适的工具来制作电子相册。有很多工具可供选择,包括手机APP、在线制作网站等。推荐大家

    2024年02月07日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包