[人工智能-深度学习-34]:卷积神经网络CNN - 常见分类网络- VGG16/VGG19网络结构分析与详解
Posted 文火冰糖的硅基工坊
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[人工智能-深度学习-34]:卷积神经网络CNN - 常见分类网络- VGG16/VGG19网络结构分析与详解相关的知识,希望对你有一定的参考价值。
作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客
本文网址:https://blog.csdn.net/HiWangWenBing/article/details/120894643
目录
第1章 卷积神经网络基础
1.1 卷积神经发展与进化史
AlexNet是深度学习的起点,后续各种深度学习的网络或算法,都是源于AlexNet网络。
1.2 卷积神经网络的核心要素
1.3 卷积神经网络的描述方法
1.4 人工智能三巨头 + 华人圈名人
Yoshua Bengio、Yann LeCun、Geoffrey Hinton共同获得了2018年的图灵奖。
杰弗里·埃弗里斯特·辛顿(Geoffrey Everest Hinton),计算机学家、心理学家,被称为“神经网络之父”、“深度学习鼻祖”。Hinton是机器学习领域的加拿大首席学者,是加拿大高等研究院赞助的“神经计算和自适应感知”项目的领导者,是盖茨比计算神经科学中心的创始人,目前担任多伦多大学计算机科学系教授。2013年3月,谷歌收购 Hinton 的公司 DNNResearch 后,他便随即加入谷歌,直至目前一直在 Google Brain 中担任要职。
Yoshua Bengio是蒙特利尔大学(Université de Montréal)的终身教授,任教超过22年,是蒙特利尔大学机器学习研究所(MILA)的负责人,是CIFAR项目的负责人之一,负责神经计算和自适应感知器等方面,又是加拿大统计学习算法学会的主席,是ApSTAT技术的发起人与研发大牛。Bengio在蒙特利尔大学任教之前,是AT&T贝尔实验室 & MIT的机器学习博士后。
Yann LeCun,担任Facebook首席人工智能科学家和纽约大学教授,1987年至1988年,Yann LeCun是多伦多大学Geoffrey Hinton实验室的博士后研究员。
第2章 VGG网络概述
2.1 VGG网络概述
VGG模型是2014年ILSVRC竞赛的第二名,第一名是GoogLeNet。
模型的名称——“VGG”代表了牛津大学的Oxford Visual Geometry Group(牛津视觉几何组),该小组隶属于1985年成立的Robotics Research Group,该Group研究范围包括了机器学习到移动机器人。
2.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个全连接层。
2.3 缺点
- 参数量有140M之多,需要更大的存储空间。
网上有的文章称:发现这些全连接层即使被去除,对于性能也没有什么影响,这样就显著降低了参数数量。本文作者并没有做实验进行比较。
VGG相对其他的方法,参数空间很大,最终的model有500多m,AlexNet只有200m,GoogLeNet更少,所以train一个vgg模型通常要花费更长的时间。
所幸有公开的pretrained model(其他人预先训练好的模型)让我们很方便的使用。
第3章 网络结构分析
3.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个预测结果
3.2 网络结构描述 - 列表法
这种方式适合描述多个相似的网络结构
3.3 网络结构描述- 堆叠法
这种方式可以描述任意的网络结构
3.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网络,仅仅在网络的规模层面上进行了扩展,并没有对网络的架构进行变革,只是简单的通过增加网络的层数以及卷积层的尺寸而已。
作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客
本文网址:https://blog.csdn.net/HiWangWenBing/article/details/120894643
以上是关于[人工智能-深度学习-34]:卷积神经网络CNN - 常见分类网络- VGG16/VGG19网络结构分析与详解的主要内容,如果未能解决你的问题,请参考以下文章
[人工智能-深度学习-24]:卷积神经网络CNN - CS231n解读 - 卷积神经网络基本层级
[人工智能-深度学习-37]:卷积神经网络CNN - 重构神经网络的疑惑与思考?
[人工智能-深度学习-26]:卷积神经网络CNN - 为啥要卷积神经网络以及卷积神经网络的应用
[人工智能-深度学习-28]:卷积神经网络CNN - 网络架构与描述方法