【论文】基于MATLAB的手写体数字识别算法的实现与分析毕业论文_第1页
【论文】基于MATLAB的手写体数字识别算法的实现与分析毕业论文_第2页
【论文】基于MATLAB的手写体数字识别算法的实现与分析毕业论文_第3页
【论文】基于MATLAB的手写体数字识别算法的实现与分析毕业论文_第4页
【论文】基于MATLAB的手写体数字识别算法的实现与分析毕业论文_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

1、关键字】论文基于MATLAB的手写体数字识别算法的实现与分析摘要手写体数字识别是利用计算机自动辨认手写体阿拉伯数字的一种技术,是光学字符识别技术的一个分支。手写体数字识别在邮政编码、财务报表、银行票据、各种凭证以及调查表格的识别等等方面有着重要应用,由于数字识别经常涉及财会、金融领域,其严格性更是不言而喻的。所以,对识别系统的可靠性和识别率要求很高,构成了手写体数字识别面临的主要困难,大批量数据处理对系统速度又有相当高的要求。本文基于MNIST数据集,通过Matlab平台,对决策树算法、SVM算法和人工神经网络(ANN)算法进行实现,并对分类算法的准确率进行评估。实验结果表明,人工神经网络(A

2、NN)的准确率最高,为99.69%,SVM算法次之,准确率为94.53%,决策树算法的准确率为83.53%。三种分类算法中,决策树算法的速度最快,SVM算法的速度最慢。另外,针对每一种分类算法在MNIST数据集上的实验结果,本文还得出以下结论:第一,MNIST数据集的归一化与否对决策树的分类效果几乎没有影响;对SVM的分类效果影响较大,未归一化时的准确率为11.35%,归一化之后的准确率为94.53%;对人工神经网络的分类效果影响较小,未归一化时的准确率为82.11%,归一化之后的准确率为99.69%。这说明三种分类算法对数据的不平衡分布的敏感程度各不相同。第二,对于SVM分类算法,当训练数据

3、集的样本容量小于60000(MNIST训练数据集的最大样本容量)时,该算法对尝试数据集分类预测的准确率随样本容量的增大而增大。第三,针对人工神经网络,数据类标签的表示形式对分类预测的准确率的影响较大。使用10位数据表示类标签是的准确率为99.69%,远远高于使用1位数据表示类标签时的准确率60.24%。关键词:手写体数字识别;决策树算法;SVM算法;人工神经网络算法ABSTRACTHandwrittennumeralrecognitionisatechniquethatusescomputertorecognizehandwrittenArabicnumeralsautomaticallyan

4、disabranchofopticalcharacterrecognitiontechnology.Handwrittennumeralrecognitionhasimportantapplicationsinpostalcodes,financialstatements,banknotes,variouskindsofvouchersandtheidentificationofsurveyforms.Sincedigitalidentificationofteninvolvesaccountingandfinance,itsstrictnessisself-evident.Thedemand

5、foridentificationsystemofthereliabilityandrecognitionrateisveryhigh,constitutingahandwrittendigitalidentificationfacingmajordifficulties,high-volumedataprocessingonthesystemspeedandaveryhighdemand.Inthispaper,weuseMatlabtoimplementdecisiontreealgorithm,SVMalgorithmandartificialneuralnetwork(ANN)algo

6、rithmbasedonMNISTdataset,andtheaccuracyofclassificationalgorithmsiscalculatedbyusingtherealdatatag.Experimentalresultsshowthattheartificialneuralnetwork(ANN)thehighestaccuracyratefor99.69%,SVMalgorithm,followedby94.53percentaccuracyrate,decisiontreealgorithmaccuracyis83.53%.Intermsofspeed,decisiontr

7、eealgorithmisthefastest,SVMalgorithmistheslowest.Inaddition,foreachclassificationalgorithmwealsoconcludedthat:Firstly,whetherornottheMNISTdatasetisnormalizedhasnoeffectintheclassificationtree;WhileithasagreatimpactonSVMclassification.Whenitisnotnormalizedtheaccuracyis11.35%,andafternormalizedtheaccu

