APP下载

基于卷积神经网络优化因素的图像分类研究

2022-04-25李尤丰

金陵科技学院学报 2022年1期
关键词:准确度神经元卷积

李尤丰

(金陵科技学院软件工程学院,江苏 南京 211169)

卷积神经网络(convolutional neural network,CNN)通过多个不同层次的感受野(receptive field)将视觉信息从视网膜传递到大脑,是一种通过模拟实验来实现视觉系统功能的生物策略算法。1998年卷积神经网络模型LeNet-5[1]在识别支票手写数字方面得到了成功应用,引起了研究者们对卷积神经网络图像分类性能的广泛关注。然而由于LeNet-5的参数量大、网络开销大、泛化能力差,使得卷积神经网络模型对图形分类的应用停滞不前。直到2012年,针对LeNet-5的缺陷Krizhevsky等[2]提出了AlexNet模型,并在大型图像数据库ImageNet[3]的分类竞赛中夺得冠军,其分类准确度超过第二名11%。这一成功使得卷积神经网络的图像分类应用成为关注的新焦点。同年,用于图像分类的新卷积神经网络模型如VGG[4]、GoogLeNet[5]、NIN[6]等被相继提出。随着ResNet[7]的残差学习能力被广泛认可,图像分类卷积神经网络模型如RiR[8]、Dense ResNet[9]、Wide ResNet[10]、Stochastic Depth[11]、ResNeXt[12]、Inception-ResNet[13-14]等如雨后春笋般地应运而生。

随着卷积神经网络模型的迅猛发展,研究者们对已有模型的缺陷进行了相应改进,从而使得图像分类性能得到了提高。AlexNet用两块GPU改进网络开销,用随机失活技术改进网络适应性;VGG用小卷积核改进参数量大的问题,加深了网络深度;GoogLeNet用Inception模块改进参数量和网络开销,大大降低了深度卷积神经网络的复杂度;ResNet用恒等映射进行残差学习改善深度网络的退化。由此看出,要想针对网络的某种缺陷找到相应的改进方法,就需要研究卷积神经网络的哪些优化因素对网络的哪部分性能有影响。本文以最基本的卷积神经网络模型为例,用数据实验验证卷积神经网络模型的优化因素对模型图像分类性能的影响。

1 传统CNN的基本结构

传统CNN的基本结构分为输入层、卷积层、池化层、全连接层和输出层等,每一层的功能与作用不同,因此CNN模型是一种层网络模型。CNN的工作过程大致为:把图像信息作为输入,与卷积层的多个卷积核进行卷积计算并加上偏置,得到相应的一系列特征面;然后将该结果传递给非线性激活函数,通过与激活函数的阈值比较得到卷积层的输出;最后传递给池化层进行池化操作,得到输入图像显著特征的简化模型。经过多个卷积层和池化层后,输入图像的特征逐步从低层的具体特征转化为高层的抽象特征,再经过全连接层的映射和输出层的分类运算得到输出向量。输出层的向量并不是一个确切的类别向量,而是一个特征分类概率向量,用于判断输入图像的类别。

2 实验设计

模型对数据集的拟合程度是评价CNN图像分类性能的一个重要指标,具体表现在训练集的拟合准确度fit(X)与测试集的预测准确度Acc(X)上。fit(X)越高而Acc(X)越低,说明网络存在过拟合,分类方差较大;fit(X)越低,说明网络欠拟合越严重。为找到fit(X)、Acc(X)与卷积神经网络模型的优化因素之间的关系,设计如下实验:

1)改变数据集。在图像问题的分类中,有时可获取的有效数据量往往有限,比如医学图像数据。为测试图像数据量对卷积神经网络模型的分类效率(fit(X)、Acc(X))影响,从比较同一数据集数据量改变前后的网络分类准确度来看,当数据量有限时,改变数据量的一种常用方式就是增强标准数据。它利用已有的有限图像数据,对数据进行拉伸、翻折、裁剪等预处理,提高数据集的规模和多样性,进而提高训练数据的效率。

2)改变隐藏神经元数目。为测试卷积神经网络模型的规模对模型分类的准确度影响,在数据集不变的情况下,比较隐藏神经元数目在改变前后,模型分类准确度的变化。隐藏神经元数目的改变方式分为两种:①改变每层的隐藏神经元数目,即改变网络的宽度。表1给出了4种不同层规模的卷积神经网络模型,每一层的隐藏神经元数目逐步增加,但网络层数不变,以便于对比不同层规模对卷积神经网络模型分类准确度的影响。②改变隐藏神经元所属的层数,即改变网络的深度。在上述4种不同层规模的卷积神经网络模型上分别增加卷积层进行实验,具体网络结构和配置如表2所示。其中“层模型1+”表示在表1的“层规模1”的网络上增加了卷积层,其他依此类推。

