基于深度卷积神经网络的图像分类_第1页
基于深度卷积神经网络的图像分类_第2页
基于深度卷积神经网络的图像分类_第3页
基于深度卷积神经网络的图像分类_第4页
基于深度卷积神经网络的图像分类_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选文库 SHANGHAI JIAO TONG UNIVERSITY 论文题目:基于卷积神经网络的自然图像分类技术研 究 姓名: 高小宁 专业:控制科学与工程 精选文库 基于卷积神经网络的自然图像分类技术研究 摘要:卷积神经网络已在图像分类领域取得了很好的效果,但其网络结构 及参数的选择对图像分类的效果和效率有较大的影响。为改善卷积网络的图像 分类性能,本文对卷积神经网络模型进行了详细的理论分析,并通过大量的对 比实验,得出了影响卷积网络性能的因素。结合理论分析及对比实验,本文设 计了一个卷积层数为 8 层的深度卷积网络,并结合 Batch Normalization、dropout 等方法,

2、在 CIFAR-10 数据集上取得了 88.1%的分类精 度,有效地提高了卷积神经网络的分类效果。 关键词:卷积神经网络,图像分类,Batch Normalization,Dropout Research on Natural Image Classification Based on Convolution Neural Network Abstract: Convolution neural network has achieved very good results in image classification, but its network structure and the ch

3、oice of parameters have a greater impact on image classification efficiency and efficiency. In order to improve the image classification performance of the convolution network, a convolutional neural network model is analyzed in detail, and a large number of contrastive experiments are conducted to

4、get the factors that influence the performance of the convolution network. Combining the theory analysis and contrast experiment, a convolution layer depth convolution network with 8 layers is designed. Combined with Batch Normalization and dropout, 88.1% classification accuracy is achieved on CIFAR

5、-10 dataset. Which improves the classification effect of convolution neural network. Key Words: Convolution neural network(CNN), image classification, Batch Normalization, Dropout 精选文库 目录目录 基于卷积神经网络的自然图像分类技术研究 .- 1 - 1 引言.- 3 - 2 卷积神经网络的模型分析.- 4 - 2.1 网络基本拓扑结构.- 4 - 2.2 卷积和池化.- 5 - 2.3 激活函数.- 6 - 2.

6、4 Softmax 分类器与代价函数.- 7 - 2.5 学习算法.- 8 - 2.6 Dropout.- 10 - 2.7 Batch Normalization.- 11 - 3 模型设计与实验分析.- 12 - 3.1 CIFAR-10 数据集.- 12 - 3.2 模型设计.- 13 - 3.3 实验结果与分析.- 15 - 4 结论.- 22 - 参考文献.- 23 - 精选文库 1 引言 1986 年, Rumelhart 等提出人工神经网络的反向传播算法 (Back propagation, BP), 掀起了神经网络在机器学习中的研究热潮。但是由于 BP 神经 网络存在容易发生过

7、拟合、训练时间长的缺陷, 90 年代兴起的基于统计学习理 论的支持向量机具有很强的小样本学习能力。学习效果也优于 BP 神经网络, 导致了神经网络的研究再次跌入低估。 2006 年, Hinton 等人在 Science 上提出了深度学习. 这篇文章的两个主要 观点是: 1) 多隐层的人工神经网络具有优异的特征学习能力, 学习到的数据更 能反映数据的本质特征,有利于可视化或分类;2) 深度神经网络在训练上的难 度, 可以通过逐层无监督训练有效克服。理论研究表明为了学习到可表示高层 抽象特征的复杂函数, 需要设计深度网络。深度网络由多层非线性算子构成, 典 型设计是具有多层隐节点的神经网络。但是

