计算机系统应用教程网站

网站首页 > 技术文章 正文

[人工智能 深度学习 34]:卷积神经网络CNN VGG16/VGG19网络结构分析

btikc 2024-09-16 12:58:10 技术文章 26 ℃ 0 评论

第1章 VGG网络概述

1.1 VGG网络概述

VGG模型是2014年ILSVRC竞赛的第二名,第一名是GoogLeNet。

模型的名称——“VGG”代表了牛津大学的Oxford Visual Geometry Group(牛津视觉几何组),该小组隶属于1985年成立的Robotics Research Group,该Group研究范围包括了机器学习到移动机器人。

1.2 VGG网络特点与改进

VGG在AlexNet基础上做了改进,整个网络都使用了同样大小的3*3卷积核尺寸和2*2最大池化尺寸,网络结果简洁。

(1)小卷积核。作者将卷积核全部替换为3x3(极少用了1x1);

VGG16相比AlexNet的一个改进是采用连续的几个3x3的卷积核代替AlexNet中的较大卷积核(11x11,7x7,5x5)。

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

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

比如,3个步长为1的3x3卷积核的一层层叠加作用可看成一个大小为7的感受野(其实就表示3个3x3连续卷积相当于一个7x7卷积),其参数总量为 3x(9xC^2) ,如果直接使用7x7卷积核,其参数总量为 49xC^2 ,这里 C 指的是输入和输出的通道数。很明显,27xC^2小于49xC^2,即减少了参数;而且3x3卷积核有利于更好地保持图像性质。

小的卷积核的好处:

有利于提取大图片中,局部的特征。

有利于通过细微特征,对图片进行区分。

(2)小池化核。相比AlexNet的3x3的池化核,VGG全部为2x2的池化核;

(3)多个卷积层后才会有一次池化层,并非1:1关系。

(4)层数更深,抽象程度更高

(5)特征图更宽,特征信息更丰富

(6)卷积核专注于扩大通道数,即增加特征图的个数。

(7)池化专注于缩小宽和高。

(8)模型架构上更深更宽的同时,计算量的增加放缓;

(9)全连接层:VGG可是有3个全连接层。

1.3 缺点

参数量有140M之多,需要更大的存储空间。

网上有的文章称:发现这些全连接层即使被去除,对于性能也没有什么影响,这样就显著降低了参数数量。本文作者并没有做实验进行比较。

VGG相对其他的方法,参数空间很大,最终的model有500多m,AlexNet只有200m,GoogLeNet更少,所以train一个vgg模型通常要花费更长的时间。

所幸有公开的pretrained model(其他人预先训练好的模型)让我们很方便的使用。

第2章 网络结构分析

2.1 网络结构描述 - 厚度法

这种方式只能描述一种网络结构。

以网络结构D(VGG16)为例,介绍其各层的处理过程如下:

(0)输入224x224x3的图片

(1)第一轮:3次卷积

  • 经64个3x3的卷积核作两次卷积+ReLU,卷积后的尺寸变为224x224x64
  • 作max pooling(最大化池化),池化单元尺寸为2x2(效果为图像尺寸减半),池化后的尺寸变为112x112x64

(2)第2轮:3次卷积 +1一次池化

  • 经128个3x3的卷积核作两次卷积+ReLU,尺寸变为112x112x128
  • 作2x2的max pooling池化,尺寸变为56x56x128

(3)第3轮:3次卷积 + 1次池化

  • 经256个3x3的卷积核作三次卷积+ReLU,尺寸变为56x56x256
  • 作2x2的max pooling池化,尺寸变为28x28x256

(4)第4轮:3次卷积 + 1次池化

  • 经512个3x3的卷积核作三次卷积+ReLU,尺寸变为28x28x512
  • 作2x2的max pooling池化,尺寸变为14x14x512

(5)第5论3次卷积 + 1次池化

  • 经512个3x3的卷积核作三次卷积+ReLU,尺寸变为14x14x512
  • 作2x2的max pooling池化,尺寸变为7x7x512

(6)第6轮:3次全连接

  • 与两层1x1x4096,一层1x1x1000进行全连接+ReLU(共三层)
  • 通过softmax输出1000个预测结果

2.2 网络结构描述 - 列表法

这种方式适合描述多个相似的网络结构

2.3 网络结构描述- 堆叠法

这种方式可以描述任意的网络结构

2.4 网络结构分析

(1)VGG不是单一的网络结构,而是有多种不同的网络结构组成的系列。

如VGG16表示为16层的VGG, VGG19表示为19层的VGG.

如VGG16-C, VGG16-D

(2)整个网络输出分类数为1000,即能够进行1000种图片的分类。

(3)由于卷积核的大小,都为3 * 3,因此在某些形式的网络结构图中就不用再体现了。卷积核的大小,对参数量和计算量都是强相关的。

(4)由于池化层的大小,都是2 * 2,因此在网络结构图中就不用再体现了。

(5)3*3 conv,64表示:3*3表示卷积核的大小,64表示卷积核的个数,因此这种描述方式可以表达该层的参数的个数,但无法表达计算量的大小。

总结:

VGG网络,仅仅在网络的规模层面上进行了扩展,并没有对网络的架构进行变革,只是简单的通过增加网络的层数以及卷积层的尺寸而已。

————————————————

感谢大家的支持和喜欢,小编会每天分享更多Python学习的干货知识给大家,所以大家别忘了关注小编哦。

版权声明:本文为CSDN博主「文火冰糖的硅基工坊」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/HiWangWenBing/article/details/120894643

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表