8、racyis94.53%;Theartificialneuralnetworkclassificationislessaffected,andwhenitisnotnormalizedtheaccuracyis82.11%whileafternormalizedtheaccuracyis99.69%.Thisshowsthesensitivityofthethreeclassificationalgorithmstounbalanceddistributionofdata.Secondly,fortheSVMclassificationalgorithm,whenthesamplesizeis

9、lessthan60,000(maximumsizeofMNISTtestdataset),theaccuracyincreaseswiththeincreasingofsamplesize.Thirdly,fortheartificialneuralnetwork,theimpactofclasslabelrepresentationislargeontheclassificationaccuracy.Whenusing10bitstorepresentclasslabels,theaccuracyis99.69%,farhigherthantheaccuracyof60.24%whenus

10、ing1bittorepresentdatalabels.KEYWORDS:Handwrittennumeralrecognition;Decisiontreealgorithm;SVMalgorithm;Artificialneuralnetworkalgorithm目录TOC o 1-5 h z HYPERLINK l bookmark0 1.引言1 HYPERLINK l bookmark2 1.1手写数字识别1 HYPERLINK l bookmark4 2.分类算法1 HYPERLINK l bookmark10 决策树算法2 HYPERLINK l bookmark12 ID3算法

11、2C4.5算法3CART算法3SLIQ算法3SPRINT算法32.1.6经典决策树算法的比较4 HYPERLINK l bookmark30 支持向量机4 HYPERLINK l bookmark42 人工神经网络666TOC o 1-5 h z HYPERLINK l bookmark48 2.3.3Hopfield网络8 HYPERLINK l bookmark52 3实验过程与结果分析10 HYPERLINK l bookmark54 3.1实验环境10 HYPERLINK l bookmark56 实验数据集10 HYPERLINK l bookmark58 数据预处理10 HYPER

12、LINK l bookmark60 决策树分类实验111112 HYPERLINK l bookmark62 3.5SVM分类实验131314 HYPERLINK l bookmark64 3.6人工神经网络分类实验141415 HYPERLINK l bookmark66 4结论19 HYPERLINK l bookmark68 4.1三种分类算法的比较19 HYPERLINK l bookmark70 4.2决策树算法的分析19 HYPERLINK l bookmark72 4.3SVM算法分析19 HYPERLINK l bookmark74 4.4神经网络算法分析20 HYPERLIN

13、K l bookmark76 参考文献211.引言1.1手写数字识别手写数字识别是模式识别领域的一个重要分支,它研究的核心问题是:如何利用计算机自动识别人手写在纸张上的阿拉伯数字。手写体数字识别问题,简而言之就是识别出10个阿拉伯数字,由于数字的清晰程度或者是个人的写字习惯抑或是其他,往往手写体数字的性状、大小、深浅、位置会不大一样。手写体识别一般包括3个阶段:预处理、特征提取、分类识别。手写数字识别前景广阔,广泛应用于表格中数字的识别、汽车牌照的数字自动识别和成绩单的识别等。实现数字的自动识别能够给人们的工作和生活带来很大的方便。对于该领域的研究具有重要的理论价值:一方面,阿拉伯数字是唯一的

14、被世界各国通用的符号,对手写数字识别的研究与文化背景无关,这样就为各国、各地区的研究工作者提供了一个自由平等的舞台,大家可以在这一领域施展才智,各抒己见。另一方面,由于数字识别的类别数较少(只有0到9十个类别),有助于做深入分析及验证一些新的理论。这方面最明显的例子就是人工神经网络,相当一部分的人工神经网络模型都以手写数字识别作为具体的实验平台,验证理论的有效性,评价各种方法的优缺点。数字识别的算法较多,当前运用较好的主流算法以统计、聚类和分类算法为主,如Bagging算法、支持向量机算法、神经网络等。手写数字识别难度在于:一、数字相似性大,但字形相差不大;二、数字虽然只有10种,但笔划简单,

15、同一个数字写法差别大;三、手写数字存在断笔和毛刺,对识别造成影响。本文选择分类算法中的决策树算法、支持向量机算法、神经网络对MNIST数据集进行数字识别,并对分类效果进行比较分析。2.分类算法分类器识别是实现手写体数字识别的最终关键,基于距离的分类器和神经网络分类器这两大类是目前现有的最主要的分类器。分类是数据挖掘的重要分支,可用于提取、描述重要数据的模型或预测未来的数据趋势1。2.1决策树算法决策树也称为判定树,是一种有监督的学习方法。决策树代表着决策树的树形结构,可以根据训练集数据构造出决策树。如果该树不能对所有对象给出正确的分类,就选择一些例外加入到训练集数据中。重复该过程,直到形成正确

