李 想
(上海對外經貿大學,上海201620)
手寫數字識別(Handwritten Numeral Recognition)是光學字符識別技術(Optical Character Recognition,OCR)的一個分支,也是常見的圖像識別任務,其研究的目的是利用電子計算機自動辨認人工手寫在紙張上的阿拉伯數字。通過計算機進行手寫體數字識別可以節省大量人力和財力,因此國內外對手寫識別單個算法的研究愈漸成熟[1-2]。
然而通過對大量相關資料進行查閱后發現,目前有關手寫識別單個算法的研究文獻較多,但多模型間進行比較的文獻較難找到,因此不能夠運用同一數據不同算法明顯地反映出多個分類算法之間的準確度差異。主成分分析法(Principal Component Regression,PCR)主要利用降維的思想將多指標轉化為少數指標(即主成分),其中每一個主成分均可反映出原始數據的部分信息,且這些信息互不重復[3]。支持向量機(Support Vector Machine,SVM)主要是以監督學習的方式使用分類與回歸分析來處理數據的模型以及相關算法[4]。本文從機器學習的領域出發,旨在通過實驗實現并比較PCR以及SVM兩種手寫數字識別算法模型的內容以及識別準確率,從而挑選出分類更加準確高效的方法。
在PCR仿真實驗中,通過主成分分析結合奇異值分解消去原變量間的共線性,對訓練數據分類進行回歸,使用不同的回歸方程對樣本進行預測,選擇預測值最大的數為預測結果。在SVM仿真實驗中,在數據樣本之間選取最大間隔超平面進行分離,使用Sklearn模塊訓練并提取數據特征,建立模型,對樣本進行不同參數的擬合,分析最終呈現的預測結果準確率。
1)準備數據:數據來源于U.S.Postal Service數據庫。原始圖片由U.S.Postal Service的雇員掃描,有不同的分辨率和朝向,后被轉為16×16像素的灰度圖,并存儲成純文本的格式。
2)數據預處理:對準備好的數據進行歸一化、標準化及降噪等處理,本文所用的數據集節選自Trevor Hastie,Robert Tibshirani和Jerome Friedman編寫的書籍《The Elements of Statistical Learning》。
3)特征提取:原始數據通過映射或變換的方法將數字圖像的特征從高維映射到低維,從而得到在特征空間中最能反映分類本質的特征。
4)奇異值分解:奇異值分解是將矩陣歸約成其組成成分的矩陣分解方法,可適用于任意矩陣,使計算更簡單。
為進一步進行仿真實驗,第66頁表1和表2對模型中的符號進行解釋說明。

表1 模型一的符號解釋說明

表2 模型二的符號解釋說明
思路:基于訓練數據進行分類得到不同結果的10種樣本,通過對每組的多個自變量進行降維、將預測變量個數化為少數幾個主成分后,得到10組因變量和自變量的回歸方程,用它預測測試數據的因變量。每個測試數據可以得到10個結果,選取最大的預測因變量,則可以預測該圖的真實值。
1)模型假設。假設樣本觀測值數量n大于等于自變量數量p,各自變量之間存在高度相關性。
2)模型建立。假設有n張手寫數字相片,且每張相片的分辨率為a×a,設p=a×a。每個分辨率可視作一個自變量,每張相片可視作一個樣本,則現有的n張手寫數字相片的信息可儲存在下列n×p矩陣中,其中,xij表示第i個樣本的第j個自變量[5]。

由于在矩陣X中n≥p,故對矩陣X進行奇異值分解(Singular Value Decomposition,SVD),分解后的矩陣為

式中:U和V分別為大小為n×n與p×p的正交矩陣,矩陣D滿足

設矩陣U的前k列為Uk,矩陣V的前k列為Vk,矩陣D的前k個對角元素的對角陣為Dk,則有

由式(4)兩邊同時乘矩陣Γ可得

設矩陣Γ=Vk,可知

以XkΓ為自變量,對k個主成分進行線性回歸,即可得到主成分的回歸方程式,對其求解后即可得


圖1 模型擬合度損失大小
3)模型求解與仿真結果分析。根據訓練數據可得n=1 707,p=16×16,根據主成分得分的計算、推導,通過R語言對k的取值進行遍歷,進一步得到不同k值下模型擬合度的損失大小,見圖1。
由圖1可得,模型擬合度會隨著主成分個數的增加而增加,但是增加的速度會隨之減小。在本次問題中,選取主成分個數k為15,20,30分別進行求解。
把訓練數據分成R={0,1,2,3,4,5,6,7,8,9},對每種Ri進行主成分回歸,得到10個回歸方程。對每個樣本,分別帶入10個回歸方程,得到一組預測結果為P={P0,P1,P2,P3,P4,P5,P6,P7,P8,P9}。
通過比較每個樣本的P值得出樣本的最大P值,若最大P值為Pi,則預測該樣本為i。
根據運行結果可得,當主成分個數為15時,預測準確度為77.78%;當主成分個數為20時,預測準確度為81.07%;當主成分個數為30時,預測準確度為83.10%;之后隨著主成分個數的增加,預測準確率也不會大幅度提升。分析可得,主成分分析很難精確地描述、分類、預測復雜的非線性的手寫體數字特征。
思路:當存在一組數據集時,分類的途徑是找到一條直線將樣本的不同類別分開,由圖2可以看出,b和c決策邊界雖分開樣本類別,但由于與某種類別的樣本距離過近而分類效果較差。為保證良好的分類效果,決策邊界需要與樣本點距離保持最遠,如a邊界。

