APP下载

基于CIFAR-10的图像分类模型优化

2018-04-18张占军彭艳兵

计算机应用与软件 2018年3期
关键词:正则网络结构准确率

张占军 彭艳兵 程 光

1(武汉邮电科学研究院 湖北 武汉 430074) 2(烽火通信科技股份有限公司南京研发 江苏 南京 210019)

0 引 言

图像分类是图像处理的热门研究课题之一,其核心在于特征提取及分类器设计。自 2006 年 Hinton 在深度神经网络取得重大进展之后,深度神经网络被认为是从原始数据自动提取特征最有希望的方式[1]。卷积神经网络作为深度神经网络中的一种,已经成功地应用在人脸检测、手写体识别[6]、语音检测、文本分析[8]、视频分析、车牌识别等领域。

随着卷积神经网络的广泛应用,过拟合对网络性能的限制作用逐渐凸显出来。针对此问题研究人员提出多种防止过拟合的方法:增加数据量是预防过拟合最简单的方法。Dropout方法作为有效提高神经网络泛化能力的学习方法之一[11]将隐层神经元的输出值以0.5的概率变为0,从而使这些节点失效,避免网络对某一局部特征的过拟合。L1正则的效果是让ω往0靠,使网络中的权重尽可能为0。L2正则[15]的效果是减小ω的取值。二者都是为了减小网络的复杂度,防止过拟合。还有学者提出提前终止法,就是在训练的过程中观察网络在验证集上的效果,并在效果变差时提前终止训练。上述方法均可以起到预防过拟合的作用,但是提前终止法依赖人工观察,灵活性差。有价值的数据集非常宝贵,增加数据会受到很多方面的限制。Dropout 和 正则只是控制了参数的取值,参数的总量并没有改变。

本文从参数总量出发,提出LeNet-5_1, LeNet-5_2两种网络模型。在LeNet-5的网络基础上对卷积核进行拆分,LeNet-5_1将5×5的网络拆分为两个3×3的网络,LeNet-5_2在LeNet-5_1的基础上继续拆分,将3×3的网络拆分为1×3和3×1的网络。拆分前后池化层和全连接层感受野没有发生改变,但是参数总量却大大减少,从根源上防止了过拟合现象。此外在数据处理上不采用增加数据量的方法,而是对输入图片进行数据增强,不仅增加了样本数量,而且还增加了样本多样性。最后,文中还引入混合正则,通过调节比例来验证L1、L2正则对网络性能的影响程度。对比实验结果表明, 本文方法有效地预防了过拟合,大幅提高了分类准确率。

1 模型相关技术

1.1 损失计算

本文用交叉熵损失函数来求loss的取值,具体公式为:

(1)

式中:y是预测的概率分布,y′是真实的概率分布(即Label的one-hot编码)。然后再对每个batch的Hy′(y)求均值就得到loss的值loss_cross。本文求loss时加入了L1、L2混合正则,所以loss的最终结果:

loss_total=

(2)

loss_total的值越小表明模型的预测准确率越高,但是如果训练集的loss_total很小,则表示预测集的准确率并不高,说明存在过拟合。梯度下降法就是通过求梯度来降低参数值,达到减少loss_total的目的。

1.2 准确率

本文采用tensorflow 提供的in_top_k函数,该函数可以求输出结果中top k的准确率,默认使用top 1,也就是输出分类最高的那一类的准确率,文中使用默认参数没有做修改。测试集是按batch输入的,每处理一个batch就用此函数计算这个batch的top 1上预测正确的样本数predictions,并将所有batch中的predictions相加得到一个总数true_total,然后用true_total除以样本总数num_total,得到的结果就是预测准确率。文中num_total设为10 000,即每随机测10 000个样本计算一次准确率,总共测20次并生成20个结果。

1.3 TensorBord

TensorBord[18]是TensorFlow官方推出的可视化工具。在执行TensorFlow计算图的过程中,可以将各种类型的数据汇总并记录到日志文件中,然后使用TensorBord读取这些日志文件,解析数据并生成数据可视化的web界面,我们就可以从浏览器中分析所记录的数据。本文的结果图均来自TensorBord可视化。

1.4 数据集

CIFAR-10[19]数据集包含60 000个32×32的彩色图像,共有10类,有50 000个训练图像和10 000个测试图像。数据集分为5个训练块和1个测试块,每个块有10 000个图像。测试块包含从每类随机选择的1 000个图像,训练块以随机的顺序包含这些图像。

2 模型优化方法

2.1 数据增强

数据增强是利用了图片数据本生的性质,图片的冗余信息量大,因此可以制造不同的噪声并让图片依然可以被识别出来。它可以给单幅图增加多个副本,提高图片的利用率,防止对某一张图片结构的学习过拟合。本文对输入数据做了剪裁、翻转并调整亮度和对比度,以上所有操作都是随机的。从32×32的原始图像中截取24×24大小的区域,相当于增加了(32-24)2×2=128倍的数据量,再加上后续处理数据量还会翻倍,处理后的数据大大增加了模型的泛化能力,可以有效预防过拟合。如图1所示。