16、的决策集。决策树方法首先对数据进行处理,利用归纳算法生成可读的规则和决策树,然后使用决策树对新数据进行分析,本质上是通过一系列规则对数据进行分类的过程。决策树的典型算法有ID3,C4.5,等。根据训练集构建决策树,决策树中的结点逐层展开。每展开一层子结点,并将其设为叶结点,就得到一棵决策树,然后采用测试集对所得决策树的分类性能进行统计。重复上述过程,可以得到决策树在测试集上的学习曲线。根据学习曲线,选择在测试集上性能最佳的决策树为最终的决策树。ID3算法J.RossQuinlan在1986年将信息论引入到决策树算法中,提出了ID32算法,算法思想如下:设样本集E共有C类训练集,每类样本数为pi

17、,且i=1,2,3,,C。如果以属性A作为测试属性,属性A的v个不同的值为v1,v2,vv,可以用属性A将E划分成v个子集E1,E2,Ev,假定Ei中含有第j类样本的个数为pij,j=1,2,3,,C,那么子集Ei的熵为:inoSropy)十加og啟jEij=lEi1)属性A的信息熵为:vInfor_Entropy(A)=1E将Infor_Entropy(Ei)代入公式(2)后可得:(其曲)Ei|一棵决策树对一实例做出正确类别判断所需的信息为:EiInfor_Entropy(Ei)2)vInfor_Entiopy(A)=-刀-i=1IEJ=EEi3)cInfor(E)=-1ElogCi2岡,i

18、=1,2,C4)信息增益:Infor_Gain(A)=Infor(E)Infor_Entropy(A)ID3算法存在着属性偏向,对噪声敏感等问题。C4.5算法在ID3算法的基础上,Quinlan在1993年提出了一种改进的算法,即C4.5算法3,信息增益率计算如下:Gain(A)TOC o 1-5 h zGainratioA)=(5)宀Split(A)(5)cpijpijSplit(A)=-log(6)C4.5算法克服了ID3算属性偏向的问题,增加了对连续属性的处理,通过剪枝,在一定程度上避免了“过度拟合”的现象。但是该算法将连续属性离散化,需要遍历该属性的所有值,降低了效率;要求训练样本驻留

19、在内存,不适合处理大规模数据集。CART算法CART算法可以处理无序的数据,采用基尼系数作为测试属性的选择标准,基尼系数的计算如下:TT2G叭put(T)=可GiniiT1)+可GiniiT2)(7)其中,Gini(T)=1-工p2,pi是类别j在T中出现的概率。iCART算法生成的决策树精度较高,但是当其生成的决策树复杂度超过一定程度后,随着复杂度的提高,分类精确度会降低。因此,用该算法建立的决策树不宜太复杂4。SLIQ算法决策树分类算法研究一直朝着处理大数据集的方向进行,但大部分方法在减少了运算时间的同时也降低了算法的精度SLIQ的分类精度与其他决策树算法不相上下,但其执行的速度比其他决策

20、树算法快。SLIQ算法对训练样本集的样本数量以及属性的数量没有限制。SLIQ算法能够处理大规模的训练样本集,具有较好的伸缩性;执行速度快而且能够生成较小的二叉决策树;SLIQ算法允许多个处理器同时处理属性表,从而实现并行性。但是SLIQ算法不能摆脱主存容量的限制。SPRINT算法SLIQ算法要求类表驻留内存,当训练集大到类表放不进内存时,SLIQ算法就无法执行。为此,IBM的研究人员提出SPRINT算法,它处理速度快,不受内存的限制。SPRINT算法可以处理超大规模训练样本集,数据样本集数量越大,SPRINT的执行效率越高,并且可伸缩性更好。但是,SPRINT算法存在着一些缺陷,在SLIQ的类