8、随着网络层数的加大, 如何搜索深 度结构的参数空间成为具有挑战性的任务。近年来, 深度学习取得成功的主要 原因有: 1) 在训练数据上, 大规模训练数据的出现 (如 ImageNet), 为深度学习提供 了好的训练资源; 2) 计算机硬件的飞速发展 (特别是 GPU 的出现) 使得训练大规模神经网 络成为可能。 卷积神经网络 (Convolutional neural networks, CNN) 是一种带有卷积结构 的神经网络, 卷积结构采用权值共享的方式减少了深层网络占用的内存量, 也减 少了网络的参数个数, 缓解模型的过拟合问题。为了保证一定程度的平移、 尺 度、 畸变不变性, CNN

9、设计了局部感受野、共享权重和空间或时间下采样, 提 出用于字符识别的卷积神经网络 LeNet-5。LeNet-5 由卷积层、下采样层、全连 接层构成, 该系统在小规模手写数字识别中取得了较好的结果。2012 年, Krizhevsky 等采用称为 AlexNet 的卷积网络在 ImageNet 竞赛图像分类任务中 取得了最好的成绩, 是 CNN 在大规模图像分类中的巨大成功。AlexNet 网络 具有更深层的结构, 并设计了 ReLU (Rectified linear unit) 作为非线性激活函数 以及 Dropout 来避免过拟合。在 AlexNet 之后, 研究者由提出了网络层数更深

10、的神经网络,例如 Google 设计的 GoogLeNet 和 MSRA 设计的 152 层的深度残 差网络等。表 1 是 ImageNet 竞赛历年来图像分类任务的部分领先结果,可以 看出,层数越深的网络往往取得的分类效果更好。为了更好地改进卷积神经网 络, 本文在 CIFAR10 数据集上研究了不同的网络层设计、损失函数的设计、激 活函数的选择、正则化等对卷积网络在图像分类效果方面的影响,本文引入了 Batch Normalization 与 dropout 结合的方法,通过加深卷层神经网络的层数,有 效地提高了卷积神经网络在图像分类准确率。 精选文库 表 1-1 ImageNet 历年图

11、像分类任务结果 公布时间机构Top-5 错误率(%)网络名称网络深度 2015.12.10MSRA3.57ResNet152 2014.8.18Google6.66GoogLeNet22 2013.11.14NYU7.33Clarifai10 2012.10.13U.Toronto11.7Alexnet8 2 卷积神经网络的模型分析 2.1 网络基本拓扑结构网络基本拓扑结构 卷积神经网络与其他神经网络模型最大的区别是卷积神经网络在神经网络 的输入层前面连接了卷积层,这样卷积层就变成了卷积神经网络的数据输输入。 LeNet-5 是 Yan Lecun 开发的用于手写字符识别的经典卷积神经网络模型

12、,图 2-1 是其结构图。 图2-1 LeNet-5结构图 LeNet-5 的体系结构有 7 层,其中有 3 个卷积层。第一卷积层由 6 个特征图 (Feature Maps, FM)组成,故 C1 包含 156 可训练参数(6 个 5X5 内核加上 6 偏值)来 创建 122304 (156* (28*28) -122, 304)个连接。在 C1 层 FM 的尺寸为 28 x 28,由 于边界条件,第二卷积层,C3 包含 1500 权重和 16 偏置,C3 层共有 1516 个可 训练参数以及 151600 个连接。S2 和 C3 之间的连接如表 2-1 所示。Lecun 设计 这些连接最大

13、化的特征由 C3 提取的数目,同时减少权重的数目。在最后的卷 积层 C5 包含 120 个 FM,输出尺寸为 1X1。 LeNet-5 的体系结构还包含有两个子采样层:S2 和 S4,S2 包含 6 个特征图 和 S4 有 16 个特征图。层 S2 有 12 个可训练的参数与 5880 连接,而层 S4 有 32 个可训练参数与 156000 连接。 精选文库 表2-1 S2与S3之间的连接 总结 LeNet-5 的网络结构,我们得到卷积神经网络的基本结构可以分为四 个部分:输入层,卷积层,全连接层和输出层四个部分: 输入层:卷积输入层可以直接作用于原始输入数据,对于输入是图像来说, 输入数据

