自学内容网 自学内容网

卷积神经网络经典模型架构简介

【图书推荐】《PyTorch深度学习与企业级项目实战》-CSDN博客

《PyTorch深度学习与企业级项目实战(人工智能技术丛书)》(宋立桓,宋立林)【摘要 书评 试读】- 京东图书 (jd.com)

ImageNet是一个包含超过1 500万幅手工标记的高分辨率图像的数据库,大约有22 000个类别。ImageNet 项目于2007年由斯坦福大学的华人教授李飞飞创办,目标是收集大量带有标注信息的图片数据供计算机视觉模型训练。ImageNet 拥有 1 500 万幅标注过的高清图片,总共拥有22 000类,其中约有100万幅标注了图片中主要物体的定位边框。

而ILSVRC(ImageNet Large-Scale Visual Recognition Challenge,ImageNet大规模视觉识别挑战赛)成立于2010年,旨在提高大规模目标检测和图像分类的最新技术,ILSVRC作为最具影响力的竞赛,促进了许多经典的卷积神经网络架构的发展,功不可没。ILSVRC使用的数据都来自 ImageNet。

从2010年开始举办的ILSVRC比赛使用ImageNet数据集的一个子集,大概拥有120万幅图片,以及1 000类标注。该比赛一般采用top-5和top-1分类错误率作为模型性能的评测指标。top1是指概率向量中最大的作为预测结果,若分类正确,则为正确;而top5只要概率向量中最大的前5名里有分类正确的,则为正确。

加拿大著名科学家Yann LeCun等人在1998年提出LeNet-5这个经典的卷积神经网络模型(用于手写数字的识别)是深度学习的奠基之作,而2012年的冠军AlexNet网络模型首次将深度学习技术应用到大规模图像分类领域,证明了深度学习技术学习到的特征可以超越手工设计的特征。如图4-14所示,ILSVRC比赛分类项目,2012年冠军AlexNet(top-5错误率为16.4%,8层神经网络)、2014年亚军VGG(top-5错误率为7.3%,19层神经网络)、2014年冠军GoogleNet(top-5错误率为6.7%,22层神经网络)、2015年的冠军ResNet(top-5错误率为3.57%,152层神经网络)。

图4-14

这些经典的卷积神经网络模型及其性能的提升,开启了计算机视觉领域中的深度学习热潮。下面,我们就从LeNet-5模型开始为大家一一介绍这些模型。

4.3.1  LeNet-5[yx1] 

LeNet-5模型是1998年Yann LeCun教授在论文Gradient-based learning applied to document recognition中提出的,是第一个成功应用于手写数字识别问题的卷积神经网络,在那时的技术条件下就能取得低于1%的错误率。因此,LeNet这一卷积神经网络便在当时效力于全美几乎所有的邮政系统,用来识别手写邮政编码进而分拣邮件和包裹。当年美国大多数银行就是用它来识别支票上面的手写数字的,能够达到这种商用的地步,它的准确性可想而知。可以说,LeNet是第一个产生实际商业价值的卷积神经网络,同时也为卷积神经网络以后的发展奠定了坚实的基础。

LeNet-5这个网络虽然很小,但是它包含深度学习的基本模块:卷积层、池化层和全链接层,是其他深度学习模型的基础。这里我们对LeNet-5进行深入分析,同时通过实例分析加深对卷积层和池化层的理解。如图4-15所示,LeNet-5模型各层分别为由卷积层(Convolution Layer)、采样层(Subsampling Layer)、卷积层、采样层、全连接层(Full connection Layer)、全连接层、高斯连接层(Gaussian connections Layer)。从图4-15中可以看到,输入的是一幅手写的英文字母A,随后经过卷积层-下采样-卷积层-下采样-全连接层-全连接层,最终输出该图片属于每个数字的概率,实际测试的时候取最大概率值的索引值为最终预测值。

 图4-15

虽然是一个只有5层的小网络,但却是当之无愧的开创性工作。卷积使得神经网络可以共享权值,一方面减少了参数,另一方面可以学习图像不同位置的局部特征。

4.3.2  AlexNet

AlexNet在2012年被提交给ImageNet ILSVRC挑战,明显优于第二名。该网络使用更多层数,使用ReLU激活函数和0.5概率的Dropout来对抗过拟合。由于AlexNet相对简单的网络结构和较小的深度,AlexNet在今天仍然广泛使用。

AlexNet是Hinton和他的学生Alex Krizhevsky设计的,是2012年ImageNet比赛的冠军,这是第一个基于CNN的ImageNet冠军,网络比LeNet5更深。

AlexNet包含5个卷积层和3个全连接层,模型示意如图4-16所示。

AlexNet为8层结构,其中前5层为卷积层,后面3层为全连接层。AlexNet引用ReLU激活函数,成功解决了Sigmoid函数在网络较深时的梯度弥散问题;使用最大值池化,避免了平均池化的模糊化效果;并且,池化的步长小于核尺寸,这样使得池化层的输出之间会有重叠和覆盖,提升了特征的丰富性。

