基于CNN池化和进化策略的一般神经网络图像分类研究
2021-05-11高滔
摘要:网络的爆炸式发展产生了海量的图像,图像标签的错误和缺失比较常见,图像分类研究很有必要。CNN池化能够提取到输入矩阵的重要特征,降低数据的维度。进化策略是模仿生物“优胜劣汰”进化方式的一种启发式算法,能快速找到问题的解。本文基于CNN池化提取一组有正确标签的图像的特征,搭建层数为3的神经网络,进化策略优化初始权重,通过训练集训练分类模型,通过测试集来验证模型的优劣,并使最终的模型实现对未知类别图像的高效分类。实例验证阶段收集10类100张犬类图片,按照各研发步骤进行实验,算法结果验证了进化策略优化权重的必要及神经网络模型的高效。
关键词:CNN池化;进化策略;神经网络;图像分类
【Abstract】Theexplosivedevelopmentofthenetworkhasproducedalargenumberofimages,andtheerrorsandmissingofimagelabelsaremorecommon,andtheresearchonimageclassificationisnecessary.CNNpoolingcanextractimportantfeaturesoftheinputmatrixandreducethedimensionalityofthedata.Evolutionarystrategyisaheuristicalgorithmthatimitatestheevolutionarymethodof"survivalofthefittest"ofbiology,whichcanquicklyfindthesolutionoftheproblem.BasedonCNNpooling,thepaperextractsthefeaturesofasetofimageswithcorrectlabels,buildsaneuralnetworkwiththreelayers,optimizestheinitialweightsbyevolutionarystrategy,trainstheclassificationmodelthroughthetrainingset,andverifiestheprosandconsofthemodelthroughthetestset.Thefinalmodelrealizestheefficientclassificationofunknowncategoryimages.Intheinstanceverificationstage,100dogpicturesof10categoriesarecollected,andtheexperimentiscarriedoutaccordingtotheabovesteps.Thealgorithmresultsverifythenecessityoftheevolutionstrategytooptimizetheweightandtheefficiencyoftheneuralnetworkmodel.
【Keywords】CNNpooling;evolutionarystrategy;neuralnetwork;imageclassification
作者简介:高滔(1994-),男,硕士研究生,主要研究方向:车间调度、智能算法。
0引言
随着互联网技术的飞速发展,在对互联网的使用中也随即产生了海量的图像。目前网页上的很多图像都没有或没有正确标签,并在缺乏先验知识的情况下,对图像的分类进行识别也仍具有一定难度。很多时候各关键词也不能链接到正确的图像,即会带来一定误导,所以良好的图像分类意义重大。
人工神经元网络(ArtificialNeuralNetwork,ANN)是模拟生物神经网络,由若干个神经网络组成的动态系统。其中,里程碑式的成就即是由Rosenblatt提出的单层感知机模型,Rumelhart等人[1]则提出了误差训练传播算法的多层前馈反向传播网络BP网络,Hinton等人[2]又在《Science》发文剖析了多隐藏层的优点,至此深度学习的提出就使得神经网络的研究逐渐成为热点。在上世纪末,已有人开始从事卷积神经网络(ConvolutionalNeuralNetwork,CNN)方面的相关研究,也取得了一些成果,但很难拓展,直到2012年大规模视觉识别挑战竞赛CNN取得最好的效果,由此才吸引大量关注[3]。进化策略是由德国Rechenberg和Schwefe模拟生物进化的方式提出的算法,与遗传算法不同的是其存在外形参数,并认为基因改变无法改变结果的分布[4]。
现有的分类技术大多属于监督学习,需要大量标签数据训练模型[5]。零样本分类是一种跨模态学习,当前的热门研究领域之一,其在应用初期的图像分类任务现已扩展到了其他方面[6-7]。卷积神经网络在图像分类的应用是当前的主流,取得了众多可观成果[8-10],但在一些领域也受到一些挑战,ResNet-50网络中的Softmax分类器不能够很好地区分提取到的特征[11-12]。目前,卷积神经网络对图像分类的研究,经常用到的图像去噪方法、也就是本文选用的NL-means算法[13],Softmax-Loss在单类别分类问题中的应用要更多些[14-15]。
综上可知,神经网络在图像分类的研究較多,研究成果相当丰富。但大多数都是在特定情况下集中在分类模型的选择和参数的优化上,重点就是算法层面的改进。基于此,本文应用CNN的池化提取特征,进化策略优化初始权重,搭建相关神经网络模型并进行训练,最终在具体的实例中验证了模型的效率。
1研究方法
1.1池化
池化类似于过滤,用过滤得到输出代替输入(本文中的输入、输出皆是二维矩阵)。相关参数有输入x、核kernel、输出y、Padding加零、X宽高分别是WX、WH,核的参数有宽W、高H、步长stride,其宽高分别是S_width,S_height。池化一般有3种:MaxPooling、MinPooling、MeanPooling,分别表示最大、最小、均值池化。池化的流程步骤可表述为:
对输入X进行加零(Padding=1,X外部加一圈零),从左到右,从上到下依次用核去扫描X,步长stride控制每次移动的距离,stride有2个参数,分别控制右移和下移的幅度,核覆盖超过X边界的部分补零,依次对核覆盖的区域取最大值、最小值或均值组成输出y。池化的示例如图1所示。由图1可知,核长宽都是2,步长的2个参数都是2。
1.3神经网络
神经网络也对应着输入X,输出Y,不同的是其引入权重W、偏置b和激活函数F(x),激活函数有sigmoid(x),softmax(x),relu(x)等等。
按学习方式,神经网络可分为监督式学习和非监督式学习,两者间的区别是有无标签(目标值)。对于分类问题,常用的方法是监督式学习。其大致步骤就是:初始化W,b,计算模型输出Y,与标签t进行比较,通过彼此间的差异来调整W和b,并引入学习率LR表示调整幅度的大小,最终达到训练模型的效果。通常,损失函数loss(x)可表示两值间差异。研究中,常见的损失函数有均方差,交叉熵,常用的算法是梯度反向传播算法。下面就本文用到的函数及模型给出对应的数学表示:
2实验及结果分析
2.1数据收集及处理
本文收集了10种犬的图片,分别是:藏獒、哈士奇、柴犬、贵宾犬、杜宾犬、吉娃娃、边境牧羊犬、萨摩耶犬,英国斗牛犬,金毛寻回犬。每种10张,共100张图片。每张图都是jpg格式,并对每张图的像素进行调整,均调整为121×121。对部分图片处理后的缩影见图2。
对于数据处理,研究中拟依次展开的步骤详情见如下:
(1)通过python的图像处理模块把每张图像转为灰度图,并通过自定义函数把每张图读为二维矩阵,因为矩阵上的值在0~255之间,每个矩阵都除255,做归一化处理。返回矩阵的行和列,对应图像的width,height,分别是121,121。现有100个121×121的矩阵。
(2)对这100个矩阵做maxpool池化处理,核的W=H=3,步长,S_width=3,S_height=3,padding=0,由式(2),式(3)知处理后的矩阵行列C=R=[(121-3)/3]+1=40,变为100个40×40的矩阵。其池化的工具是tensorflow模块里面的相关函数。
(3)把矩阵变为100个1600×1的矩阵并竖直合并,变换为100×1600×1的矩阵,降维为100×1600,其矩阵的每一行就表示一张图片。对矩阵的每一行的标签进行编码,采用独热编码(One-HotEncoding)。编码完成后与前一个矩阵合并,矩阵变为100×1610,保存在Excel中。
(4)复制一份数据,与之前数据合并,变为200×1600,并随机打乱矩阵的行。读取前面的160行作为训练集,用作模型的训练,读取最后40行用作为测试集,用作模型的测试。
处理后的部分数据缩影见图3。
2.2模型搭建
本文搭建的是3层神经网络,第一层是输出层,第二层是隱藏层,激活函数是sigmoid,第三层输出层,激活函数是softmax。隐藏层的神经元数采用Masters(1994),即:
NHN≈(NINP*NOUT)1/2.(10)
输出神经元1600,输出神经元10(10类),隐藏神经元数NHN≈1600×10≈126。
隐藏层和输出层的权重矩阵的值都从标准正态分布中生成,初始b都为0.1。
其中,隐藏层矩阵是1600×126,输出层矩阵是126×10。损失函数采用交叉熵函数。学习率设为0.1。
2.3进化策略生成初始权重
初始权重相当于寻找满意解的起点,好的初始权重能使算法收敛更快,运用进化策略对初始权重进行寻优,算法步骤可简化为2步:
(1)随机初始化多个输出层矩阵权重当作DNA,也就是问题的多个解,随机初始化多个变异强度与之对应。
(2)计算多个解下的输出,因为适应度函数(目标函数)是最值函数,把交叉熵当作适应度函数。对初始矩阵进行进化策略迭代,寻找最优的权重矩阵。
初始的500个权重矩阵和对应的变异强度矩阵都是从标准正态函数中生成。本文初始化500个DNA,即500个权重矩阵,每次产生200个子代,种群变为700个DNA,每次淘汰交叉熵大的200个DNA,经过多次迭代后种群还是500个DNA,最终输出交叉熵最小的权重矩阵。
2.4算法测试
保持其他神经网络的各参数不变,参见2.2节的模型搭建,迭代次数都设为1000次,分别输出不加入进化策略(随机输出层权重矩阵)和加入进化策略(进化策略找到较好的初始矩阵)的结果。该结果表示每次通过模型迭代去计算测试集的正确率。结果正确的依据就是每次测试集的输出与测试标签在对应位置处的误差在较小的范围内,否则认为不正确。研究得到的实验结果如图4~图6所示。3个结果都是多次实验得到较为平均的结果。其中,图6是学习率LR=0.3的未加入进化策略的仿真结果。
由图4~图6可以看出,考虑CNN池化提取图像特征正确率都较高。结果中,加入进化策略的正确率95%,未加入进化策略正确率为85%,学习率调整为0.3时正确率在迭代次数800次左右就达到100%。
3结束语
经由本文研究可以看出,基于CNN池化提取特征的训练模型都取得较好的结果,加入进化策略对初始权重选择的结果则优于未加入的。这就说明,考虑CNN池化和进行策略在一般神经网络是可行的,其效果也较好。从图6也可以看出,调整学习率能使算法快速收敛,同时表明该问题对学习率也比较敏感。
本文也有一些不足:数据量小,搭建的神经网络层数并不深,若面临更复杂的分类问题,该系统可能无法通过训练得到较好的模型。为此,下一步的研究展望是:增大数据量,使模型具有普遍性;效果不好时加大神经网络层数,启用更优秀的激活函数;考虑对其他参数也同步进行调整,而不能仅仅局限在初始权重上。
参考文献
[1]RUMELHARTDE,HINTONGE,WILLIAMSRJ.Learningrepresentationsbyback-propagatingerrors[J].Nature,1986,323(6088):533-536.
[2]HINTONGE,SALAKHUTDINOVRR.Reducingthedimensionalityofdatawithneuralnetworks[J].Science,2006,31(5786):3504-3507.
[3]周飞燕,金林鹏,董军.卷积神经网络研究综述[J].计算机学报,2017,40(6):1229-1251.
[4]冯春时.群智能优化算法及其应用[D].合肥:中国科学技术大学,2009.
[5]LECUNY,BENGIOY,HINTONG.Deeplearning[J].Nature,2015,521:436-444.
[6]JIZhong,YUYunlong,PANGYanwei,etal.Manifoldregularizedcross-modalembeddingforzero-shotlearning[J].InformationSciences,2017,378:48-58.
[7]XUBaohan,FUYanwei,JIANGYugang,etal.Heterogeneousknowledgetransferinvideoemotionrecognition,attributionandsummarization[J].IEEETransactionsonAffectiveComputing,2018,9:255-270.
[8]趙新秋,贺海龙,杨冬冬,等.基于改进的卷积神经网络在图片分类中的应用[J].高技术通讯,2018,28(11):930-936.
[9]闫河,王鹏,董莺艳,等.改进的卷积神经网络图片分类识别方法[J].计算机应用与软件,2018,35(12):193-198.
[10]常亮,邓小明,周明全,等.图像理解中的卷积神经网络[J].自动化学报,2016,42(9):1300-1312.
[11]程德强,陈亮亮,蔡迎春,等.边缘融合的多字典超分辨图像重建算法[J].煤炭学报,2018,43(7):2084-2090.
[12]唐文杰,朱家明,徐丽.基于NL-Means的双水平集脑部MR图像分割算法[J].计算机科学,2018,45(S2):256-258,277.
[13]张秀玲,周凯旋,魏其珺,等.多通道交叉融合的深度残差网络脱机手写汉字识别[J].小型微型计算机系统,2019,40(10):2232-2235.
[14]常川.基于ResNet深度网络的人类蛋白质图谱图像分类方法研究[J].医学信息学杂志,2019,40(7):45-49.
[15]王文成,蒋慧,乔倩,等.基于ResNet50网络的十种鱼类图像分类识别研究[J].农村经济与科技,2019,30(19):60-62.