14、是图像的像素值。 卷积层:卷积神经网络的卷积层,也叫做特征提取层,包括二个部分。第一 部分是真正的卷积层,主要作用是提取输入数据特征。每一个不同的卷积核提 取输入数据的特征都不相同,卷积层的卷积核数量越多,就能提取越多输入数 据的特征。第二部分是 pooling 层,也叫下采样层(Subsamping) ,主要目的是 在保留有用信息的基础上减少数据处理量,加快训练网络的速度。通常情况下, 卷积神经网络至少包含二层卷积层(这里把真正的卷积层和下采样层统称为卷积 层),即卷积层-pooling 层-卷积层-pooling 层。卷积层数越多,在前一层卷积层 基础上能够提取更加抽象的特征。 全连接层:

15、可以包含多个全连接层,实际上就是多层感知机的隐含层部分。 通常情况下后面层的神经节点都和前一层的每一个神经节点连接,同一层的神 经元节点之间是没有连接的。每一层的神经元节点分别通过连接线上的权值进 行前向传播,加权组合得到下一层神经元节点的输入。 输出层:输出层神经节点的数目是根据具体应用任务来设定的。如果是分类 任务,卷积神经网络输出层通常是一个分类器,通常是 Softmax 分类器。 2.2 卷积和池化卷积和池化 2.2.1 卷积 卷积,一般利用卷积核对图像进行特征提取,其中最重要的就是卷积核。 卷积核的设计一般涉及卷积核的大小(size),卷积核的数目(number)以及卷积核 的步长(

16、stride)。 精选文库 从理论上来说,卷积核的个数表示从上层中通过卷积滤波得到特征图的个 数,提取的特征图越多,网络表示特征空间就越大,学习能力也就越强,最后 识别结果就比较准。但卷积核太多(特征图太多),增大网络的复杂度,增加参 数的个数,加大了计算的复杂度,易出现过拟合现象,所以有时候卷积核也不 并是越多越好,而应根据具体的数据集图像的大小确定卷积核的个数。 图像卷积特征提取,通过设定的一个卷积核尺寸为的滤波器,步长w w (stride)为个像素,对一幅新的图像进行卷积处理,得到一个大小为k() hw nn 的特征图,如图 2-2 所示。一般来说卷积核尺寸越小,特征提 hw nwkn

17、wk kk 取的质量也就越高,具体大小还应根据输入图像的尺寸决定。 图2-2 图像卷积示意图 2.2.2 池化 对输入的图像邻域进行卷积处理得到图像的邻域特征图(Feature Map),再 通过亚采样层使用池化(pooling)技术将小邻域内进行下采样得到新的特征。通 过对上层池化,特征结果可以使得参数减少(降低了特征维数),且增强特征使 得最后的特征表达保持了某些不变性(旋转、平移、伸缩等),所以说池化的本 质是一个降纬的过程。常用的有均值采样(mean- pooling )、最大采样( max - pooling)。 据相关理论,特征提取的误差主要来自两个方面:(1)邻域大小受限造成 的

18、估计值方差增大;(2)卷积层参数误差造成估计均值的偏移。一般来说, mean-pooling 能减小第一种误差,更多的保留图像的背景信息,max-pooling 能 减小第二种误差,更多的保留纹理信息。 2.3 激活函数激活函数 在神经网络中经常使用的激活函数有 Sigmoid 函数、Tanh 函数、ReLu 函 数等,前两种激活函数在传统的 BP 神经网络使用的较多,ReLu 函数在深度学 习中使用的较多。 ReLu ( rectified finear unit)函数是 Hinton 提出的修正线性单元(Relu) ,CNNs 精选文库 在利用 ReLu 函数进行训练几次之后明显比传统的

