VGGNet网络(2014年提出)

VGGNet网络(2014年提出)

1.VGGNet网络详解

1.VGG在2014年由牛津大学著名研究组VGG(Visual Geometry Group,视觉几何组)提出,斩获该年ImageNet竞赛(ILSVRC)中Localization Task(定位任务)第一名和Classification Task(分类任务)第二名。

到目前为止(2020.10),VGGNet依然被广泛用来提取图像特征。

原论文:Very Deep Convolutional Networks For Large-Scale Image Recognition

  1. 优点
  • 与2012年的AlexNet网络相比,VGGNet统一了网络中使用的参数,卷积核尺寸统一为3×3

    conv的stride为1,padding为1

    maxpool的size为2,stride为2

  • 增加了卷积神经网络模型架构的深度,分别定义了16层的VGG16模型和19层的VGG19模型,与AlexNet的8层结构相比,其深度更深。

  1. 意义

上面两个重要的改变(优点)对于人们重新定义卷积神经网络模型架构也有不小的帮助,至少证明了使用更小的卷积核并增加卷积神经网络的深度可以更有效的提升模型的性能。

在这里插入图片描述

表1

表1显示了6个VGG网络的配置,在这6个配置当中,作者尝试了不同的深度,以及是否使用LRN(局部响应归一化),以及对比卷积核大小为1和卷积核大小为3的效果。