表1 卷积神经网络的4种不同层规模

3)改变训练方法。当数据集和网络规模确定时,考虑不同的优化训练方法对卷积神经网络模型图像分类准确度的影响。考虑自适应矩估计法、随机梯度下降法、自适应梯度算法、柯西-牛顿法这4种常用训练算法对分类准确度的影响。

表2 增加网络深度后的不同层规模

3 实验数据设置

3.1 数据集设置

由于图像数据集CIFAR-10相对比较简单,常被用于很多图像分类卷积神经网络模型实验,且比较契合于实验选用的传统CNN模型,因此被选作实验数据集。CIFAR-10共有60 000张彩色图像,共包含10个类别,每个类别6 000张;用于训练集的图像50 000张,构成5个训练批,每个训练批有10 000张,剩下的10 000张图像用于测试批。训练批和测试批的组成方式为:先在每一类中随机抽取1 000张图像构成测试批,然后把剩下的50 000张图像随机分成5个训练批。由于训练批中的图像是随机划分的,因此其中的图像各自独立、不会重叠,使得每个训练批中的各类图像数量并不一定相同,每次实验时训练批和测试批的图像也很有可能不同。

3.2 实验环境设置

实验的学习框架为TensorFlow[15],并用cuDNN[16]对学习框架进行优化。单块GPU的型号为NVIDIA Tesla K40C,使用的软件为 MATLAB R2014a,实验的训练算法为随机梯度下降法,动量系数为0.9,采用数据批为32的小批量数据输入方式训练10 000次。模型的初始学习率为0.01,当验证误差不再提高时,新学习率衰减1/10,共衰减3次。权重初始化采用文献[17]的方法,权重衰减系数为0.000 1,每层权重的学习率相同。为提高实验数据的稳定性,实验过程重复10次,并取最优值作为最终的分类准确度。

4 实验结果与分析

4.1 数据集对分类准确度的影响

数据增强前后的实验结果如图1所示。由图1可以看出:1)当数据经过标准数据增强后,整个测试过程的收敛速度变得很慢,但是测试准确度Acc(X)有较大幅度的提高,这说明经过标准数据增强后,训练集的数据量和多样性都得到了显著提升,训练所得模型的泛化能力得到了提高。2)训练集和测试集分类准确度的差异fit(X)-Acc(X)大大缩小,基本实现了两者同步提升,这表明有效的数据处理可以很好地解决模型的过拟合问题。3)经过标准数据增强后,图像数据更加多样化,模型看不到完全相同的图像,有效抑制了模型的过拟合,有效提升了卷积神经网络模型的分类准确度。因此,适当增加数据集的数据量和多样性,能有效提高模型的泛化能力。

4.2 隐藏神经元数目对分类准确度的影响

1)改变隐藏神经元的层规模时,实验结果如图2所示。在迭代次数2 000~5 000次范围内,模型在不同层规模间测试集的分类准确度差异较为明显,且随着层规模的增加,分类准确度也增加;但当迭代次数大于5 000次后,模型在不同层规模间测试集的分类准确度差异均越来越小。这是由于层规模增加时,需要训练的参数量大大增加,而参数量和计算量过于庞大会导致卷积神经网络模型在训练时给计算机硬件带来巨大负担,从而致使模型的学习训练效率降低,有时甚至无法实现整个卷积神经网络模型的学习训练。因此在运行时间和计算量等允许的条件下,适当扩大层规模可以提高分类准确度;但当层规模达到一定程度后,增加层规模并未明显增加分类准确度的提高量,此时应考虑从其他方面改进模型的运行效率。

图1 数据增强前后的实验结果

图2 不同层规模的实验结果

图3 不同网络深度的实验结果

2)改变隐藏神经元所属的卷积层数时,实验结果如图3所示。卷积神经网络模型需迭代6 000次后才逐渐趋于稳定。究其原因,增加卷积层的同时增加了待训练的神经元数目和计算量,一定程度上增加了网络训练难度。在迭代次数2 000~5 000次内,层规模4+测试集的分类准确度明显高于其他3种层规模,但当迭代次数大于5 000次后,层规模4+测试集的分类准确度与其他3种层规模无明显差异。原因是增加卷积层数便增加了卷积神经网络模型的深度,较深的模型能够提取更抽象的图像特征,有助于模型理解更深层次的内容,在一定程度上能有效提高卷积神经网络模型的分类性能。但是当模型深度达到一定程度后,卷积神经网络模型的分类准确度不再提高,甚至有所下降,这是由于模型训练的难度、分类效率提升的有限性、模型本身的局限性等因素影响了模型的分类效率。