19、sigmoid 和 tanh 函数更快。 假设一个神经单元的激活函数为,其中 i 表示隐含层单元的个数, ( ) i h 表示隐含单元的权值,那么 ReLu 函数的表达式为: ( ) i w * MERGEFORMAT (2-1) ( )( ) ( )( ) ()()0 max(),0) 0 iTiT iiT wxwx hwx else 其函数图像如图 2-3 所示: 图2-3 ReLu函数图像 由于 ReLu 函数具有线性的、非饱和的形式,单侧抑制,相对宽阔的兴奋 边界,稀疏激活性,所以在卷积神经网络中的使用效果好于 sigmoid 和 tanh 函 数。 2.4 Softmax 分类器与代

20、价函数分类器与代价函数 在卷积神经网络应用于图像分类任务时,我们在神经网络最后一层全连接 层后接一个 Softmax 分类器用于图像标签的预测。 在 softmax 回归中,我们解决的是多分类问题(相对于 logistic 回归解决 的二分类问题) ,类标可以取个不同的值(而不是 2 个) 。因此,对于训练yk 集 ,我们有。 (注意此处的类别下标从 1 (1)(1)()() (,),.,(,) mm xyxy ( ) 1,2,., i yk 开始,而不是 0) 。 对于给定的测试输入 ,我们想用假设函数针对每一个类别 j 估算出概率x 值。也就是说,我们想估计的每一种分类结果出现的概率。因此

21、,(| )p yj xx 我们的假设函数将要输出一个维的向量(向量元素的和为 1)来表示这个估kk 计的概率值。具体地说,我们的假设函数形式如下:( )h x * MERGEFORMAT (2-2) ( ) 1 ( ) 2 ( ) ( ) ( )( ) ( )( ) ( ) 1 ( )( ) (1|; ) (2|; ) 1 () . (|; ) Ti Ti Ti j Ti k x ii ii x i k x j ii x ep yx p yxe h x e p yk x e 精选文库 为了方便起见,我们同样使用符号来表示全部的模型参数。在实现 Softmax 回归时,将用一个的矩阵来表示会很方

22、便,该矩阵是将(1)kn 按行罗列起来得到的,如下所示: 12 ,., k * MERGEFORMAT (2-3) 1 2 . T T T k 由上式子可得样本属于的概率为: ( ) i xj * MERGEFORMAT (2-4) ( ) ( ) ( )( ) 1 (y|; ) Ti j Ti x l x ii k l e pyx e 当每个样本所属类别的条件概率都最大时,分类器识别率 ( )( ) (y|; ) ii pyx 最高,此时等价于最大化如下的似然函数: * MERGEFORMAT (2-5) ( )( ) 1 ( |x)=(y|; ) m ii i Lpyx 为了降低计算量和防