图1 输入图像处理过程

上述的图片处理总共分5个步骤,分别是:

1) 从32×32 的原始图像中随机裁剪24×24 的图片。

2) 对图片做随机左右翻转。

3) 随机调整图片的亮度。

4) 随机调整图片的对比度。

5) 对图片进行标准化。

2.2 指数衰减

本文通过指数衰减的方法设置梯度下降算法中的学习率,通过指数衰减的学习率即可以让模型在训练的前期快速接近较优解,又可以保证模型在训练的后期不会有太大的波动,从而更加接近最优解。学习率的计算公式为:

decay_learning_rate=

(3)

式中:decayed_learning_rate为每一轮优化时使用的学习率,learning_rate为事先设定的初始学习率,decay_rate为衰减系数,decay_step为衰减速度。本文将decay_step的值设为总训练样本数除以每一个batch中的训练样本数。这样每完整的过完一遍训练数据,学习率就减小一次。这可以使得训练数据集中的所有数据对模型训练有相等的作用。

如图2所示,是训练过程中学习率的变化图,由图2可知学习率是呈指数衰减的。由于 staircase 的值设为 True,global_step/decay_step的值转化成了整数,整个曲线呈阶梯状。

图2 学习率指数衰减图

2.3 滑动平均

本文采用滑动平均模型对loss和各变量做相应处理,滑动平均模型的计算公式为:

shadow_variable=decay×shadow_variable+

(1-decay)×variable

(4)

式中:decay是衰减率,用于控制模型更新的速度,variable为需要处理的变量,shadow_variable处理之后的变量值,又叫做影子变量。由上述公式可知,decay控制着模型更新的速度,越大越趋于稳定。实际运用中,decay一般会设置为十分接近 1 的常数,本文计算loss时decay=0.9,计算变量时decay=0.999。为了使得模型在训练的初始阶段更新得更快,本文提供了num_updates参数来动态设置decay的大小:

Decay=min{decay,(1+num_updates)/

(10+num_updates)}

(5)

式中:num_updates代表迭代次数,由公式可知当迭代次数较小时,decay=(1+num_updates)/(10+num_updates)并随着迭代次数而快速增大,此时模型的更新速度很快。当迭代次数增大到一定程度,decay的值就保持给定的值不变,模型更新速度变慢。

2.4 正则化

正则化的思想就是在损失函数中加入刻画模型复杂程度的指标。假设用于刻画模型在训练数据上表现的损失函数为J(θ),那么在优化时不是直接优化J(θ),而是优化J(θ)+αR(ω)。其中R(ω)刻画的是模型的复杂程度,而α表示模型复杂损失在总损失中的比例,θ表示的是一个神经网络中的所有参数,它包括边上的权重w和偏置项b。刻画模型复杂程度的函数R(ω)有两种,一种是L1正则,计算公式是:

(6)

另一种是L2正则化,计算公式是:

(7)

令P(θ)=J(θ)+γR(ω),对ω和b求导得:

(8)

(9)

可以发现正则只对ω的更新有影响,而对b的更新没有影响。

利用梯度下降法更新之后ω的值为:

L1正则:

(10)

L2正则:

(11)

图3 ω取不同值的准确率

由图3可知,当ω=1时,模型的准确率为58.1%,ω=0.5时,模型的准确率为69.2%,ω=0时,模型的准确率为85.1%。可见ω的值越小,模型的准确率越高,实验证明本网络中L2正则比L1正则在减轻过拟合方面有更好的效果。

3 实验设计与结果分析

3.1 实验环境

实验环境配置信息如表1所示。

表1 实验环境配置信息

3.2 网络结构变换

网络结构变换主要来自经典模型VGGNet,将一个大卷积拆分为两个或者多个小卷积,以增加网络深度,提高分类准确率。而将一个较大的二维卷积拆分为两个一维卷积,主要是引入了Factorization into small convolutions的思想。本文结合前人的经验, 提出通过卷积拆分来预防过拟合的思想,并设计了LeNet-5_1、LeNet-5_2两个模型,网络参数如表2所示。

表2 三种网络结构的详细参数

LeNet-5_1将5×5的卷积拆分成两个3×3的卷积,两个3×3的卷积层串联相当于一个5×5的卷积层,即一个像素会跟周围5×5的像素产生关联,可以说感受野大小为5×5,网络拆分前后并没有发生改变。LeNet-5_2在LeNet-5_1的基础上继续拆分,即将3×3的网络拆分为3×1和1×3的网络。拆分之后感受野仍然为5×5,但是这种非对称的卷积结构拆分,其结果比对称地拆分为几个相同的小卷积效果更明显,可以处理更多、更丰富的空间特征,增加特征多样性。图中的1×1卷积层主要实现升维降维的作用,灵活控制网络中的参数数量。拆分之后的结构层次更多,参数更少,增加了非线性的表达能力并且在预防过拟合方面有很好的效果。如表3所示是三种网络结构的参数对比表:

表3 卷基层参数统计表

从表中数据可以看出LeNet-5_1卷积层参数量只有LeNet-5的72%,LeNet-5_2卷积层参数量更少,只有LeNet-5的60%,减少了40%的参数。下面分析参数减少后对预防过拟合并提升模型准确率方面的影响。

如图4所示,LeNet-5的准确率只有68%,LeNet-5_1的网络结构能达到88.9%的准确率,而LeNet-5_2的网络结构能达到91.2%的准确率。整个优化过程中没有增加数据集,所达到的卷积效果和原始模型相同,但准确率却提高了23个百分点,充分证明了改变网络结构减少参数量对减轻过拟合提高模型准确率的作用是非常明显的。

图4 三种模型准确率

4 结 语

本文在LeNet-5基础上提出的LeNet-5_1、LeNet-5_2模型,通过卷积核拆分减少了大量参数,有效地防止了过拟合,提高了模型的分类准确率。但由于LeNet-5模型结构相对简单,受感受野的约束,模型的分类准确率受到了很大的限制。接下来可以尝试更加复杂的网络结构,继续加深网络,进一步提高模型的分类准确率。

[1] Hinton G E,Salakhutdinov R R.Reducing the dimensionality of data with neural networks[J]. Science,2006,313(5786):504-507.

[2] Li H, Lin Z, Shen X, et al. A convolutional neural network cascade for face detection[C]// Computer Vision and Pattern Recognition. IEEE, 2015:5325-5334.

[3] Lecun Y, Boser B, Denker J S, et al. Backpropagation applied to handwritten zip code recognition[J]. Neural Computation, 2014, 1(4):541-551.

[4] Tivive F H C, Bouzerdoum A. A new class of convolutional neural networks (SICoNNets) and their application of face detection[C]// International Joint Conference on Neural Networks. IEEE, 2003:2157-2162.

[5] Chen Y N, Han C C, Wang C T, et al. The Application of a Convolution Neural Network on Face and License Plate Detection[C]// International Conference on Pattern Recognition. IEEE Computer Society, 2006:552-555.

[6] Lecun Y, Bottou L, Bengio Y, et al. Gradient-based learning applied to document recognition[J]. Proceedings of the IEEE, 1998, 86(11):2278-2324.

[7] Sukittanon S, Surendran A C, Platt J C, et al. Convolutional networks for speech detection[C]// INTERSPEECH 2004-ICSLP, 8th International Conference on Spoken Language Processing, Jeju Island, Korea, October 4-8, 2004.

[8] Simard P Y, Steinkraus D, Platt J C. Best Practices for Convolutional Neural Networks Applied to Visual Document Analysis[C]// International Conference on Document Analysis and Recognition, 2003. Proceedings. IEEE, 2003:958-962.

[9] Mobahi H, Collobert R, Weston J. Deep learning from temporal coherence in video.[C]// International Conference on Machine Learning, ICML 2009, Montreal, Quebec, Canada, June. 2009:93.

[10] 赵志宏,杨绍普,马增强.基于卷积神经网络LeNet-5的车牌字符识别研究[J]. 系统仿真学报,2010, 22(3): 638-641.

[11] Srivastava N, Hinton G, Krizhevsky A, et al. Dropout: a simple way to prevent neural networks from overfitting[J]. Journal of Machine Learning Research, 2014, 15(1):1929-1958.

[12] Krizhevsky A, Sutskever I, Hinton G E. ImageNet classification with deep convolutional neural networks[C]// International Conference on Neural Information Processing Systems. Curran Associates Inc. 2012:1097-1105.

[13] Yoo H J. Deep Convolution Neural Networks in Computer Vision[J]. Ieie Transactions on Smart Processing & Computing, 2015, 4(1):35-43.

[14] Rudin L I, Osher S, Fatemi E. Nonlinear total variation based noise removal algorithms[J]. Physica D Nonlinear Phenomena, 1992, 60(1-4):259-268.

[15] Tihonov A N. On the solution of ill-posed problems and the method of regularization[M]. Providence: American Mathematical Society Press, 1963:1035-1038.

[16] Simonyan K, Zisserman A. Very Deep Convolutional Networks for Large-Scale Image Recognition[J]. eprint arXiv:1409.1556, 2014.

[17] Szegedy C, Liu W, Jia Y, et al. Going deeper with convolutions[C]// IEEE Conference on Computer Vision and Pattern Recognition. IEEE Computer Society, 2015:1-9.

[18] 黄文坚,唐源. TensorFlow实战[M]. 北京:电子工业出版社,2017.

[19] Krizhevsky A. Learning multiple layers of features from tiny images [D]. Department of Computer Science, University of Toronto,2009.

猜你喜欢

正则网络结构准确率
π-正则半群的全π-正则子半群格
Virtually正则模
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
颈椎病患者使用X线平片和CT影像诊断的临床准确率比照观察
快递网络结构研究进展
带低正则外力项的分数次阻尼波方程的长时间行为
基于AutoML的保护区物种识别①
任意半环上正则元的广义逆