综合图2、图3可以看出,在较小的迭代次数范围内,训练集和测试集的分类准确度曲线几乎重叠在一起,说明较小迭代次数范围内的卷积神经网络更易拟合。图2中训练曲线在不同层规模间的分类准确度差异较大,图3中训练曲线在不同层规模间的分类准确度差异较小,说明当层规模固定时增加一定的卷积层数有助于模型性能稳定。

3)随着隐藏神经元数目的增多,模型的参数量、运行时间和分类准确度的变化趋势如图4所示。由图4可以看出,随着隐藏神经元数目的增加,模型的参数量、运行时间和分类准确度越来越大,当隐藏神经元数目达到一定规模时,参数量和运行时间陡增,而分类准确度越来越平缓,说明增加隐藏神经元数目获得的收益越来越少。这与1)和2)中层规模达到一定程度后分类准确度不再提高的结果一致。因此通过增加隐藏神经元数目获得更高的分类准确度是否合适,得看具体情况。

4.3 训练方法对分类准确度的影响

以均方误差为代价函数,通过常规正则化项构造目标损失函数,然后基于4种不同的梯度优化算法进行实验。为更好地比较训练方法,基于基本模型和层规模4+基本模型进行实验,实验结果如图5所示。由图5可以看出,不同梯度优化算法的收敛速度存在明显差异。图5(a)中,不同的训练算法很快收敛到平稳状态,图5(b)中,不同训练算法收敛时均有明显振幅,说明模型复杂度提高时训练难度增加,这与前文隐藏神经元数目增加时模型训练难度增加的结论一致。综合图5(a)和5(b)可以看出,层规模4+模型上自适应曲线仍有上升趋势,未明显平稳收敛,且分类准确度比基于基本模型的自适应曲线有所降低。原因是自适应算法涉及方差计算,在模型复杂时计算量明显增大,模型达到平稳状态的速度变慢,分类准确度降低说明在简单的基本模型上自适应算法存在过拟合。4种训练算法中,矩估计算法快速达到较高准确度,随机梯度算法收敛到较高准确度的速度较慢,柯西-牛顿算法的速度适中,自适应梯度算法表现良好,原因是自适应梯度算法具有一定的自我调整能力,对噪声、模型、数据和超参数表现出鲁棒性,适应能力较好。但是,自适应梯度算法的学习率依赖人工设置,特别在训练的后阶段,当约束项的分母越来越大时,梯度越来越小,且趋于零,很容易使训练提前结束。因此,要缩短训练时间,提高卷积神经网络模型训练的学习效率,需要根据具体情况选取合适的梯度下降算法。

(a)隐藏神经元数目与参数量拟合曲线

(b)隐藏神经元数目与运行时间拟合曲线

(c)隐藏神经元数目与分类准确度拟合曲线

(a)基于基本模型

(b)基于层规模4+模型

5 结 语

本文在数据集CIFAR-10上进行了一系列实验,实验结果表明,改变数据集、隐藏神经元数目和训练方法对卷积神经网络模型的图像分类准确度有一定的影响。增加数据量和数据多样性,不仅能提高数据利用效率,而且能提高卷积神经网络模型的图像分类准确度。当数据集固定时,通过增加隐藏神经元数目使网络宽度或者网络深度增加,也有助于提高卷积神经网络模型的图像分类准确度,当隐藏神经元数目增加到一定程度时,网络的参数量和计算量虽然迅速增加,但此时网络的增益相对较少。当数据集和网络规模固定时,采用适当的训练算法有助于提高网络模型的泛化能力,使训练准确度与测试准确度更接近,使模型运用于其他图像数据集的分类时具有较好的适应能力。

除了这几个因素外,改变模型的学习率、初始化权值等也对卷积神经网络模型的分类准确度有一定的影响。应用时要多调试,尽量找到最适合的参数和方案。

猜你喜欢

准确度神经元卷积
基于3D-Winograd的快速卷积算法设计及FPGA实现
卷积神经网络的分析与设计
从滤波器理解卷积
幕墙用挂件安装准确度控制技术
跃动的神经元——波兰Brain Embassy联合办公
基于傅里叶域卷积表示的目标跟踪算法
动态汽车衡准确度等级的现实意义
一款基于18位ADC的高准确度三相标准表的设计
ERK1/2介导姜黄素抑制STS诱导神经元毒性损伤的作用
毫米波导引头预定回路改进单神经元控制