23、止溢出, 对似然函数取对数,并适当变形得: * MERGEFORMAT (2-6) ( ) ( ) ( ) 11 1 1 ( )1log Ti j Ti l x mk i k x ij l e Jyj m e 其中 1.称为示性函数,表达的功能为:1 true =1,1false= 0。此时最 大化似然函数等价于最小化代价函数,故使用梯度下降法求解( | )Lx( )J 的最小值,从而确定参数。代价函数的梯度为:( )J( )J * MERGEFORMAT (2- ( )( )( )( ) 1 1 ( )(1(|; ) j m iiii i Jxyjp yj x m 7) 在实际应用中,我们为

24、了防止过拟合问题,我们通常在代价函数后加正则 化项(L2 正则化正则化) ,这样代价函数变为: 2 10 2 mn ij ij * MERGEFORMAT (2- ( ) ( ) ( )2 1110 1 1 ( )1log 2 Ti j Ti l x mkmn i ijk x ijij l e Jyj m e 8) 上式中的第二项它会对偏大的参数值进行惩罚,又称权值衰减项权值衰减项。适当的 可以降低权值的数量级,从而控制网络参数的取值,在一定程度上防止了过 精选文库 拟合。 2.5 学习算法学习算法 在神经网络的学习中我们主要利用反向传播算法来进行梯度计算,并且用 梯度执行参数更新,主要的方法

25、有随机梯度下降法(Stochastic Gradient Decent, SGD),自适应矩估计法(Adaptive Moment Estimation,Adam) 。通常情况下我 们的训练数据集会比较大,如何一次性装载所有训练样本进行训练,往往会出 现内存溢出问题,所以我们实际中常常采用数据集的一个微型集(mini-batch, 数量为 N|D|,此时的代价函数为: * MERGEFORMAT (2-9) | ( ) 1 ( )()( ) | | N i i Jfxr N 2.5.1 随机梯度下降 随机梯度下降法每次输入一个微型集(mini-batch)对网络进行训练,由于每次 的微型集都是

26、随机选取的,所以每次迭代的代价函数会不同,当前 bacth 的梯 度对网络参数的更新影响较大,为了减少这种影响,我们通常情况下会引入动 量系数对传统的随机梯度下降法进行改进。 momentum 即动量,它模拟的是物体运动时的惯性,即更新的时候在一定 程度上保留之前更新的方向,同时利用当前 batch 的梯度微调最终的更新方向。 这样一来,可以在一定程度上增加稳定性,从而学习地更快,并且还有一定摆 脱局部最优的能力。加动量的随机梯度下降算法迭代公式如下: * MERGEFORMAT (2-10) 1 ( ) ttt VVJ * MERGEFORMAT (2-11) 11ttt V 其中是上一次的

27、权值更新量,为动量系数,表示要在多大程度上保留 t V 原来的更新方向,这个值在 0-1 之间,为学习率。 特点如下: 下降初期时,使用上一次参数更新,下降方向一致,乘上较大的 能够 进行很好的加速 下降中后期时,在局部最小值来回震荡的时候,使得更0gradient 新幅度增大,跳出陷阱 在梯度改变方向的时候, 能够减少更新,总而言之,动量项能够在相 关方向加速 SGD,抑制振荡,从而加快收敛。 精选文库 2.5.2 自适应矩估计法 Adam(Adaptive Moment Estimation)本质上是带有动量项的 RMSprop,它利 用梯度的一阶矩估计和二阶矩估计动态调整每个参数的学习率

28、。Adam 的优点 主要在于经过偏置校正后,每一次迭代学习率都有个确定范围,使得参数比较 平稳。迭代公式如下: * MERGEFORMAT (2-12) 1 (1)( ) ttt mmJ * MERGEFORMAT (2-13) 2 1 (1)() ttt nvnvJ * MERGEFORMAT (2-14) 1 t t t m m * MERGEFORMAT (2-15) 1 t t t n n v * MERGEFORMAT (2-16) t t t m n 其中,分别是对梯度的一阶矩估计和二阶矩估计,可以看作对期望 t m t n ,的估计;,是对,的校正,这样可以近似为对|( )| t

29、 EJ 2 |()| t EJtmtn t m t n 期望的无偏估计。可以看出,直接对梯度的矩估计对内存没有额外的要求,而且 可以根据梯度进行动态调整,而对学习率形成一个动态约束,而且有明 t t m n 确的范围。 特点如下: 具有善于处理稀疏梯度和非平稳目标的优点 对内存需求较小 为不同的参数计算不同的自适应学习率 适用于大多非凸优化问题,也适用于大数据集和高维空间 通常情况下且迭代速度快于 SGD,但是其收敛精度一般不如 SGD 2.6 Dropout 权值衰减(L2 正则化)是通过修改代价函数来实现的,但是 Dropout 通过修 改神经网络结构来实现的,它是在训练神经网络时用的一种

30、优化方法。Dropout 是指在模型训练时随机让网络部分隐含层单元的不工作,不工作的那些单元可 以暂时不作为网络的部分计算,但保留它的权重(暂时不更新),因为下次样本 输入时它可能又工作。在训练过程中,Dropout 是以一定概率将隐含层节 1p 精选文库 点的输出清 0,而用反向传播更新权值时,不再更新与该节点相连的权值,未 设置 Dropout 与设置 Dropout 的神经网络结构如下: (a)无Dropout的神经网络结构(b)设置Dropout的神经网络结构 图2-4 Dropout示意图 2.7 Batch Normalization 我们知道,在训练深度神经网络时,常常会发生“梯

31、度弥散梯度弥散”问题,即当我们 使用反向传播方法计算梯度导数的时候,随着网络深度的增加,反向传播的梯 度(从输出层到网络的最初几层)的幅度值会急剧地减小。一个简单的例子就 是:,结果就造成了整体的代价函数对最初几层网络的权值的导数 30 0.90.04 非常小。这样,当使用梯度下降法的时候,最初几层的权重变化非常缓慢,以 至于它们不能够从样本中进行有效的学习。 为了解决梯度弥散问题,Google 在 2015 年的 ICML 大会上提出了 Batch Normalization 的方法。Batch Normalization 嘛,即“批规范化”,即在每次进行随 机梯度下降时,通过 mini-b

32、atch 来对相应的激活输出做规范化操作,使得结果 (输出信号各个维度)的均值为 0,方差为 1。具体的“批规范化”算法如下: 精选文库 在 Batch Normalization 中,通过将激活函数的输出规范为均值和方差一致 的手段使得原本会减小的输出的变大,从而在很大程度上解决了梯度弥散问题, 并加快了深度神经网络的训练。 3 模型设计与实验分析 3.1 CIFAR-10 数据集数据集 CIFAR-10 数据集含有 6 万张的自然图像,共分为 10 种类型,由 32 32 Alex Krizhevsky, Vinod Nair 和 Geoffrey Hinton 收集而来。包含 50000

33、 张训练图 片,10000 张测试图片,数据集的数据存在一个的数组中(按行存10000 3072 储,每一行表示一副图像) ,前 1024 位是 R 值,中间 1024 位是 G 值,最后 1024 位是值,数据集样例如图 3-1 所示。我们对实验数据集仅作简单的裁剪 与白化处理后将像素值送入神经网络中进行训练。 图3-1 CIFAR-10数据集样例 精选文库 3.2 模型设计模型设计 在上一章中我们对卷积神经网络性能的影响因素进行了分析,如何选择感 受野大小、核个数、池化大小、网络的层数等。对此,我们根据这些影响因素 并结合 CIFAR-10 数据集,设计了两个模型。一种是浅层卷积网络模型,

34、一种 是深度卷积网络模型,浅层卷积网络模型受 Google TensorFlow 的教学手册启发, 深度卷积网络模型是结合了影响卷积网络性能的影响因素设计而成。 浅层卷积网络与深度卷积网络的结构图分别如图 3-2 与图 3-3 所示。 input conv1 pool1 norm1 conv2 pool2 norm2 local3 local4 softmax 图3-2 浅层卷积网络 精选文库 input conv1 pool1 norm1 conv2 conv3 pool2 norm2 conv4 conv5 conv6 conv7 conv8 local9 local10 softmax

35、pool3 norm3 pool4 norm4 图3-3 深度卷积网络 两个网络的架构图分别如表 3-1 与表 3-2 所示。 精选文库 表3-1 浅层卷积网络架构图 type Patch Size/strides Feature Maps depthactivationlearning rule convolutio n 33 321 max pool 33/ 1, 2, 2, 1 320 convolutio n 33 641 max pool 33/ 1, 2, 2, 1 640 Full connection 13 384/1922 softmax101 ReLu SGD+Moment

36、u m 表3-2 深度卷积网络架构图 type Patch Size/strides Feature Maps depthactivationlearning rule convolutio n 33 322 max pool 33/ 1, 2, 2, 1 320 convolutio n 33 642 max pool 33/ 1, 2, 2, 1 640 convolutio n 33 1282 max pool 33/ 1, 2, 2, 1 1280 convolutio n 33 2562 max pool 33/ 1, 2, 2, 1 2560 Full connection 13

37、384/1922 softmax101 ReLu SGD+Momentu m 若我们将下采样层(pooling)与归一化层(Batch Normalization)不计入网络 层数的计算,则我们设计的浅层网络的深度为 5,深度网络的深度为 11。 精选文库 3.3 实验结果与分析实验结果与分析 3.3.1 实验环境与基本参数设置: 实验中我们采用 Python+tensorflow 进行编程,tensorflow 是 Google 开发的 一种深度学习框架,其提供了 C+与 Python 接口,主要支持 Linux 与 Mac OS,这种框架主要采用先进的图计算,即使用有向图的节点和边共同描述

38、数学 计算。graph 中的 nodes 代表数学操作,也可以表示数据输入输出的端点。边表 示节点之间的关系,传递操作之间互相使用的多位数组(tensors,张量) , tensor 在 graph 中流动这也就是 TensorFlow 名字的由来。一旦节点相连的 边传来了数据流,节点就被分配到计算设备上异步的(节点间) 、并行的(节点 内)执行,这种灵活的架构允许我们使用相同的 API 在单或多 CPUs 或 GPU, 服务器及移动设备上进行计算。本文的编程环境处于 Linux 之中,具体的实验 室环境如表 3-3 所示: 表3-3 实验环境 CPUi5-6500 CPU 3.20GHz G

39、PUGTX750 ti2GB 内存8GB 操作系统Linux mint 18 深度学习框架 Google TensorFlow(r0.12) 编程语言Python 2.7 为了后续进行对比实验,我们配置了基本的实验参数,后续相关的实验参 数也是在基本参数上进行变动。权值衰减的实现是在代价函数中增加惩罚项, 随机训练样本会造成这惩罚项产生较大的随机突变,干扰梯度更新方向的稳定 性,同时增大训练误差,故惩罚项的参数需要非常小,一般都要小于 0.001;另 外,对神经元随机失能的比例不能太大,否则随机噪声会淹没训练集的作用; 批处理尺寸(batch size)不能太大,负责会造成迭代过慢及内存溢出问

40、题,我 们在 CNN 的训练时间、准确率和稳定性之间进行折中后的基本实验参数如表 3-4 所示。 表3-4 基本实验参数 参数取值 输入图像尺寸(image_size) 24 24 批处理尺寸(batch size)128 精选文库 初始学习速率() 0 0.1 学习速率衰减率()d0.1 衰减间隔 (NUM_EPOCHS_PER_DECAY ) 350 动量系数()0.9 Dropout 比例()1p0.5 权值衰减项权重()0,0.001 最大迭代步数(max_steps)1000 3.3.2 不同 batch size 对比实验 我们采取不同的 batch size,并选取随机梯度下降学

41、习算法,在 CIFAR-10 数据集上进行了对比实验,各种不同 batch size 对应的代价函数曲线如图 3-4 所 示。 (a) batch size=128(b) batch size=256 (c) batch size=512(d) batch size=1024 图3-4 不同batch size的代价函数曲线 从图 3-4 可以看出,batch size 为 128 与 256 时,代价函数的震荡较激烈, 精选文库 随着 batch size 增大到 512 与 1024,代价函数的下降变得相对平稳,这是由于 batch size 越大越能代表总体的训练集样本分布,但是 bat

42、ch size 越大,每次迭 代所需时间就近线性增长,在实验室中,不同的 batch size 对应的处理速度如表 3-5。 表3-5 不同batch size的处理速度 batch size处理速度(sec/batch) 1280.10 2560.21 5120.43 10240.85 在后续实验中,为了加快收敛速度,我们取 batch size = 128。 3.3.3 不同激活函数对比实验 我们分别选择三种激活函数,均采取 Adam 学习算法,经过 1000 次迭代后 的代价函数曲线如图 3-5 所示。 (a) sigmoid(b) tanh (c) ReLu 图3-5 不同激活函数的代

43、价函数曲线 精选文库 从上图中我们可以看出,在相同的迭代次数下,sigmoid 型激活函数对应的 代价函数值降低到 2.0 左右,而 tanh 型激活函数的代价函数下降到一个更小的 值(1.01.5) ,最后 ReLu 激活函数的震荡更小,对应代价函数下降到一个比 tanh 型函数更小的值,这与其特性(单侧抑制 相对宽阔的兴奋边界 稀 疏激活性)有关,所以 ReLu 型激活函数更适用于深度神经网络,后续我们的 实验也是默认采用 ReLu 激活函数。 3.3.4 不同学习算法对比实验 在保持基本实验参数设置的情况下,三种不同的学习算法的代价函数曲线 如图 3-6 所示。从曲线图我们可以看出,SG

44、D(随机梯度下降法)收敛速度最 慢,而且曲线震荡明显;SGD+Momentum(随机梯度下降加动量因子)震荡减小 且收敛速度加快,如果迭代次数足够多,可以收敛到一个比较理想的值; Adam(自适应矩估计法)收敛速度最快,且震荡较小,如果对精度没有严格要求 话,Adam 是一个较理想的选择(后续对比实验也默认采用 Adam 学习算法) 。 (a) SGD(b) SGD+Momentum(c) Adam 图3-6 不同学习算法的代价函数曲线 3.3.5 不同特征图个数对比实验 我们以之前设计的浅层卷积网络为基础,分别设置两层卷积层的特征图 (Feature Maps)个数为 16-16,32-32

45、,64-64,卷积核尺寸为 55,pooling 窗口 尺寸为 33,其他层保持不变,迭代 10000 步后,不同数目的特征图对应的测 试集分类精度如表 3-6 所示。 表3-6 不同Feature Maps对应的测试集精度 Feature MapsPresion 16-1670.0% 32-3275.0% 精选文库 64-6479.5% 由表 3-5 可知,在一定范围内,随着特征图(Feature Maps)个数的增多, 对应的分类精度就越大,这是由于特征图个数越多,从输入图像中提取到的特 征也就越多,模型的表达能力也就越强,所以在计算能力允许的情况下我们应 该尽量增加特征图的数目,提高图像

46、特征的提取质量进而增强模型的表达能力。 3.3.6 不同池化方式对比实验 我们保持基本实验参数不变,分别采用 average pooling(均值采样)与 max pooling(最大采样)两种池化方式,迭代 10000 次后的对应的测试集分类 精度如表 3-6 所示,相应的代价函数曲线如图 3-7 所示。 表3-7 不同池化方式对应的测试集精度 PoolingPresion Average poling77.9% Max pooling79.5% (a) average pooling(b) max pooling 图3-7 不同pooling方式对应的代价函数曲线 从表 3-6 可以看出采

47、用 max pooling 取得了更高的分类精度,从两者的代价 函数曲线也可以看出 max pooling 可以将代价函数降到更低,这是由于 max pooling 减小了卷积层参数误差造成的估计均值偏移,所以后续的实验中我们也 将采用 max pooling 的方式。 精选文库 3.3.7 不同卷积层数对比实验 我们在之前设计的浅层卷积网络的基础上增加两层卷积层,并与浅层卷积 网络、深度卷积网络一起进行对比实验,保持基本的实验参数不变,采用 Adam 学习算法,迭代 10000 次后的分类精度如表 3-8 所示。 表3-8 不同卷积层数对应的测试集精度 卷积层数Presion 279.5% 683.1% 883.6% 由表 3-8 可知,随着卷积层数的增多相应的分类精度也在提高,这是由于 卷积层数越多,对特征的抽象能力也就越强大,最后提取到的特征质量也就越 高,所以一般来说,深度卷积网络比浅层卷积网络的性能要好。 3.3.8 深度卷积网络模型实验 我们设置最大迭代次数为 50000 次,采用 SGD+Momentum 的学习算法,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论