葛程 孙国强
摘 要:结合现有基于卷积神经网络的图像分类算法,以CIFAR-10作为数据集,探究如何快速搭建一个满足分类精度要求的卷积神经网络模型,以及如何有目的且高效地进行网络训练与参数调整。实验以简单的三层卷积神经网络为基础,从数据增强、网络结构与优化训练3个方面对模型进行改进。实验结果表明,通过叠加这些改进方法,可使模型的拟合能力与泛化能力逐渐增强,最终获得更高的图像分类准确率。
关键词关键词:图像分类;卷积神经网络;网络结构;数据增强
DOIDOI:10.11907/rjdk.181090
中图分类号:TP301
文献标识码:A 文章编号:1672-7800(2018)010-0027-05
英文摘要Abstract:Combined with the existing image classification algorithm based on convolution neural network,we explore how to quickly build a convolution neural network model to meet the classification accuracy requirements,and how to efficiently and purposefully carry out network training and parameter adjustment by starting from the practice and using CIFAR-10 as a dataset.Based on a simple three-layer convolution neural network,the model is improved from three aspects:data enhancement,network structure,optimization and training.The experimental results show that by adding these improved methods,the ability of fitting and generalization of the model is gradually enhanced,and a higher accuracy of image classification is obtained.
英文关键词Key Words:image classification;convolution neural network;network structure;data enhancement
0 引言
图像分类是指通过对图像进行一系列数学运算处理后,得到的图像特征表达可以表征该图像属于某种预定义类别的分类问题。图像分类是计算机视觉领域的一个基础问题,传统图像分类方法依赖于人工设计的复杂特征工程提取的图像特征,主要采用的特征提取方法有尺度不变特征变换(Scale-Invariant Feature Transform,SIFT)[1]与方向梯度直方图(Histogram of Oriented Gradients,HOG)[2]。人为设定的算法逻辑清晰且易于实现,但总会留下盲区,从而成为整个模型的短板,且模型缺乏泛化性。在2012年的ImageNet大规模视觉识别挑战赛(ImageNet Large Scale Visual Recognition Challenge,ILSVRC)中,由Alex Krizhevsky等[3]提出的AlexNet首次將深度卷积神经网络应用于大规模图像分类并获得第一名,之后基于深度卷积神经网络的模型开始取代传统图像分类算法,成为ILSVRC图像分类比赛的主流算法,卷积神经网络也在计算机视觉领域得到了广泛应用。
深度学习舍弃了特征工程的步骤,让模型更好地根据数据的原始状态学习成长,从而更容易学到数据中有价值的信息。
卷积神经网络会对一张图片最好的卷积核及其组合方式进行自动学习,也即对于输入是一张图片的任务而言,求出该图片对于该任务的最好特征表达,然后进行判断。
本文以三层卷积神经网络为基础,从数据增强、网络结构和网络训练优化3方面改进优化网络模型,旨在探究如何快速搭建一个满足分类精度要求的卷积神经网络模型,以及如何有目的且高效地进行网络训练与参数调整。
1 相关知识介绍
卷积神经网络的基础部分包括卷积层与全连接层,两部分同样都由线性部分和非线性部分组成,线性部分完成对数据的汇总计算,非线性部分的主要作用是打破之前的线性映射关系[4]。全连接层和卷积层的主要区别在于全连接层的线性部分完成对全部数据的汇总计算,而卷积层的汇总是对局部数据的汇总,这种局部汇总操作称为卷积。卷积运算利用了图像的局部相关性,与全连接层相比,卷积层参数量大幅减少,使模型复杂度降低,从而更容易训练[5]。一个简单的卷积神经网络结构如图1所示。
数据增强主要是指在训练数据上增加微小的扰动或变化,一方面可以增加训练数据,从而提升模型泛化能力,另一方面可以增加噪声数据,从而增强模型的鲁棒性。针对图像数据,主要的数据增强方法有翻转变换、随机修剪、色彩抖动、平移变换、尺度变换、对比度变换、噪声扰动和旋转变换等。具体做法是获取一批训练数据,进行数据增强步骤之后再送入网络进行训练。
网络架构是卷积神经网络的一个核心部分,自2012年的ILSVR以来,新的卷积神经网络架构以及在网络中起特殊作用的模型层也不断出现。对卷积神经网络发展产生巨大影响的经典模型有AlexNet、VGGNet[6]、GoogleNet[7]和ResNet[8]等,起特殊作用的模型层有批正则化层(BatchNormalizationLayer,BN)[9]、Dropout层[10]、权重衰减[11]和局部响应归一化层(LocalResponseNormalization,LRN)[12]等,这些对模型的改进让模型的拟合能力和泛化能力得到明显提升。
ResNet的核心思想是将卷积神经网络模型中曾经的的乘法关系转变成加法关系,让每一层参数都更加接近目标函数。残差网络中最精华的部分是跳接部分(Skipping Connection),该结构可以使前一层网络的特征信息不经过任何计算,直接传递到下一层。
批正则化是指对神经网络的每一层输入数据进行正则化处理,从而让数据分布更加均匀,不会使所有数据都导致神经元激活,或所有数据都不能导致神经元激活,这是一种数据标准化方法,能够提升模型拟合能力。Dropout层最经典的用法是放在全连接层之前,在训练阶段,全连接层的输入首先经过Dropout层,使一部分输入数据被Dropout层随机丢弃而置0,以减轻模型的过拟合情况[13]。权重衰减即L2正则化,是在代价函数后加上一个正则化项,如公式(1)所示。C_0代表原始代价函数,后面一项即为L2正则化项,用来限制权重参数个数,以防止过拟合。LRN层模仿生物神经系统的侧抑制机制,对于局部神经元的活动创建竞争机制,使响应较大的值相对更大,提高模型泛化能力。
C=C0+λ[]2n∑ωw2 (1)
网络的优化与训练也是机器学习中十分重要的一部分,其中变化学习率是指在整个网络训练过程中,学习率可通过自适应方法调节。学习率决定了参数空间搜索的步长,若过大将导致解振动、不收敛,过小将导致收敛速度慢,更早收敛于局部最优解。变化学习率是指通过在训练过程中递减学习率,使模型能够更好地收敛,从而增强模型拟合能力。理想的学习率设计要求前期使用大学习率进行搜索,后期使用小学习率进行调优,并对参数进行个性化调整,优化频率高的参数以降低学习率,优化频率低的参数以提高学习率。比较著名的学习率调整算法有动量(Momentum)算法[14]、Nesterov算法[15]和Adagrad[16]等。
2 实验设计
实验操作系统为Win10,CPU为Inteli7-8700k,显卡为GTX-1080Ti,内存为16G,并以Tensorflow为框架,采用公开数据集CIFAR-10。CIFAR-10数据集有60 000张图片,每张图片均为分辨率为32*32的彩色图片(分为RGB3个信道)。CIFAR-10的分类任务是将每张图片分成青蛙、卡车、飞机等10个类别中的一个。
为了能在训练网络的同时检测网络性能,将数据集划分为训练集、验证集和测试集3部分,图片数量分别为45 000、5 000和10 000。训练集用于模型训练,验证集用于参数调整,测试集用于模型性能评估。
2.1 基础版本的卷积神经网络搭建
实验1为基础版本的卷积神经网络搭建。具体网络结构配置如图2所示。
该网络是一个有三层卷积层的神经网络,能够快速完成图像特征提取。全连接层用于将图像特征整合成分类特征,分类层用于分类。参数初始化时,所有权重矩阵使用random_normal(0.0,0.001),所有偏置向量使用constant(0.0)。使用cross entropy作为目标函数,并使用Adam梯度下降法进行参数更新,学习率设为固定值0.001,训练300轮并保存数据。
2.2 数据增强
实验2在基础卷积神经网络上使用数据增强技术,主要进行的数据增强操作如下:①图像切割:生成比图像尺寸略小的矩形框,对图像进行随机切割,最终以矩形框内图像作为训练数据;②图像翻转:对图像进行左右翻转;③图像白化:对图像进行白化操作。
采用4组实验进行对比,以观测不同数据增强方法的作用。实验1只进行图像切割,实验2只进行图像翻转,实验3只进行图像白化,实验4同时使用3种数据增强方法,训练1 000轮并保存数据。
2.3 模型改进
实验3在之前网络模型的基础上对模型进行改进,为了进行对比实验,该部分同样进行4组实验。实验1增加权重衰减部分,实验2增加权重衰减和dropout部分,实验3增加权重衰减、dropout和批正则化部分,实验4增加权重衰减、dropout、批正则化和LRN部分,训练1 000轮并保存数据。
2.4 变化学习率实验
实验4主要探究变化的学习率对模型的影响,大致思路如下:①首先使用较大的学习率进行训练,观察目标函数值和验证集的准确率收敛曲线;②当目标函数值下降速度和验证集准确率上升速度减缓时,减小学习率;③循环步骤②,直到减小学习率也不会影响目标函数下降或验证集准确率上升为止。
在之前的网络模型基础上进行实验,为了进行对比实验,该实验分为3部分,实验1只使用0.01的学习率进行训练,实验2前10 000批使用0.01的学习率,之后学习率降到0.001,实验3前10 000批使用0.01的学习率,10 000~20 000批使用0.001的学习率,之后学习率降到0.000 5。同样都训练500轮并保存数据。
2.5 加深网络层数实验
实验5主要探究网络层数对分类精度的影响,网络结构配置如图3所示。
为了进行对比实验,该部分同样进行4组实验,每组网络层数分别设置为8、14、20和32,同样训练500轮并保存数据。
2.6 残差网络实验
由于网络层数加深,误差反传过程中会使梯度不断衰减,而通过跨层的直连边,可减少误差在反传过程中的衰减,以成功训练深层次网络。
实验6通过设置对比实验,以观察残差网络的性能。共进行4组实验,参照图3的网络配置,每组的网络层数分别设置为20、32、44和56。同样训练500轮并保存数据。
3 实验结果及分析
实验1结果如图4所示,左边是loss(目标函数值)变化曲线,右边是训练集和验证集分類精度变化曲线。
实验1结果分析如下:loss开始从190不断减小到接近0,然后在100轮左右开始出现震荡,并且震荡幅度越来越大,说明模型不稳定。观察训练集和验证集的分类准确率,训练集准确率接近于1,而验证集准确率稳定在68%左右,说明模型泛化能力不强并且出现了过拟合情况。最后利用训练完成的模型对测试集进行分类,结果准确率为68.36%,说明模型尚有很大改进空间。
實验2结果如图5所示,左边是进行数据增强后4个对比实验的loss变化曲线,右边是验证集准确率变化曲线。
实验2结果分析如下:右边的验证集分类精度曲线表明3种数据增强技术中图像白化的效果最好,其次是图像切割,再次是图像翻转,而如果同时使用3种数据增强技术,不仅能使训练过程的loss更稳定,而且能使验证集的准确率提升至82%左右,提升效果十分明显。对于测试集,准确率也提升至80.31%。说明图像增强可通过增加训练集数据量达到提升模型泛化能力以及鲁棒性的效果。
实验3结果如图6所示,左边是进行模型改进后4个对比实验的loss变化曲线,右边是验证集准确率变化曲线。
实验3结果分析如下:右图的验证集分类精度曲线表明,上述4个模型改进方法的应用都会使训练集误差与验证集准确率获得提升,其中批正则化技术和dropout技术带来的提升效果非常明显。当同时使用这些模型提升技术时,验证集的分类准确率从82%提升至88%左右。对于测试集,准确率提升至85.56%。观察左图,使用批正则化之后,loss曲线不再像之前出现先下降后上升的情况,说明批正则化技术可以增强模型训练的稳定性,并且能够很大程度上提升模型泛化能力。
实验4结果如图7所示,左边是变化学习率部分3个对比实验的loss变化曲线,右边是验证集准确率变化曲线。
实验4结果分析如下:在10 000批时,学习率从0.01下降到0.001,目标函数值出现明显下降,验证集准确率有明显提升;在20 000批时,学习率从0.001下降到0.000 5,目标函数值未明显下降,但验证集准确率有一定提升。对于测试集,准确率提升至86.35%,说明学习率的变化能够提升模型拟合能力,从而提升准确率。学习率在何时衰减、衰减多少也需要进行多次尝试。一般在模型基本成型之后,使用变化学习率方法,可对模型进行一定程度的改进。
实验5结果如图8所示,左边是加深网络层数部分4个对比实验的loss变化曲线,右边是验证集准确率变化曲线。
实验5结果分析如下:右边的验证集精度曲线表明,网络层数从8层增加到14层,准确率有所上升,但从14层增加到20层后再增加到32层,准确率不升反降,说明如果网络层数过大,由于梯度衰减的原因,将导致网络性能下降。因此,在使用深度神经网络时,需要解决梯度衰减问题。
实验6结果如图9所示,左边是使用残差网络部分4个对比实验的loss变化曲线,右边是验证集准确率变化曲线。
实验6结果分析如下:当网络从20层增加到56层,训练loss稳步降低,验证集准确率稳步提升,并且当网络层数为56层时,验证集准确率可达到91.62%,说明使用残差网技术可以解决梯度衰减问题,发挥深层网络的特征提取能力,使模型获得很强的拟合能力与泛化能力。
上述实验对模型分类准确率的提升数据如表1所示。
4 结语
实验结果表明,通过数据增强、网络结构和优化训练3个方面对模型进行改进,使模型的拟合能力和泛化能力逐渐增强,最终将模型在数据集CIFAR-10的分类准确率从68%提升到92%左右。上述具体的实验设计步骤与结果分析,对于如何快速搭建一个卷积网络模型,并进行训练与优化可起到一定启发作用。
参考文献:
[1] DALAL N,TRIGGS B.Histograms of oriented gradients for human detection[J].IEEE Computer Society Conference on Computer Vision & Pattern Recognition,2005(12):886-893.
[2] HINTON G E,SALAKHUTDINOV R.Reducing the dimensionality of data with neural networks[J].Science,2006,313:504-507.
[3] 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.
[4] 周飞燕,金林鹏,董军.卷积神经网络研究综述[J].计算机学报,2017,40(6):1229-1251.
[5] 卢宏涛,张秦川.深度卷积神经网络在计算机视觉中的应用研究综述[J].数据采集与处理,2016,31(1):1-17.
[6] SZEGEDY C,VANHOUCKE V,IOFFE S,et al.Rethinking the inception architecture for computer vision[J].Computer Science ,2015:2818-2826.
[7] HE K,ZHANG X,REN S,et al.Deep residual learning for image recognition[C].Computer Vision and Pattern Recognition,2016:770-778.
[8] IOFFE S,SZEGEDY C.Batch normalization:accelerating deep network training by reducing internal covariate shift[Z].Cornell University Library,2015.
[9] 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.
[10] KROGH A,HERTZ J A.A simple weight decay can improve generalization[J].International Conference on Neural Information Processing Systems,1991:950-957.
[11] ROBINSON A E,HAMMON P S,DE SA V R.Explaining brightness illusions using spatial filtering and local response normalization[J].Vision Research,2007,47(12):1631-1644.
[12] SIMONYAN K,ZISSERMAN A.Very deep convolutional networks for large-scale image recognition[J].Computer Science,2014.
[13] 冯超.深度学习轻松学:核心算法与视觉实践[M]北京:电子工业出版社,2017:204-206.
[14] SUTSKEVER I,MARTENS J,DAHL G,et al.On the importance of initialization and momentum in deep learning[C].International Conference on International Conference on Machine Learning,2013.
[15] NESTEROV Y.A method for unconstrained convex minimization problem with the rate of convergence[C].Soviet Mathematics Doklady,1983.
[16] DUCHI J,HAZAN E,SINGER Y.Adaptive subgradient methods for online learning and stochastic optimization[J].Journal of Machine Learning Research,2011,12(7):257-269.
(責任编辑:黄 健)