另外,为提高运行速度和网络运行规模,AlexNet采用双GPU的设计模式,并且规定GPU只能在特定的层进行通信交流。其实就是每一个GPU负责一半的运算处理。实验数据表示,two-GPU方案比只用one-GPU的方案,在准确度上提高了1.7%的top-1和1.2%的top-5。

图4-16

4.3.3  VGG

ILSVRC 2014的第二名是Karen Simonyan和 Andrew Zisserman实现的卷积神经网络,现在称其为VGG,网络结构如图4-17所示。它主要的贡献是揭示出网络深度是算法优良性能的关键点。

图4-17

从图中可以看到,A、A-LRN、B、C、D、E这6种网络结构相似,都是由5层卷积层、3层全连接层组成的,其区别在于每个卷积层的子层数量不同,从A至E依次增加(子层数量从1到4),总的网络深度从11层到19层(添加的层以粗体显示)。例如,上图表格中的con3-128表示使用3×3的卷积核,通道数为128。其中,网络结构D就是著名的VGG16,网络结构E就是著名的VGG19。VGG16是一个16层的神经网络,不包括最大池化层和Softmax层。因此被称为VGG16,而VGG19由19个层组成。

这些网络都遵循一种通用的设计,输入网络的是一个固定大小的224×224的RGB图像,所做的唯一预处理是从每个像素减去基于训练集的平均RGB值。图像通过一系列的卷积层时,全部使用3×3大小的卷积核。每个网络配置都是5个最大池化层,最大池化的窗口大小为2×2,步长为2。卷积层之后是三个全连接(Fully Connected,FC)层,前两层有4 096个通道,第三个层执行的是1 000路ILSVRC分类,因此包含1 000个通道(每个类一个)。最后一层是Softmax层。在A~E所有网络中,全连接层的配置是相同的。所有的隐藏层都使用RelU方法进行校正。

卷积层的宽度(即每一层的通道数)设置得很小,从第一层64开始,按照每过一个最大池化层进行翻倍,直到到达512。例如,conv3-64指的是卷积核大小为3×3,通道数量为64。全部使用3×3的卷积核和2×2的池化核,通过不断加深网络结构来提升性能。网络层数的增长并不会带来参数量上的爆炸,因为参数量主要集中在最后三个全连接层中。VGG虽然网络更深,但比AlexNet收敛得更快,缺点是占用内存较大。

VGG论文的一个主要结论就是深度的增加有益于精度的提升,这个结论堪称经典。连续3个3×3的卷积层(步长1)能获得和一个7×7的卷积层等效的感知域(Receptive Fields),而深度的增加在增加网络的非线性时减少了参数。从VGG之后,大家都倾向于使用连续多个更小的卷积层,甚至分解卷积核(Depthwise Convolution)。

但是,VGG简单地堆叠卷积层,而且卷积核太深(最多达512),特征太多,导致其参数猛增,搜索空间太大,正则化困难,因而其精度也不是最高的,在推理时相当耗时,和GoogLeNet相比性价比十分低。

4.3.4  GoogLeNet

GoogLeNet是ILSVRC 2014获奖者,是来自Google的Szegedy等人开发的卷积网络。其主要贡献是开发了一个Inception模块,该模块大大减少了网络中的参数数量。另外,这个论文在卷积神经网络的顶部使用平均池化(Average Pooling)而不是全连接层,从而消除了大量似乎并不重要的参数。GoogLeNet还有几个后续版本,最近的是Inception-v4。

GoogLeNet最吸引人的地方在于它的运行速度非常快,主要原因是它引入了Inception模块的新概念,这使得GoogLeNet更加有效地使用参数,GoogLeNet的参数量比AlexNet少10倍左右。

Inception的结构如图4-18所示。

图4-18

说明如下:

  1. 3×3+1(S)表示该层使用3×3的卷积核,步长为1,使用same填充(Padding)。
  2. 输入被复制4份,然后分别进行不同的卷积或池化操作。
  3. 图4-18中所有的卷积层都使用ReLU激活函数。
  4. 使用不同大小的卷积核就是为了能够在不同尺寸上捕获特征模式。
  5. 由于所有卷积层和池化层都使用了same填充和步长为1的操作,因此输出尺寸与输入尺寸相等。
  6. 最终将4个结果在深度方向上进行拼接。
  7. 使用1×1大小的卷积核是为了增加更多非线性。

GoogLeNet架构如图4-19所示。

说明如下:

  1. 卷积核前面的数字是卷积核或池化核的个数,也就是输出特征图的个数。
  2. GoogLeNet总共包括9个Inception结构(黄色矩形,颜色参见下载资源中的相关图片文件),黄色矩形中的6个数字分别代表Inception结构中卷积层的输出特征图个数。
  3. 所有卷积层都使用ReLU激活函数。
  4. 全局平均池化层输出每个特征图的平均值。

4.3.5  ResNet

深度残差网络(Deep Residual Network,ResNet)的提出是CNN图像史上的一件里程碑事件,如图4-20所示,ResNet在ILSVRC和COCO 2015上的战绩,ResNet取得了5项第一,并又一次刷新了CNN模型在ImageNet上的历史。深度残差网络将另文介绍。


原文地址:https://blog.csdn.net/brucexia/article/details/142210595

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!