圖2 不同決策邊界分割效果對比圖
1)模型假設。假設數據集可分。
2)模型建立。給定一個訓練集T={[x1,y1],[x2,y2],…,[xm,ym]}。
輸入空間中的每一個點xi由n個屬性特征組成。yi∈{-1,1},i=1,2,…,m表示數據的類別屬性,對數據進行分類即尋找Rn上的一個函數g(x),使用分類函數推斷任意一個模式相對應的y值。
?ω∈Rn,b∈R使得空間內的決策邊界可用·+b=0表示,+b=0為決策邊界上所有的點[6]。
需要存在兩條與最佳決策邊界平行的線平均存在于最佳決策邊界的兩邊保證最寬間距,距離最佳決策邊界最近的點落在這兩條平行線上,見圖3。

圖3 模型決策邊界圖示
由于只是平行上下的移動,且兩條線與最佳決策邊界等距,相當于在決策邊界的表達式中加減同樣的截距,假定截距為1,新的判定條件為

訓練集中的點存在真實屬性y,y的條件為

簡化上式判定條件可得

在此判定條件的基礎上,在上下兩條平行線上分別取訓練集中的一點xi,計算分類間隔。
點到線的距離公式為

通過拉格朗日函數進行對偶問題的求解,引入新的系數作為拉格朗日乘子,把問題轉化為對單一因子對偶變量的求解。引入新的系數為

求最小值的問題可以轉化成求參數α,使之滿足以下函數方程組

由以上對參數α的定義可知,只有當yi(ωT·xi+b)=1時,α才可以取到非零的值,且ω才可以非零,由此得知ω的取值只依賴于邊界兩條平行線上的向量,所以邊界上的向量被稱為支持向量。
訓練集可能會出現非線性的情況,需要將訓練集的輸入空間變換成高位的希爾伯特空間,并引用核函數。轉化后的高維空間中的訓練集為

為了避免在高維空間中進行復雜的運算,采用的核函數K需要滿足

根據采用的手寫識別數據訓練集的特征數,引入高斯函數作為問題的核函數。

求解α的最優解并且構造分類超平面即可得到分類函數[7]為

利用SVM算法分析訓練集對分類函數進行求解后即可代入測試集進行結果的預測與分析。
3)模型求解與仿真結果分析。由于SVM的算法過于復雜,且現有程序中的SVM方法較為成熟,使用Python中的Sklearn包進行求解。將訓練數據集中的每一個數字灰度值轉換成256×1的一維數組,代入SVM模型,改變模型中的參數值:懲罰參數C設為100,30和1,核函數RBF的系數γ設為0.01,0.001,分別對模型進行訓練,并使用測試集衡量不同參數訓練后的SVM分類模型準確率,并生成準確率的混淆矩陣。
根據運行結果可得:
C=100,γ=0.01與C=30,γ=0.01的準確度相同,均為93.37%;
C=30,γ=0.001的準確度為92.07%;
C=1,γ=0.01的準確度為90.08%。
基于PCR實現手寫數字識別主要使用R語言進行編程,基于SVM實現手寫數字識別,考慮到算法復雜度,主要通過Python實現。基于PCR和SVM得出對每個數字的預測結果見表3。由表3和圖4可得,對數字1的預測與分類,PCR優于SVM;對數字3,6和7的預測,兩種方法預測準確率大體一致;對其他數字的預測,SVM優于PCR。綜合以上實驗結果,在該問題的數據集中,SVM的識別率要優于PCR。

表3 兩種方法對每個數字的預測結果

圖4 基于PCR與SVM的預測效果比較圖
總體而言,可以得出在實現手寫數字識別中,雖然兩者仍會出現較少的分類錯誤,但最終效果上基于SVM的方法預測和分類效果優于PCR。
從以上結果可以得出:PCR很難精確地描述、分類以及預測復雜的非線性的手寫體數字特征,而SVM在本次問題的解決中表現得較優越。基于此,可以聯想到主成分分析非線性擴展方法——核主成分分析。雖然這二者的主要目的都是降維而不是分類,但是在實驗中也可用于分類。核主成分分析即是在主成分分析的基礎上利用一個非線性映射將原始特征空間中的數據映射到高維特征空間中,然后在高維特征空間中進行主成分分析[8]。
在此次的兩類仿真實驗中,SVM的核函數采用高斯核函數,手寫數字識別正確率為90%左右,高于PCR手寫數字識別的正確率。對于需要高精度的領域來說,可以使用其他核函數進行進一步的改善和提升,而如何選擇核函數需要進一步研究。