但在使用过程中常常使用的是配置D,16层(13层卷积层,3层全连接层):VGG16

  1. 网络中的亮点
  • 通过堆叠多个3×3的小卷积核来代替大尺度卷积核(5×5、11×11)(目的:减少所需训练参数

优势

  • 减少了计算量
  • *多层小尺寸卷积核的非线性要优于单层大尺寸卷积,从而增加了网络的表征能力
  • 小尺寸卷积核更有利于提取图像的微小视觉特征

论文中提到,可以通过堆叠两个3×3的卷积核替代5×5的卷积核;

堆叠三个3×3的卷积核替代7×7的卷积核。

拥有相同的感受野

  • 可堆叠的块状网络结构

VGGNet多次重复使用同一尺寸的卷积核,以便提取更为复杂和更具有表达性的图像特征

这种通过重复使用简单的基础模块(blocks/modules)来构建深度神经网络模型的思路,因此VGGNet之后被广泛采用。

  • 每次的卷积都采用Same卷积,图像的尺寸不发生改变,而提取的特征却在增多
  • 相比于AlexNet,VGG16提取特征会更加细致,也就决定了它更加出色的性能。

VGG16的网络体系十分庞大,需要训练的参数极多,但是其结构十分规整简单

每一次卷积的卷积核的个数都是上一次卷积的卷积核个数的2倍,直到最后卷积核的个数达到了512。

可能该网络的作者觉得不能再多下去了,于是又做了一次卷积核个数为512的卷积。

  • VGGNet简单灵活,拓展性强,并且迁移到其他数据集上的泛化性能也很好,因此,时至今日仍然有很多深度学习算法采用VGGNet网络结构,目前常用的是VGGNet-16和VGGNet-19.

  • VGG16在最后输出采用了Softmax分类器,这使得VGG16在处理图像分类问题同样可以得心应手。

  1. 缺点

    网络参数规模急剧增加导致网络训练更加复杂运算速度较慢

2.CNN感受野

  1. 概念

    在卷积神经网络中,决定某一层输出结果中一个元素所对应的输入层的区域大小,称为感受野(receptive field)。

    通俗来讲,输出feature map上的一个单元对应输入层上的区域大小。如图1

在这里插入图片描述
图1

  1. 感受野计算公式

F ( i ) = ( F ( i + 1 ) − 1 ) × S t r i d e + K s i z e F(i)=(F(i+1)-1)×Stride+Ksize F(i)=(F(i+1)1)×Stride+Ksize

F(i)为第i层感受野,

Stride为第i层的步距

Ksize为卷积核或池化核尺寸

感受野大小
Feature mapF(3)=1
MaxPool1F(2)=[F(3)-1]×2+2=[1-1]×2+2=2
Conv1F(1)=[F(2)-1]×2+3=[2-1]×2+3=5

即:图1中最顶上的第三层feature map中的一个单位,在原图(最底层/第一层)中拥有5×5的感受野

验证:堆叠三个3×3的卷积核替代7×7的卷积核。

注:在VGG网络中,卷积的stride默认为1×1

假设原图通过三层卷积层之后得到feature map,那么feature map上的一个单位对应原图中的感受野是多大呢?答案:7×7 验证正确

感受野大小
Feature mapF(4)=1
Conv3×3F(3)=(F(4)-1)×1+3=3
Conv3×3F(2)=(F(3)-1)×1+3=5
Conv3×3F(1)=(F(2)-1)×1+3=7

验证:堆叠三个3×3的卷积核替代7×7的卷积核的目的是减少所需训练参数

步骤:(假设输入输出特征矩阵channel(深度)为C)

使用7×7卷积核所需参数:7×7×C(输入特征矩阵深度)×C(卷积核个数)=49C²

堆叠三个3×3卷积所需参数:3×3×C×C+3×3×C×C+3×3×C×C=27C²

结果:验证正确

堆叠多个小的卷积核所对应的感受野和采用一个大卷积核所对应的感受野相同,并且使用多个小的卷积核进行堆叠所需要的参数更少。

3.VGGNet16网络结构

VGG16网络结构如图2

在这里插入图片描述

图2

使用过程中常常使用的是配置D,16层(13层卷积层,3层全连接层)

与2012年的AlexNet网络相比,VGGNet统一了网络中使用的参数,卷积核尺寸统一为3×3

conv的stride为1,padding为1

maxpool的size为2,stride为2

增加了卷积神经网络模型架构的深度,分别定义了16层的VGG16模型和19层的VGG19模型,与AlexNet的8层结构相比,其深度更深。

VGG16模型参数:

layer_nameinputkernel_sizestridepaddingoutput
Input224×224×3
Conv3-64224×224×33×3×6411224×224×64
Conv3-64224×224×643×3×6411224×224×64
MaxPool224×224×642×220112×112×64
Conv3-128112×112×643×3×12811112×112×128
Conv3-128112×112×1283×3×12811112×112×128
MaxPool112×112×1282×22056×56×128
Conv3-25656×56×1283×3×2561156×56×256
Conv3-25656×56×2563×3×2561156×56×256
Conv3-25656×56×2563×3×2561156×56×256
MaxPool56×56×2562×22028×28×256
Conv3-51228×28×2563×3×5121128×28×512
Conv3-51228×28×5123×3×5121128×28×512
Conv3-51228×28×5123×3×5121128×28×512
MaxPool28×28×5122×22014×14×512
Conv3-51214×14×5123×3×5121114×14×512
Conv3-51214×14×5123×3×5121114×14×512
Conv3-51214×14×5123×3×5121114×14×512
MaxPool14×14×5122×2207×7×512
FC-40967×7×5124096
FC-409640964096
FC-100040961000
Softmax1000

代码运行结果

代码参考:

b站博主@霹雳吧啦Wz:https://www.bilibili.com/video/BV1i7411T7ZN/?spm_id_from=333.999.0.0&vd_source=647760d93691c99109dee33aad004b62

github:https://gitcode.net/mirrors/wzmiaomiao/deep-learning-for-image-processing?utm_source=csdn_github_accelerator

代码位置:\deep-learning-for-image-processing-master\pytorch_classification\Test3_vggnet
数据集使用花分类数据集

VGGNet网络train.py训练结果

训练准确率:72.8%

在这里插入图片描述

VGGNet预测准确率:100%
在这里插入图片描述

在这里插入图片描述

4.参考文献

  1. 《深度学习与神经网络》 赵眸光 编著

出版社:电子工业出版社 2023年1月第一版

ISBN: 978-7-121-44429-6

  1. 《深度卷积神经网络 原理与实践》周浦城 李从利 王勇 韦哲 编著

出版社:北京:电子工业出版社,2020.10

ISBN: 978-7-121-39663-2

  1. 《Python神经网络 入门与实践》 王凯 编著

出版社:北京大学出版社

ISBN: 9787301316290

  1. b站博主@霹雳吧啦Wz:https://www.bilibili.com/video/BV1q7411T7Y6/?spm_id_from=333.788&vd_source=647760d93691c99109dee33aad004b62
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: VGGNet是一种深度卷积神经网络结构,由英国牛津大学的研究团队提出。它包含多个卷积层和池化层,网络深度较大,可以用于图像分类和物体识别等任务。其主要特点是卷积核大小固定为3×3,且每个卷积层的通道数都相同,可以通过改变网络深度和通道数来控制模型复杂度。 ### 回答2: VGGNet是一种卷积神经网络的架构,由牛剑英国牛津大学的研究团队于2014提出。它是提出最简单且最有力的CNN模型之一,也被广泛应用于计算机视觉任务中。 VGGNet的核心思想是使用多个小尺寸的卷积核和池化层来替代大尺寸的卷积核,以增加网络的深度。它的基本模块包括堆叠的卷积层和池化层,最后接上几个全连接层。网络的输入是固定尺寸的图像,输出是对不同类别的分类结果。 VGGNet的网络结构非常简单,它共有16个卷积层和3个全连接层。卷积层中的卷积核大小都是3x3像素大小,步长为1像素,填充为1像素,以保持输入和输出的尺寸一致。其中,每两个卷积层后面紧跟一个2x2像素的最大池化层,步长为2像素。这样的结构有助于提取图像中不同层级的特征。 卷积层和池化层在网络中以不同的命名表示,如"conv"代表卷积层,"pool"代表池化层,后面的数字表示其在网络中的顺序。全连接层以"fc"命名。最后一个全连接层的输出通过softmax函数来进行分类。 VGGNet通过增加网络的深度达到了较好的效果,但它的复杂度也随之增加。在一些计算资源有限的设备上,如移动设备,可能需要考虑到其计算和存储的开销。因此,后续的模型设计中,人们会对VGGNet进行改进,以在保持性能的同时减少计算和存储资源的需求。 ### 回答3: VGGNet是由牛津大学计算机视觉组提出的深度卷积神经网络结构。它在2014的ImageNet图像识别竞赛中取得了第二名的成绩,其突出特点是深度和简洁。 VGGNet的网络结构主要由卷积层、池化层和全连接层组成。它采用了多个小尺寸的卷积核(3x3),通过多个卷积层的叠加来增加网络的深度。同时,卷积层后面跟着池化层,用于进行特征的降维和保留主要特征。 VGGNet的一个重要特点是网络的层数较深,整个结构共有16~19层,相较于之前的网络结构更加复杂。这使得网络能够学习到更加丰富的特征表示,从而提高了图像识别的性能。此外,VGGNet中没有使用复杂的损失函数,只使用了简单的softmax交叉熵损失函数进行训练。 在VGGNet中,全连接层被用于进行最终的分类,但是最后几个全连接层的参数较多,因此容易出现过拟合。为了解决这个问题,VGGNet采用了dropout的方法,以减少全连接层中参数的数量,从而缓解过拟合的情况。 总的来说,VGGNet的网络结构通过提高网络的深度和简洁化设计,显著提高了图像识别的性能。它的设计理念在后续的神经网络结构中也有广泛的应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值