




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上基于MATLAB的手寫體數(shù)字識別算法的實現(xiàn)與分析摘 要手寫體數(shù)字識別是利用計算機自動辨認手寫體阿拉伯數(shù)字的一種技術(shù),是光學(xué)字符識別技術(shù)的一個分支。手寫體數(shù)字識別在郵政編碼、財務(wù)報表、銀行票據(jù)、各種憑證以及調(diào)查表格的識別等等方面有著重要應(yīng)用,由于數(shù)字識別經(jīng)常涉及財會、金融領(lǐng)域,其嚴格性更是不言而喻的。所以,對識別系統(tǒng)的可靠性和識別率要求很高,構(gòu)成了手寫體數(shù)字識別面臨的主要困難,大批量數(shù)據(jù)處理對系統(tǒng)速度又有相當高的要求。本文基于MNIST數(shù)據(jù)集,通過Matlab平臺,對決策樹算法、SVM算法和人工神經(jīng)網(wǎng)絡(luò)(ANN)算法進行實現(xiàn),并對分類算法的準確率進行評估。實驗結(jié)果表明,
2、人工神經(jīng)網(wǎng)絡(luò)(ANN)的準確率最高,為99.69%,SVM算法次之,準確率為94.53%,決策樹算法的準確率為83.53%。三種分類算法中,決策樹算法的速度最快,SVM算法的速度最慢。另外,針對每一種分類算法在MNIST數(shù)據(jù)集上的實驗結(jié)果,本文還得出以下結(jié)論:第一,MNIST數(shù)據(jù)集的歸一化與否對決策樹的分類效果幾乎沒有影響;對SVM的分類效果影響較大,未歸一化時的準確率為11.35%,歸一化之后的準確率為94.53%;對人工神經(jīng)網(wǎng)絡(luò)的分類效果影響較小,未歸一化時的準確率為82.11%,歸一化之后的準確率為99.69%。這說明三種分類算法對數(shù)據(jù)的不平衡分布的敏感程度各不相同。第二,對于SVM分類
3、算法,當訓(xùn)練數(shù)據(jù)集的樣本容量小于60000(MNIST訓(xùn)練數(shù)據(jù)集的最大樣本容量)時,該算法對測試數(shù)據(jù)集分類預(yù)測的準確率隨樣本容量的增大而增大。第三,針對人工神經(jīng)網(wǎng)絡(luò),數(shù)據(jù)類標簽的表示形式對分類預(yù)測的準確率的影響較大。使用10位數(shù)據(jù)表示類標簽是的準確率為99.69%,遠遠高于使用1位數(shù)據(jù)表示類標簽時的準確率60.24%。關(guān) 鍵 詞:手寫體數(shù)字識別;決策樹算法;SVM算法;人工神經(jīng)網(wǎng)絡(luò)算法 ABSTRACTHandwritten numeral recognition is a technique that uses computer to recognize handwritten Arabic
4、 numerals automatically and is a branch of optical character recognition technology. Handwritten numeral recognition has important applications in postal codes, financial statements, bank notes, various kinds of vouchers and the identification of survey forms. Since digital identification often invo
5、lves accounting and finance, its strictness is self-evident. The demand for identification system of the reliability and recognition rate is very high, constituting a handwritten digital identification facing major difficulties, high-volume data processing on the system speed and a very high demand.
6、In this paper, we use Matlab to implement decision tree algorithm, SVM algorithm and artificial neural network (ANN) algorithm based on MNIST dataset, and the accuracy of classification algorithms is calculated by using the real data tag. Experimental results show that the artificial neural network
7、(ANN) the highest accuracy rate for 99.69%, SVM algorithm, followed by 94.53 percent accuracy rate, decision tree algorithm accuracy is 83.53%. In terms of speed, decision tree algorithm is the fastest, SVM algorithm is the slowest. In addition, for each classification algorithm we also concluded th
8、at:Firstly, whether or not the MNIST dataset is normalized has no effect in the classification tree; While it has a great impact on SVM classification. When it is not normalized the accuracy is 11.35%, and after normalized the accuracy is 94.53% ; The artificial neural network classification is less
9、 affected, and when it is not normalized the accuracy is 82.11% while after normalized the accuracy is 99.69%. This shows the sensitivity of the three classification algorithms to unbalanced distribution of data.Secondly, for the SVM classification algorithm, when the sample size is less than 60,000
10、(maximum size of MNIST test data set), the accuracy increases with the increasing of sample size.Thirdly, for the artificial neural network, the impact of class label representation is large on the classification accuracy. When using 10 bits to represent class labels, the accuracy is 99.69%, far hig
11、her than the accuracy of 60.24% when using 1 bit to represent data labels.KEY WORDS: Handwritten numeral recognition; Decision tree algorithm; SVM algorithm; Artificial neural network algorithm目 錄專心-專注-專業(yè)1. 引言1.1 手寫數(shù)字識別手寫數(shù)字識別是模式識別領(lǐng)域的一個重要分支,它研究的核心問題是:如何利用計算機自動識別人手寫在紙張上的阿拉伯數(shù)字。手寫體數(shù)字識別問題,簡而言之就是識別出10個阿拉伯
12、數(shù)字,由于數(shù)字的清晰程度或者是個人的寫字習(xí)慣抑或是其他,往往手寫體數(shù)字的性狀、大小、深淺、位置會不大一樣。手寫體識別一般包括3個階段:預(yù)處理、特征提取、分類識別。手寫數(shù)字識別前景廣闊,廣泛應(yīng)用于表格中數(shù)字的識別、汽車牌照的數(shù)字自動識別和成績單的識別等。實現(xiàn)數(shù)字的自動識別能夠給人們的工作和生活帶來很大的方便。對于該領(lǐng)域的研究具有重要的理論價值:一方面,阿拉伯數(shù)字是唯一的被世界各國通用的符號,對手寫數(shù)字識別的研究與文化背景無關(guān),這樣就為各國、各地區(qū)的研究工作者提供了一個自由平等的舞臺,大家可以在這一領(lǐng)域施展才智,各抒己見。另一方面,由于數(shù)字識別的類別數(shù)較少(只有0到9十個類別),有助于做深入分析及
13、驗證一些新的理論。這方面最明顯的例子就是人工神經(jīng)網(wǎng)絡(luò),相當一部分的人工神經(jīng)網(wǎng)絡(luò)模型都以手寫數(shù)字識別作為具體的實驗平臺,驗證理論的有效性,評價各種方法的優(yōu)缺點。數(shù)字識別的算法較多,當前運用較好的主流算法以統(tǒng)計、聚類和分類算法為主,如Bagging算法、支持向量機算法、神經(jīng)網(wǎng)絡(luò)等。手寫數(shù)字識別難度在于:一、數(shù)字相似性大,但字形相差不大;二、數(shù)字雖然只有10種,但筆劃簡單,同一個數(shù)字寫法差別大;三、手寫數(shù)字存在斷筆和毛刺,對識別造成影響。本文選擇分類算法中的決策樹算法、支持向量機算法、神經(jīng)網(wǎng)絡(luò)對MNIST數(shù)據(jù)集進行數(shù)字識別,并對分類效果進行比較分析。2. 分類算法分類器識別是實現(xiàn)手寫體數(shù)字識別的最終
14、關(guān)鍵,基于距離的分類器和神經(jīng)網(wǎng)絡(luò)分類器這兩大類是目前現(xiàn)有的最主要的分類器。分類是數(shù)據(jù)挖掘的重要分支,可用于提取、描述重要數(shù)據(jù)的模型或預(yù)測未來的數(shù)據(jù)趨勢1。2.1 決策樹算法決策樹也稱為判定樹,是一種有監(jiān)督的學(xué)習(xí)方法。決策樹代表著決策樹的樹形結(jié)構(gòu),可以根據(jù)訓(xùn)練集數(shù)據(jù)構(gòu)造出決策樹。如果該樹不能對所有對象給出正確的分類,就選擇一些例外加入到訓(xùn)練集數(shù)據(jù)中。重復(fù)該過程,直到形成正確的決策集。決策樹方法首先對數(shù)據(jù)進行處理,利用歸納算法生成可讀的規(guī)則和決策樹,然后使用決策樹對新數(shù)據(jù)進行分析,本質(zhì)上是通過一系列規(guī)則對數(shù)據(jù)進行分類的過程。決策樹的典型算法有ID3,C4.5,等。根據(jù)訓(xùn)練集構(gòu)建決策樹,決策樹中的結(jié)
15、點逐層展開。每展開一層子結(jié)點,并將其設(shè)為葉結(jié)點,就得到一棵決策樹,然后采用測試集對所得決策樹的分類性能進行統(tǒng)計。重復(fù)上述過程,可以得到?jīng)Q策樹在測試集上的學(xué)習(xí)曲線。根據(jù)學(xué)習(xí)曲線,選擇在測試集上性能最佳的決策樹為最終的決策樹。2.1.1 ID3算法JRoss Quinlan在1986年將信息論引入到?jīng)Q策樹算法中,提出了ID32算法,算法思想如下:設(shè)樣本集E共有C類訓(xùn)練集,每類樣本數(shù)為pi,且i=1,2,3,C。如果以屬性A作為測試屬性,屬性A的v個不同的值為v1,v2,vv,可以用屬性A將E劃分成v個子集E1,E2,Ev,假定Ei中含有第j類樣本的個數(shù)為pij,j=1,2,3,C,那么子集Ei的熵
16、為: (1)屬性A的信息熵為: (2)將Infor_Entropy(Ei)代入公式(2)后可得: (3)一棵決策樹對一實例做出正確類別判斷所需的信息為: (4)信息增益:Infor_Gain(A)=InforE-Infor_Entropy(A)ID3算法存在著屬性偏向,對噪聲敏感等問題。2.1.2 C4.5算法在ID3算法的基礎(chǔ)上,Quinlan在1993年提出了一種改進的算法,即C4.5算法3,信息增益率計算如下: (5) (6)C4.5算法克服了ID3算屬性偏向的問題,增加了對連續(xù)屬性的處理,通過剪枝,在一定程度上避免了“過度擬合”的現(xiàn)象。但是該算法將連續(xù)屬性離散化,需要遍歷該屬性的所有值
17、,降低了效率;要求訓(xùn)練樣本駐留在內(nèi)存,不適合處理大規(guī)模數(shù)據(jù)集。2.1.3 CART算法CART算法可以處理無序的數(shù)據(jù),采用基尼系數(shù)作為測試屬性的選擇標準,基尼系數(shù)的計算如下: (7)其中,pi是類別j在T中出現(xiàn)的概率。CART算法生成的決策樹精度較高,但是當其生成的決策樹復(fù)雜度超過一定程度后,隨著復(fù)雜度的提高,分類精確度會降低。因此,用該算法建立的決策樹不宜太復(fù)雜4。2.1.4 SLIQ算法決策樹分類算法研究一直朝著處理大數(shù)據(jù)集的方向進行,但大部分方法在減少了運算時間的同時也降低了算法的精度。SLIQ的分類精度與其他決策樹算法不相上下,但其執(zhí)行的速度比其他決策樹算法快。SLIQ算法對訓(xùn)練樣本集
18、的樣本數(shù)量以及屬性的數(shù)量沒有限制。SLIQ算法能夠處理大規(guī)模的訓(xùn)練樣本集,具有較好的伸縮性;執(zhí)行速度快而且能夠生成較小的二叉決策樹;SLIQ算法允許多個處理器同時處理屬性表,從而實現(xiàn)并行性。但是SLIQ算法不能擺脫主存容量的限制。2.1.5 SPRINT算法SLIQ算法要求類表駐留內(nèi)存,當訓(xùn)練集大到類表放不進內(nèi)存時,SLIQ算法就無法執(zhí)行。為此,IBM的研究人員提出SPRINT算法,它處理速度快,不受內(nèi)存的限制。SPRINT算法可以處理超大規(guī)模訓(xùn)練樣本集,數(shù)據(jù)樣本集數(shù)量越大,SPRINT的執(zhí)行效率越高,并且可伸縮性更好。但是,SPRINT算法存在著一些缺陷,在SLIQ的類表可以存進內(nèi)存時,SP
19、RINT算法的執(zhí)行速度比SLIQ算法慢。2.1.6 經(jīng)典決策樹算法的比較基于決策樹的分類算法已經(jīng)有幾十種,各種算法在執(zhí)行速度、可擴展性、輸出結(jié)果的可理解性、分類預(yù)測的準確性方面各有所長。下面就對幾種典型的決策樹算法進行比較,結(jié)果如表2-1所示:表2-1 典型決策樹算法的比較算法測試屬性選擇指標連續(xù)屬性的處理是否需要獨立測試樣本集運行剪枝時間可伸縮性并行性決策樹的結(jié)構(gòu)ID3信息增益離散化是后剪枝差差多叉樹C4.5信息增益率預(yù)排序否后剪枝差差多叉樹CARTGINI系數(shù)預(yù)排序否后剪枝差差二叉樹SLIQGINI系數(shù)預(yù)排序否后剪枝良好良好二叉樹SPRINTGINI系數(shù)預(yù)排序否后剪枝好好二叉樹2.2 支持
20、向量機支持向量機(SVM)方法是通過一個非線性p,把到一個乃至無窮維的特征空間中(Hilbert空間),使得在原來的中非線性可分的問題轉(zhuǎn)化為在特征空間中的線性可分的問題.簡單地說,就是升維和線性化。升維,就是把樣本向高維空間做映射,一般情況下這會增加計算的復(fù)雜性,甚至?xí)穑蚨藗兒苌賳柦?但是作為分類、回歸等問題來說,很可能在低維樣本空間無法線性處理的樣本集,在高維特征空間中卻可以通過一個線性超平面實現(xiàn)線性劃分(或回歸).一般的升維都會帶來計算的復(fù)雜化,SVM方法巧妙地解決了這個難題:應(yīng)用的展開定理,就不需要知道非線性映射的顯式表達式;由于是在高維特征空間中建立線性學(xué)習(xí)機,所以與相比,不但
21、幾乎不增加計算的復(fù)雜性,而且在某種程度上避免了維數(shù)災(zāi)難.這一切要歸功于核函數(shù)的展開和計算理論。選擇不同的,可以生成不同的SVM。SVM的機理是尋找一個滿足分類要求的最優(yōu)分類超平面,使得該超平面在保證分類精度的同時,能夠使超平面兩側(cè)的空白區(qū)域最大化。理論上,支持向量機能夠?qū)崿F(xiàn)對線性可分數(shù)據(jù)的最優(yōu)分類。以兩類數(shù)據(jù)分類為例,給定訓(xùn)練樣本集(xi,yi),i=1, 2,l,xRn,y1,超平面記作(w xi)+b=0,為使分類面對所有樣本正確分類并且具備分類間隔,就要求它滿足如下約束:yi(w xi)+b1,i=1,2,l。圖2-1 支持向量機可以計算出分類間隔為2/|w|,因此構(gòu)造最優(yōu)超平面的問題就
22、轉(zhuǎn)化為在約束式下求: (8)為了解決該個約束最優(yōu)化問題,引入Lagrange函數(shù): (9)式中,ai0為Lagrange乘數(shù)。約束最優(yōu)化問題的解由Lagrange函數(shù)的鞍點決定,并且最優(yōu)化問題的解在鞍點處滿足對w和b的偏導(dǎo)為0,將該QP問題轉(zhuǎn)化為相應(yīng)的對偶問題即: (10)解得最優(yōu)解 (11) 計算最優(yōu)權(quán)值向量w*和最優(yōu)偏置b*,分別為: (12)因此得到最優(yōu)分類超平面(w*x) +b*=0,而最優(yōu)分類函數(shù)為: (13)對于線性不可分情況,SVM的主要思想是將輸人向量映射到一個高維的特征向量空間,并在該特征空間中構(gòu)造最優(yōu)分類面。將x做從輸入空間Rn到特征空間H的變換,得: (14)以特征向量(
23、x)代替輸入向量x,則可以得到最優(yōu)分類函數(shù)為: (15)在上面的對偶問題中,無論是目標函數(shù)還是決策函數(shù)都只涉及到訓(xùn)練樣本之間的內(nèi)積運算,在高維空間避免了復(fù)雜的高維運算而只需要進行內(nèi)積運算。2.3 人工神經(jīng)網(wǎng)絡(luò) 人工神經(jīng)網(wǎng)絡(luò)是指模擬人腦神經(jīng)系統(tǒng)的結(jié)構(gòu)和功能,運用大量的處理部件,由人工方式建立起來的網(wǎng)絡(luò)系統(tǒng)。該網(wǎng)絡(luò)具有大規(guī)模并行協(xié)同處理能力和較強的容錯能力和聯(lián)想能力,同時是一個具有較強學(xué)習(xí)能力的大規(guī)模自組織、自適應(yīng)性的非線性動力系統(tǒng)。2.3.1人工神經(jīng)網(wǎng)絡(luò)的原理神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)是基本處理單元及其互連方法決定的。如圖所示,單個神經(jīng)元單元由多個輸入xi,i=1,2,.,n和一個輸出y組成。圖3-2 神經(jīng)
24、元 (16)式中,q為神經(jīng)元單元的偏置(閾值),wi為連接權(quán)系數(shù),n為輸入信號數(shù)目, y為神經(jīng)元輸出,f為輸出變換函數(shù),稱為激活函數(shù)。2.3.2反向傳播網(wǎng)絡(luò)(BP)BP網(wǎng)絡(luò)是一類典型的前饋網(wǎng)絡(luò)。其它前饋網(wǎng)絡(luò)有感知器(Perception)、自適應(yīng)線性網(wǎng)絡(luò)和交替投影網(wǎng)絡(luò)等。前饋網(wǎng)絡(luò)是一種具有很強學(xué)習(xí)能力的系統(tǒng),結(jié)構(gòu)比較簡單,且易于編程。前饋網(wǎng)絡(luò)通過簡單非線性單元的復(fù)合映射而獲得較強的非線性處理能力,實現(xiàn)靜態(tài)非線性映射。BP網(wǎng)絡(luò)主要特點是能夠?qū)崿F(xiàn)從n維到m維的非線性映射,它還可以采用梯度下降法實現(xiàn)快速收斂。模型如下圖所示:圖3-3 反向傳播網(wǎng)絡(luò)反向傳播算法的具體流程如下:(1)對于給定的樣本集,初
25、始化網(wǎng)絡(luò)結(jié)構(gòu)。初始化權(quán)系數(shù),學(xué)習(xí)率,閾值。(2)根據(jù)樣本集D更新權(quán)系數(shù): (17) (18) (3)計算,如果結(jié)束訓(xùn)練,并認為此時的為最優(yōu)。否則轉(zhuǎn)第2步繼續(xù)進行循環(huán)。對于反向傳播模型的初始化如下:輸入層:單元i的輸入:xi單元數(shù)量:d單元i的輸出:xj單元i的激活函數(shù):線性函數(shù)隱 層:單元j的凈輸入:netj單元數(shù)量:nH單元j的輸出:yj 單元j的激活函數(shù):非線性函數(shù)輸出層:單元k的凈輸入:netk單元數(shù)量:c 單元k的輸出:zk 單元k的激活函數(shù):非線性函數(shù)(1)學(xué)習(xí)速率學(xué)習(xí)速率直接影響權(quán)系數(shù)調(diào)整時的步長。學(xué)習(xí)速率過小,導(dǎo)致算法收斂速度緩慢。學(xué)習(xí)速率過大,導(dǎo)致算法不收斂。學(xué)習(xí)速率的典型取值
26、。另外學(xué)習(xí)速率可變。誤差函數(shù)的局部極小值調(diào)整權(quán)系數(shù)的目標是使誤差函數(shù)取得最小值。但是,采用梯度下降法(Gradient Descent Procedure)不能保證獲得最小值,而只能保證得到一個極小值。如果訓(xùn)練過程無法使誤差函數(shù)降低到預(yù)期的程度,一種常用的方法是:再一次對權(quán)系數(shù)進行隨機初始化,并重新訓(xùn)練網(wǎng)絡(luò)。(2)學(xué)習(xí)曲線樣本集的劃分:一般情況下,可把已知的樣本集劃分為三個子集,即訓(xùn)練集、確認集、測試集。訓(xùn)練集:用來調(diào)整權(quán)系數(shù),使誤差函數(shù)盡可能變小。確認集:用來初步驗證神經(jīng)網(wǎng)絡(luò)對未來新樣本的分類能力,并據(jù)此確定最佳的權(quán)系數(shù)。神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程需要采用訓(xùn)練集及確認集共同完成。測試集:在訓(xùn)練過程最
27、終結(jié)束后,再采用測試集對網(wǎng)絡(luò)的分類性能進行最后測試,用以評估神經(jīng)網(wǎng)絡(luò)在實際應(yīng)用中的實際性能。2.3.3 Hopfield網(wǎng)絡(luò)Hopfield網(wǎng)絡(luò)是一種動態(tài)反饋系統(tǒng),可以用一個完備的無向圖表示,它比前饋網(wǎng)絡(luò)具有更強的計算能力。Hopfield網(wǎng)絡(luò)一般只有一個神經(jīng)元層次,每個神經(jīng)元的輸出都與其它神經(jīng)元的輸入相連,是一種單層全反饋網(wǎng)絡(luò)。如圖3-4所示。圖3-4 Hopfield網(wǎng)絡(luò)Hopfield網(wǎng)絡(luò)中神經(jīng)元之間的權(quán)值一般是對稱的。但每個神經(jīng)元都沒有到自身的聯(lián)接。神經(jīng)元i和神經(jīng)元j之間相互連接的權(quán)值相等,即wij=wji。因此此時,網(wǎng)絡(luò)一定能夠收斂到一個穩(wěn)定值。否則,則網(wǎng)絡(luò)可能會不穩(wěn)定,無法收斂。離
28、散Hopfield網(wǎng)絡(luò)每個單元均有一個狀態(tài)值,它取兩個可能值之一。設(shè)在某一個時刻t,神經(jīng)元i的狀態(tài)為Ui(t),則在t+1時刻的狀態(tài)為: (19)其中,wij為神經(jīng)元i何j之間的連接權(quán)值,qi為第i個神經(jīng)元的閾值。Hopfield網(wǎng)絡(luò)算法的流程如下:(1)設(shè)置互聯(lián)權(quán)值 (20)式中,xis為S類采樣的第i個分量,可為+1或-1;采樣類別數(shù)為m,節(jié)點數(shù)為n。(2)對未知類別的采樣初始化 yi(0)=xi式中,yi(t)為節(jié)點i在時刻t的輸出;當t=0時,yi(0)就是節(jié)點i的初始值,xi為輸入采樣的第i個分量,也可為+1或-1。(3)迭代運算 (21)(4)重復(fù)迭代直至每個輸出單元不變?yōu)橹梗碪
29、j(t+1)=Uj(t)3 實驗過程與結(jié)果分析3.1 實驗環(huán)境Windows 10專業(yè)版,64位,CPU i5-3.3GHz,內(nèi)存8GMatlab R2012a3.2實驗數(shù)據(jù)集MNIST數(shù)據(jù)集是一個被廣泛用于訓(xùn)練各種圖像處理系統(tǒng)的大型手寫數(shù)字數(shù)據(jù)庫,同時,該數(shù)據(jù)庫也常用于人工智能、機器學(xué)習(xí)、數(shù)據(jù)挖掘等領(lǐng)域,對分類、聚類和回歸模型進行訓(xùn)練,并測試模型的準確性。MNIST數(shù)據(jù)集包含60000個訓(xùn)練樣本和10000個測試樣本,每個樣本都是一個28*28像素的BMP圖片。因為每一個樣本都具有類標簽,所以該數(shù)據(jù)集既可以用于有監(jiān)督的學(xué)習(xí)和無監(jiān)督的學(xué)習(xí),并可以使用其類標簽來計算模型的準確度?,F(xiàn)在,已經(jīng)有許多
30、學(xué)者使用該數(shù)據(jù)集進行實驗,并試圖使他們的算法在該數(shù)據(jù)集上表現(xiàn)出更低的錯誤率。到目前為止,KNN算法、支持向量機、神經(jīng)網(wǎng)絡(luò)、決策樹算法已經(jīng)在該數(shù)據(jù)集上真實實驗過,表現(xiàn)出不同的計算性能。據(jù)統(tǒng)計,一種基于DropConnect方法的神經(jīng)網(wǎng)絡(luò)在MNIST數(shù)據(jù)集的實驗上能夠達到0.21%的錯誤率,是至今為止分類效果最好的。3.3數(shù)據(jù)預(yù)處理MNIST數(shù)據(jù)集是NIST的一個子集,一共包含四個文。MNIST數(shù)據(jù)的原始數(shù)據(jù)為Ubyte文件,上述四個文件中,train-images,和train-labels用來訓(xùn)練模型 ,t10k-images和t10k-labels用來評估所訓(xùn)練模型的準確性。如圖所示,Mat
31、lab無法直接處理該數(shù)據(jù)集,因此需要對數(shù)據(jù)集進行預(yù)處理。圖3-1 MNIST數(shù)據(jù)集的原始文件將Ubyte文件轉(zhuǎn)換成.mat文件的主要過程分為兩步,第一步:將Ubyte文件轉(zhuǎn)換為BMP圖片格式。源代碼如下:%讀取訓(xùn)練圖片數(shù)據(jù)文件FileName,PathName = uigetfile(*.*,選擇測試圖片數(shù)據(jù)文件t10k-images.idx3-ubyte);TrainFile = fullfile(PathName,FileName);fid = fopen(TrainFile,r);a = fread(fid,16,uint8);MagicNum = (a(1)*256+a(2)*256+
32、a(3)*256+a(4);ImageNum = (a(5)*256+a(6)*256+a(7)*256+a(8);ImageRow = (a(9)*256+a(10)*256+a(11)*256+a(12);ImageCol = (a(13)*256+a(14)*256+a(15)*256+a(16);%提取Ubyte數(shù)據(jù)集的相關(guān)參數(shù) savedirectory = uigetdir(,選擇測試圖片路徑:);h_w = waitbar(0,請稍候,處理中);for i=1:ImageNum b = fread(fid,ImageRow*ImageCol,uint8); c = reshape
33、(b,ImageRow ImageCol); d = c; e = 255-d; e = uint8(e); savepath = fullfile(savedirectory,TestImage_ num2str(i,%05d) .bmp); imwrite(e,savepath,bmp); waitbar(i/ImageNum);endfclose(fid);close(h_w);第二步:將BMP圖片轉(zhuǎn)換為.mat文件,保存在Matlab的工作空間。預(yù)處理之后的數(shù)據(jù)集格式如下:TrainItem.mat 60000*784TestItem.mat 10000*784TrainLable.m
34、at 60000*1TestLable.mat 10000*1圖3-2 預(yù)處理之后的數(shù)據(jù)集3.4決策樹分類實驗3.4.1實驗過程Step1:導(dǎo)入實驗數(shù)據(jù)集load(TestItem.mat);load(TestLable.mat);load(TrainItem.mat);load(TrainLable.mat);Step2:使用訓(xùn)練數(shù)據(jù)集及其標簽集訓(xùn)練模型,得到?jīng)Q策樹,并輸出,如圖3-3所示Tree=classregtree(TrainItem,TrainLable);圖3-3 決策樹模型Step3:使用訓(xùn)練好的決策樹對測試集進行分類,并得到分類結(jié)果value_table=round(eval
35、(Tree,TestItem);Step4:將分類得到的數(shù)據(jù)類標簽與已知的類標簽進行比較,畫出預(yù)測類標簽與實際類標簽的對比圖,計算得到?jīng)Q策樹的準確率。count=0;for i=1:1:10000 if TestLable(i)=value_table(i) count=count+1; endendprecision=count/100003.4.2實驗結(jié)果本實驗另外又將實驗數(shù)據(jù)進行歸一化處理,按照上述實驗過程進行相同的實驗,現(xiàn)將實驗結(jié)果整理如表3-1所示:表3-1 決策樹實驗結(jié)果準確率計算時間(s)無歸一化處理0.8352110.68歸一化處理0.8353108.25通過觀察發(fā)現(xiàn),歸一化處
36、理對決策樹的分類效果影響不大。在Step4中畫出的測試集的預(yù)測類標簽與實際類標簽的對比圖如圖4-4所示,其中,兩種標記為重疊的部分即為預(yù)測失誤的數(shù)據(jù)。圖3-4 決策樹預(yù)測類別與實際類別的對比3.5 SVM分類實驗3.5.1實驗過程Matlab R2012a自帶的SVM工具箱只能對數(shù)據(jù)進行二分類,實驗結(jié)果并不理想,因此需要預(yù)先加載libSVM工具箱,對SVM的實驗性能進行驗證。Step1:導(dǎo)入實驗數(shù)據(jù)集load(TestItem.mat);load(TestLable.mat);load(TrainItem.mat);load(TrainLable.mat);Step2:對訓(xùn)練數(shù)據(jù)集及測試數(shù)據(jù)集
37、進行歸一化,將數(shù)據(jù)映射到0,1區(qū)間,這里使用的方法是將每一項數(shù)據(jù)除以最大值255,也可以使用Matlab自帶的歸一化函數(shù)mapminmax(),效果一樣。TrainItem=TrainItem/255;TestItem=TestItem/255;Step3:利用訓(xùn)練集及其類標簽建立分類模型,并輸出分類模型的相關(guān)參數(shù)。%訓(xùn)練模型model = svmtrain(trainlabel,traindata);%輸出模型參數(shù)modelParameters = model.ParametersLabel = model.Labelnr_class = model.nr_classtotalSV = mo
38、del.totalSVnSV = model.nSVStep4:使用訓(xùn)練好的模型對測試集進行分類,并得到SVM的準確率。PredictLable,Acc,Toss = svmpredict(testlabel,testdata,model);TestAccuracy=Acc(1);3.5.2實驗結(jié)果實驗開始階段并未對訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集進行歸一化處理,使用訓(xùn)練好的SVM模型對測試數(shù)據(jù)集進行分類得到的準確率為TestAccuracy=11.35%。這個結(jié)果與預(yù)期的結(jié)果相差甚遠,與查閱的相關(guān)資料上提到的SVM的準確率也有較大的出入。仔細檢查了各項相關(guān)輸出之后發(fā)現(xiàn),預(yù)測類標簽的輸出PredictL
39、able表中的數(shù)據(jù)全部為1,即將測試數(shù)據(jù)集的每一個實例的類別均預(yù)測為1,恰好是10%的準確率。因此猜想可能是未對數(shù)據(jù)集進行歸一化處理,導(dǎo)致各個數(shù)據(jù)之間的差距較大,影響了模型的準確性。對數(shù)據(jù)進行歸一化處理后,隨機抽取不同數(shù)目的訓(xùn)練集數(shù)據(jù)對模型進行訓(xùn)練,實驗結(jié)果如表3-2所示:表3-2 SVM實驗結(jié)果訓(xùn)練數(shù)據(jù)集數(shù)目100002000030000400005000060000準確率92.22%93.25%93.74%94.03%94.32%94.53%計算時間(s)175.05458.22810.401325.241869.792470.15實驗結(jié)果表明,隨著使用的訓(xùn)練數(shù)據(jù)集樣本數(shù)目的增多,SVM訓(xùn)
40、練模型的準確率逐漸升高,對測試數(shù)據(jù)的預(yù)測效果越好,沒有出現(xiàn)過擬合現(xiàn)象。在時間開銷上,其增長速率要高于準確率的增長速度,但是在可接受的范圍內(nèi)。3.6人工神經(jīng)網(wǎng)絡(luò)分類實驗3.6.1實驗過程Step1:導(dǎo)入實驗數(shù)據(jù)集。因為神經(jīng)網(wǎng)絡(luò)模型對數(shù)據(jù)進行處理時是以一列為一個數(shù)據(jù)實例的。load(TestItem.mat);load(TestLable.mat);load(TrainItem.mat);load(TrainLable.mat);Step2:在命令行窗口輸入nntool,打開神經(jīng)網(wǎng)絡(luò)工具箱的操作界面。圖3-5 神經(jīng)網(wǎng)絡(luò)界面Step3:點擊Import,將輸入數(shù)據(jù)和輸出數(shù)據(jù)導(dǎo)入工作空間。圖3-6 導(dǎo)
41、入數(shù)據(jù)Step4:點擊New按鈕,創(chuàng)建一個新的神經(jīng)網(wǎng)絡(luò),并設(shè)置它的名稱、類型、輸入輸出及隱層神經(jīng)元的個數(shù)等參數(shù)。確認無誤后點擊Create按鈕,神經(jīng)網(wǎng)絡(luò)創(chuàng)建成功。創(chuàng)建好的神經(jīng)網(wǎng)絡(luò)抽象模型如下圖所示:圖3-7 神經(jīng)網(wǎng)絡(luò)模型Step5:導(dǎo)入訓(xùn)練數(shù)據(jù)集及訓(xùn)練數(shù)據(jù)標簽,點擊Train按鈕使用訓(xùn)練樣本對神經(jīng)網(wǎng)絡(luò)模型進行訓(xùn)練,訓(xùn)練過程的相關(guān)參數(shù)如下圖:圖3-8 模型參數(shù)Step6:模型訓(xùn)練完成之后,點擊Simulate按鈕對測試數(shù)據(jù)集進行分類,將分類結(jié)果和實驗誤差輸出。3.6.2實驗結(jié)果實驗過程中,將數(shù)據(jù)集的類標簽用兩種形式表示,例如類標簽3有兩種表示形式,第一種為10位表示t=;第二種為1位表示t=3,
42、兩種表示形勢下分別進行實驗,結(jié)果有很大的不同,現(xiàn)將實驗結(jié)果表示如下。(1)類標簽表示為10位a. Performance神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練過程中將訓(xùn)練數(shù)據(jù)集分為三部分:訓(xùn)練數(shù)據(jù)集Train,驗證數(shù)據(jù)集Validation,測試數(shù)據(jù)集Test。為了防止過擬合現(xiàn)象的發(fā)生,一般將Validation數(shù)據(jù)集分類效果最好時訓(xùn)練好的模型進行輸出,如圖4-9所示,在第153次迭代時,神經(jīng)網(wǎng)絡(luò)模型的效果達到最好。圖3-9 性能b. Training State圖3-10顯示了神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練過程的相關(guān)狀態(tài),在第153次迭代時,神經(jīng)網(wǎng)絡(luò)梯度為0.,交叉驗證的次數(shù)為6次。該數(shù)據(jù)表示在神經(jīng)網(wǎng)絡(luò)利用訓(xùn)練數(shù)據(jù)集進行訓(xùn)練的
43、過程中,驗證數(shù)據(jù)集的誤差曲線連續(xù)6次迭代不再下降。如果隨著網(wǎng)絡(luò)的訓(xùn)練,驗證數(shù)據(jù)集的誤差已經(jīng)不再減小,甚至增大,那么就沒有必要再去訓(xùn)練網(wǎng)絡(luò)了,因為繼續(xù)訓(xùn)練下去的話,再利用測試測試集對模型進行測試的話,測試數(shù)據(jù)集的誤差將同樣不會有所改善,甚至?xí)霈F(xiàn)過度擬合的現(xiàn)象。圖3-10 訓(xùn)練狀態(tài)c. Regression圖3-11 回歸曲線d. PrecisionPrecision=0.9969(2)類標簽表示為1位a. Performance圖3-12顯示,當使用一位數(shù)據(jù)表示類標簽是,在第257次迭代神經(jīng)網(wǎng)絡(luò)模型的效果達到最好。圖3-12 性能b. Training State圖3-13顯示了神經(jīng)網(wǎng)絡(luò)模型訓(xùn)
44、練過程的相關(guān)狀態(tài),在第263次迭代時,神經(jīng)網(wǎng)絡(luò)梯度為1.9263,交叉驗證的次數(shù)為6次。圖3-13 訓(xùn)練狀態(tài)c. Regression圖3-14回歸曲線d. PrecisionPrecision=0.60244 結(jié)論此次實驗利用Matlab工具箱對三種分類算法:決策樹算法、SVM算法和神經(jīng)網(wǎng)絡(luò)算法進行實現(xiàn),通過對MNIST數(shù)據(jù)集進行分類,并且使用其真實數(shù)據(jù)標簽與預(yù)測標簽進行比較,能夠得到各個分類算法的準確率。通過比較發(fā)現(xiàn),三種分類算法在算法的執(zhí)行速度以及分類的準確率方面表現(xiàn)出了顯著地差異。4.1 三種分類算法的比較決策樹算法、SVM算法以及神經(jīng)網(wǎng)絡(luò)算法在MNIST數(shù)據(jù)集上的執(zhí)行速度以及分類的準
45、確率如表4-1所示,表中所列數(shù)據(jù)為每個算法最佳參數(shù)下十次重復(fù)實驗數(shù)據(jù)的平均值。表4-1 三種分類算法的性能比較指標決策樹算法SVM算法神經(jīng)網(wǎng)絡(luò)算法準確率83.53%94.53%99.69%執(zhí)行時間(s)108.252470.15512通過分析表4-1可以得出以下結(jié)論:(1)在分類的準確率方面,神經(jīng)網(wǎng)絡(luò)的準確率最高,SVM算法次之,決策樹算法的準確率最低。(2)在算法的執(zhí)行速度方面,決策樹算法的的運行速度最快,神將網(wǎng)絡(luò)算法的運行速度較慢,SVM算法的運行速度最慢。(3)對MNIST數(shù)據(jù)集的分類而言,綜合考慮應(yīng)該選擇神經(jīng)網(wǎng)絡(luò)算法,因為該算法分類的準確率幾乎達到100%,而執(zhí)行速度相對來說不是最慢的
46、,在可接受的范圍內(nèi)。4.2 決策樹算法的分析通過分析表4-2所示的決策樹的實驗結(jié)果可知,決策樹分類算法的速度之快是其最顯著的特點。另外,雖然MNIST數(shù)據(jù)集中的數(shù)值分布較為分散,數(shù)值之間的差異較大,但是這對決策樹算法的準確率并沒有影響,因此可以看出,決策樹算法對于實驗數(shù)據(jù)的分布均勻與否并不敏感。表4-2 決策樹算法的實驗結(jié)果準確率計算時間(s)無歸一化處理0.8352110.68歸一化處理0.8353108.254.3 SVM算法分析在對SVM算法進行實驗時,對其進行了兩方面實驗:一方面探究了數(shù)據(jù)的歸一化對算法準確率的影響。另一方面則探究了訓(xùn)練數(shù)據(jù)集的大小對分類準確率的影響。實驗結(jié)果表明:(1)未對數(shù)據(jù)進行歸一化時,算法的準確率為11.35%,將全部數(shù)據(jù)的類別預(yù)測為1;對數(shù)據(jù)進行歸一化之后,算法的準確率達到94.53%。因此,可以得出結(jié)論:SVM算法對于分布不均的數(shù)據(jù)集是較敏感的。(2)隨著訓(xùn)練數(shù)據(jù)集樣本數(shù)目的增加,算法的準確率越來越大,算法執(zhí)行時間越來越長,如表4-3所示。因此可以得出結(jié)論:使用SVM算法對M
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T-ZHHX 004-2024 粉苞酸腳桿盆花生產(chǎn)技術(shù)規(guī)范
- 二零二五年度員工宿舍入住與退宿手續(xù)協(xié)議
- 2025年度水利工程監(jiān)理工程師合同管理與可持續(xù)發(fā)展
- 二零二五年度商鋪經(jīng)營權(quán)放棄及轉(zhuǎn)讓協(xié)議書
- 二零二五年度酒吧租賃合同書
- 2025年度潤滑油行業(yè)年度銷售排行榜合作合同
- 2025年度機關(guān)單位食堂餐飲培訓(xùn)與咨詢服務(wù)合同
- 二零二五年度夫妻婚內(nèi)財產(chǎn)約定及家庭財務(wù)顧問服務(wù)協(xié)議
- 二零二五年度智慧城市項目實施團隊勞動合同
- 二零二五年度企業(yè)稅收籌劃與稅務(wù)籌劃培訓(xùn)與實施合同
- 《營養(yǎng)均衡膳食指南》課件
- 《數(shù)智化技術(shù)應(yīng)用與創(chuàng)新》課件 第1章 走進數(shù)智化時代
- 2025年浙江省臺州機場管理有限公司招聘筆試參考題庫含答案解析
- 中央2025年公安部部分直屬事業(yè)單位招聘84人筆試歷年參考題庫附帶答案詳解
- 2025年江蘇醫(yī)藥職業(yè)學(xué)院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 2025年常德職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 2024年江西青年職業(yè)學(xué)院高職單招職業(yè)技能測驗歷年參考題庫(頻考版)含答案解析
- 綠色建筑材料在土木工程施工中的應(yīng)用研究
- 上海市2024-2025學(xué)年高一上學(xué)期期末考試數(shù)學(xué)試題(含答案)
- 摩托車維修管理制度模版(3篇)
- 2025年浙江嘉興桐鄉(xiāng)市水務(wù)集團限公司招聘10人高頻重點提升(共500題)附帶答案詳解
評論
0/150
提交評論