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 map F(3)=1
MaxPool1 F(2)=[F(3)-1]×2+2=[1-1]×2+2=2
Conv1 F(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 map F(4)=1
Conv3×3 F(3)=(F(4)-1)×1+3=3
Conv3×3 F(2)=(F(3)-1)×1+3=5
Conv3×3 F(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_name input kernel_size stride padding output
Input 224×224×3
Conv3-64 224×224×3 3×3×64 1 1 224×224×64
Conv3-64 224×224×64 3×3×64 1 1 224×224×64
MaxPool 224×224×64 2×2 2 0 112×112×64
Conv3-128 112×112×64 3×3×128 1 1 112×112×128
Conv3-128 112×112×128 3×3×128 1 1 112×112×128
MaxPool 112×112×128 2×2 2 0 56×56×128
Conv3-256 56×56×128 3×3×256 1 1 56×56×256
Conv3-256 56×56×256 3×3×256 1 1 56×56×256
Conv3-256 56×56×256 3×3×256 1 1 56×56×256
MaxPool 56×56×256 2×2 2 0 28×28×256
Conv3-512 28×28×256 3×3×512 1 1 28×28×512
Conv3-512 28×28×512 3×3×512 1 1 28×28×512
Conv3-512 28×28×512 3×3×512 1 1 28×28×512
MaxPool 28×28×512 2×2 2 0 14×14×512
Conv3-512 14×14×512 3×3×512 1 1 14×14×512
Conv3-512 14×14×512 3×3×512 1 1 14×14×512
Conv3-512 14×14×512 3×3×512 1 1 14×14×512
MaxPool 14×14×512 2×2 2 0 7×7×512
FC-4096 7×7×512 4096
FC-4096 4096 4096
FC-1000 4096 1000
Softmax 1000

代码运行结果

代码参考:

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

猜你喜欢

转载自blog.csdn.net/seasonsyy/article/details/132676351
今日推荐