21、表可以存进内存时,SPRINT算法的执行速度比SLIQ算法慢。2.1.6经典决策树算法的比较基于决策树的分类算法已经有几十种,各种算法在执行速度、可扩展性、输出结果的可理解性、分类预测的准确性方面各有所长。下面就对几种典型的决策树算法进行比较,结果如表2-1所示:表2-1典型决策树算法的比较算法测试属性选择指标连续属性的处理是否需要独立测试样本集运行剪枝时间可伸缩性并行性决策树的结构ID3信息增益离散化是后剪枝差差多叉树C4.5信息增益率预排序否后剪枝差差多叉树CARTGINI系数预排序否后剪枝差差二叉树SLIQGINI系数预排序否后剪枝良好良好二叉树SPRINTGINI系数预排序否后剪枝好好

22、二叉树2.2支持向量机支持向量机(SVM)方法是通过一个非线性p,把到一个乃至无穷维的特征空间中(Hilbert空间),使得在原来的中非线性可分的问题转化为在特征空间中的线性可分的问题.简单地说,就是升维和线性化。升维,就是把样本向高维空间做映射,一般情况下这会增加计算的复杂性,甚至会引起,因而人们很少问津.但是作为分类、回归等问题来说,很可能在低维样本空间无法线性处理的样本集,在高维特征空间中却可以通过一个线性超平面实现线性划分(或回归).一般的升维都会带来计算的复杂化,SVM方法巧妙地解决了这个难题:应用的展开定理,就不需要知道非线性映射的显式表达式;由于是在高维特征空间中建立线性学习机所

23、以与相比,不但几乎不增加计算的复杂性,而且在某种程度上避免了维数灾难.这一切要归功于核函数的展开和计算理论。选择不同的,可以生成不同的SVM。SVM的机理是寻找一个满足分类要求的最优分类超平面,使得该超平面在保证分类精度的同时,能够使超平面两侧的空白区域最大化。理论上,支持向量机能够实现对线性可分数据的最优分类。以两类数据分类为例,给定训练样本集(xi,yi),i=1,2,l,xRn,yW社1,超平面记作(wxi)+b=0,为使分类面对所有样本正确分类并且具备分类间隔,就要求它满足如下约束:yi(wxi)+b1,i=1,2,.,l。图2-1支持向量机可以计算出分类间隔为2/|w|,因此构造最优

24、超平面的问题就转化为在约束式下求:min(w)=1|WII2w)8)为了解决该个约束最优化问题,引入Lagrange函数:10)11)12)*f(x)=sgn(w*x)+b=sgn(jE=1ajyj(xjxi)+b,xeRn13)L(w,b,a)=2llWI-a(y(wx)+b)-1)(9)式中,ai0为Lagrange乘数。约束最优化问题的解由Lagrange函数的鞍点决定,并且最优化问题的解在鞍点处满足对w和b的偏导为0,将该QP问题转化为相应的对偶问题即:I1IImaxQ(a)=爲厂2荷爲叩厂円兀Xj丿s.t.Ea汀j=0,j=1,2,l,aj三0,j=1,2,1j=1jjj解得最优解a

25、*=(a*,a;,a*)T计算最优权值向量W*和最优偏置b*,分别为:*I*w=Eayxj=1jjj*I*b=yi-EFiQj(Xj-x丿因此得到最优分类超平面(w*x)+b*=0,而最优分类函数为:对于线性不可分情况,SVM的主要思想是将输人向量映射到一个高维的特征向量空间,并在该特征空间中构造最优分类面。将x做从输入空间Rn到特征空间H的变换,得:T(14)xf(x)=(x),;(x),,i(x)以特征向量(X)代替输入向量X,则可以得到最优分类函数为:*I*f(x)=sgn(w(x)+b=sgn(j$j(xj)(xj)+b在上面的对偶问题中,无论是目标函数还是决策函数都只涉及到训练样本之

26、间的内积运算,在高维空间避免了复杂的高维运算而只需要进行内积运算。2.3人工神经网络人工神经网络是指模拟人脑神经系统的结构和功能,运用大量的处理部件,由人工方式建立起来的网络系统。该网络具有大规模并行协同处理能力和较强的容错能力和联想能力,同时是一个具有较强学习能力的大规模自组织、自适应性的非线性动力系统。神经网络的结构是基本处理单元及其互连方法决定的。如图所示,单个神经元单元由多个输入xi,i=1,2,.,n和一个输出y组成。图3-2神经元ny=f(=1wixi-0i=1(16)式中,&为神经元单元的偏置(阈值),wi为连接权系数,n为输入信号数目,y为神经元输出,f为输出变换函数,称为激活

27、函数。BP网络是一类典型的前馈网络。其它前馈网络有感知器(Perception)、自适应线性网络和交替投影网络等。前馈网络是一种具有很强学习能力的系统,结构比较简单,且易于编程。前馈网络通过简单非线性单元的复合映射而获得较强的非线性处理能力,实现静态非线性映射。BP网络主要特点是能够实现从n维到m维的非线性映射,它还可以采用梯度下降法实现快速收敛。模型如下图所示:图3-3反向传播网络反向传播算法的具体流程如下:对于给定的样本集D=(x,t),初始化网络结构dxnHXc。初始化权系数血,学习率n阈值。根据样本集D更新权系数血:.-ndJ()/djk(17)18)jkjkjk.-ndJ(丿/doj

28、ijijiji计算/J=J叫re)J0,如果J0结束训练,并认为此时的血为最优。否则转第2步继续进行循环。对于反向传播模型的初始化如下:输入层:单元i的输入:xi单元数量:d单元i的输出:xj单元i的激活函数:线性函数隐层:单元j的净输入:netj单元数量:nH单元j的输出:yj单元j的激活函数:非线性函数输出层:单元k的净输入:netk单元数量:c单元k的输出:zk单元k的激活函数:非线性函数学习速率学习速率直接影响权系数调整时的步长。学习速率过小,导致算法收敛速度缓慢。学习速率过大,导致算法不收敛。学习速率的典型取備二0.1。另外学习速率可变。误差函数的局部极小值调整权系数的目标是使误差函

29、数取得最小值但是,采用梯度下降法(GradientDescentProcedure)不能保证获得最小值,而只能保证得到一个极小值。如果训练过程无法使误差函数降低到预期的程度,一种常用的方法是:再一次对权系数进行随机初始化,并重新训练网络。学习曲线样本集的划分:一般情况下,可把已知的样本集划分为三个子集,即训练集、确认集、测试集。训练集:用来调整权系数,使误差函数尽可能变小。确认集:用来初步验证神经网络对未来新样本的分类能力,并据此确定最佳的权系数。神经网络的训练过程需要采用训练集及确认集共同完成。测试集:在训练过程最终结束后,再采用测试集对网络的分类性能进行最后测试,用以评估神经网络在实际应用

30、中的实际性能。2.3.3Hopfield网络Hopfield网络是一种动态反馈系统,可以用一个完备的无向图表示,它比前馈网络具有更强的计算能力。Hopfield网络一般只有一个神经元层次,每个神经元的输出都与其它神经元的输入相连,是一种单层全反馈网络。如图3-4所示。图3-4Hopfield网络Hopfield网络中神经元之间的权值一般是对称的。但每个神经元都没有到自身的联接。神经元i和神经元j之间相互连接的权值相等,即wij=wji。因此此时,网络一定能够收敛到一个稳定值。否则,则网络可能会不稳定,无法收敛。离散Hopfield网络每个单元均有一个状态值,它取两个可能值之一。设在某一个时刻t

31、,神经元i的状态为Ui(t),则在t+1时刻的状态为:U(t+1)=sign(H(t)=ii1若H(t)0i0(或-1)若H(t)0iH(t)=丫wU(t)-919)20)iijjij=i其中,wij为神经元i何j之间的连接权值,9i为第i个神经元的阈值。Hopfield网络算法的流程如下:(1)设置互联权值mwij乙XsXs);fori=1:ImageNumb=fread(fid,ImageRow*ImageCol,uint8);c=reshape(b,ImageRowImageCol);d=c;e=255-d;e=uint8(e);savepath=fullfile(savedirecto

32、ry,TestImage_num2str(i,%05d).bmp);imwrite(e,savepath,bmp);waitbar(i/ImageNum);endfclose(fid);close(h_w);第二步:将BMP图片转换为.mat文件,保存在Matlab的工作空间。预处理之后的数据集格式如下:TrainItem.matTestItem.matTrainLable.matTestLable.mat60000*78410000*78460000*110000*1图3-2预处理之后的数据集3.4决策树分类实验Step1:导入实验数据集load(TestItem.mat);load(Tes

33、tLable.mat);load(TrainItem.mat);load(TrainLable.mat);Step2:使用训练数据集及其标签集训练模型,得到决策树,并输出,如图3-3所示Tree=classregtree(TrainItem,TrainLable);图3-3决策树模型Step3:使用训练好的决策树对测试集进行分类,并得到分类结果value_table=round(eval(Tree,TestItem);Step:将分类得到的数据类标签与已知的类标签进行比较,画出预测类标签与实际类标签的对比图,计算得到决策树的准确率。count=0;fori=1:1:10000ifTestLab

34、le(i)=value_table(i)count=count+1;endendprecision=count/10000本实验另外又将实验数据进行归一化处理,按照上述实验过程进行相同的实验,现将实验结果整理如表3-1所示:表3-1决策树实验结果准确率计算时间(s)无归一化处理0.8352110.68归一化处理0.8353108.25通过观察发现,归一化处理对决策树的分类效果影响不大。在Step4中画出的测试集的预测类标签与实际类标签的对比图如图4-4所示其中,两种标记为重叠的部分即为预测失误的数据。图3-4决策树预测类别与实际类别的对比3.5SVM分类实验MatlabR2012a自带的SVM

35、工具箱只能对数据进行二分类,实验结果并不理想,因此需要预先加载libSVM工具箱,对SVM的实验性能进行验证。Stepl:导入实验数据集load(TestItem.mat);load(TestLable.mat);load(TrainItem.mat);load(TrainLable.mat);Step2:对训练数据集及测试数据集进行归一化,将数据映射到0,1区间,这里使用的方法是将每一项数据除以最大值255,也可以使用Matlab自带的归一化函数mapminmax(),效果一样。TrainItem=TrainItem/255;TestItem=TestItem/255;Step3:利用训练集

36、及其类标签建立分类模型,并输出分类模型的相关参数。%训练模型model=svmtrain(trainlabel,traindata);%输出模型参数modelParameters=model.ParametersLabel=model.Labelnr_class=model.nr_classtotalSV=model.totalSVnSV=model.nSVStep4:使用训练好的模型对测试集进行分类,并得到SVM的准确率。PredictLable,Acc,Toss=svmpredict(testlabel,testdata,model);TestAccuracy=Acc(1);实验开始阶段并

37、未对训练数据集和测试数据集进行归一化处理,使用训练好的SVM模型对测试数据集进行分类得到的准确率为TestAccuracy=11.35%。这个结果与预期的结果相差甚远,与查阅的相关资料上提到的SVM的准确率也有较大的出入。仔细检查了各项相关输出之后发现,预测类标签的输出PredictLable表中的数据全部为1,即将测试数据集的每一个实例的类别均预测为1,恰好是10%的准确率。因此猜想可能是未对数据集进行归一化处理,导致各个数据之间文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.的差距较大,影响了模型的准确性。对数据进行归一化处理后,随机抽取不同数目的训练集数据对模型进行训练实验

38、结果如表3-2所示:表3-2SVM实验结果训练数据集数目100002000030000400005000060000准确率92.22%93.25%93.74%94.03%94.32%94.53%计算时间(S)175.05458.22810.401325.241869.792470.15实验结果表明,随着使用的训练数据集样本数目的增多,SVM训练模型的准确率逐渐升高,对测试数据的预测效果越好,没有出现过拟合现象。在时间开销上,其增长速率要高于准确率的增长速度,但是在可接受的范围内。3.6人工神经网络分类实验Stepl:导入实验数据集。因为神经网络模型对数据进行处理时是以一列为一个数据实例的。lo

39、ad(TestItem.mat);load(TestLable.mat);load(TrainItem.mat);load(TrainLable.mat);Step2:在命令行窗口输入nntool,打开神经网络工具箱的操作界面。图3-5神经网络界面Step3:点击Import,将输入数据和输出数据导入工作空间。图3-6导入数据Step4:点击New按钮,创建一个新的神经网络,并设置它的名称、类型、输入输出及隐层神经元的个数等参数。确认无误后点击Create按钮,神经网络创建成功。创建好的神经网络抽象模型如下图所示:图3-7神经网络模型Step5:导入训练数据集及训练数据标签,点击Train按钮

40、使用训练样本对神经网络模型进行训练,训练过程的相关参数如下图:图3-8模型参数Step6:模型训练完成之后,点击Simulate按钮对测试数据集进行分类,将分类结果和实验误差输出。实验过程中,将数据集的类标签用两种形式表示,例如类标签3有两种表示形式,第一种为10位表示t=0001000000;第二种为1位表示t=3,两种表示形势下分别进行实验,结果有很大的不同,现将实验结果表示如下。类标签表示为10位Performance神经网络模型训练过程中将训练数据集分为三部分:训练数据集Train,验证数据集Validation,测试数据集Test。为了防止过拟合现象的发生,一般将Validation

41、数据集分类效果最好时训练好的模型进行输出,如图4-9所示,在第153次迭代时,神经网络模型的效果达到最好。图3-9性能TrainingState图3-10显示了神经网络模型训练过程的相关状态,在第153次迭代时,神文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.经网络梯度为0.0010172,交叉验证的次数为6次。该数据表示在神经网络利用训练数据集进行训练的过程中,验证数据集的误差曲线连续6次迭代不再下降。如果随着网络的训练,验证数据集的误差已经不再减小,甚至增大,那么就没有必要再去训练网络了,因为继续训练下去的话,再利用测试测试集对模型进行测试的话,测试数据集的误差将同样不会有

42、所改善,甚至会出现过度拟合的现象。图3-10训练状态Regression图3-11回归曲线PrecisionPrecision=0.9969(2)类标签表示为1位Performance图3-12显示,当使用一位数据表示类标签是,在第257次迭代神经网络模型的效果达到最好。图3-12性能TrainingState图3-13显示了神经网络模型训练过程的相关状态,在第263次迭代时,神经网络梯度为1.9263,交叉验证的次数为6次。图3-13训练状态Regression图3-14回归曲线PrecisionPrecision=0.60244结论此次实验利用Matlab工具箱对三种分类算法:决策树算法、

43、SVM算法和神经网络算法进行实现,通过对MNIST数据集进行分类,并且使用其真实数据标签与预测标签进行比较,能够得到各个分类算法的准确率。通过比较发现,三种分类算法在算法的执行速度以及分类的准确率方面表现出了显著地差异。4.1三种分类算法的比较决策树算法、SVM算法以及神经网络算法在MNIST数据集上的执行速度以及分类的准确率如表4-1所示,表中所列数据为每个算法最佳参数下十次重复实验数据的平均值。表4-1三种分类算法的性能比较指标决策树算法SVM算法神经网络算法准确率83.53%94.53%99.69%执行时间(s)108.252470.15512通过分析表4-1可以得出以下结论:(1)在分

44、类的准确率方面,神经网络的准确率最高,SVM算法次之,决策树算法的准确率最低。(2)在算法的执行速度方面,决策树算法的的运行速度最快,神将网络算法的运行速度较慢,SVM算法的运行速度最慢。(3)对MNIST数据集的分类而言,综合考虑应该选择神经网络算法,因为该算法分类的准确率几乎达到100%,而执行速度相对来说不是最慢的,在可接受的范围内。4.2决策树算法的分析通过分析表4-2所示的决策树的实验结果可知,决策树分类算法的速度之快是其最显著的特点。另外,虽然MNIST数据集中的数值分布较为分散,数值之间的差异较大,但是这对决策树算法的准确率并没有影响,因此可以看出,决策树算法对于实验数据的分布均匀与否并不敏感。表4-2决策树算法的实验结果准确率计算时间(s)无归一化处理0.8352110.68归一化处理0.8353108.254.3SVM算法分析在对SVM算法进行实验时,对其进行了两方面实验:一方面探究了数据的归一化对算法准确率的影响。另一方面则探究了训练数据集的大小对分类准确率的影响。实验结果表明:(1)未对数据进行归一化时,算法的准确率为11.35%,将全部数据的类别预测为1;对数据进行归一化之后,算法的准确率达到94.53%。因此,可以得出结论:SVM算法对于分布不均的数据集是较敏感的。(2)随着训练数据集样本数目的增加,算法的准确率越来越大

温馨提示

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

评论

0/150

提交评论