鄭宇晨
(四川師范大學 數(shù)學與軟件科學學院,四川 成都 610068)
伴隨著大數(shù)據(jù)時代的來臨,各種社會、生活現(xiàn)象背后的大數(shù)據(jù)“內(nèi)核”逐漸被人們關(guān)注、重視。圖像與語音識別是最為人熟知并受到高度關(guān)注的八個領(lǐng)域之一。文中對圖像識別中較簡單、實用的英文字符識別進行研究。限于PC的運算能力,這里研究樣本容量為20 000,參數(shù)空間為16維(加上1維的響應(yīng)值,是17維)的英文文本數(shù)據(jù)。針對“變體”的26個英文字母,建立模型進行準確識別。事實上,這是個(多)分類問題?!白凅w”包括:多種不同的隨機重塑、扭曲或印刷顏色(黑體或白體)的改變,如圖1示例[1]。
支持向量機是統(tǒng)計學習理論中最具代表性的模型,也是數(shù)據(jù)挖掘、機器學習領(lǐng)域的重要模型之一。文中選擇文本(圖像)識別中的英文字符識別為研究對象,以國外前沿的科研成果為靈感來源,旨在使國內(nèi)相關(guān)領(lǐng)域的研究再前進“一小步”。
圖1 英文字母“變體”示例
無論是支持向量機的建模還是實證研究,國內(nèi)的研究主要集中在部分領(lǐng)域的應(yīng)用實證分析,前人研究文本識別,尤其(英文)字符識別不夠充分。
國外相關(guān)研究中,Corinna Cortes等(1995)[2]建立支持向量網(wǎng)(support vector networks)用于二分類特征識別,通過引入核函數(shù)做高維映射的方式,提供了處理低維空間線性不可分數(shù)據(jù)的“全新思路”;Hamed Pirsiavash等(2008)[3]提出雙線性支持向量機用于可視化數(shù)據(jù)的識別,取得了較好的分類結(jié)果;M.Nazir等(2012)[4]基于離散余弦變換(discrete cosine transform,DCT)、K-最近鄰分類器建立了分類器,用于圖像的性別識別,取得了99.3%的分類準確率;Luo Luo等(2015)[5]提出支持矩陣機(support matrix machine,SMM)模型,捕捉了輸入矩陣(型數(shù)據(jù))行、列指標間的關(guān)系,使支持向量機理論取得突破,并且模型預(yù)測精度高、穩(wěn)健性好且計算效率大大提高。
國內(nèi)研究中,吳一全等(2014)[6]構(gòu)造火焰圖像的特征向量,建立基于Krawtchouk支持向量機(SVM)模型,進行火焰熄滅與否的狀態(tài)識別,實現(xiàn)了95.56%的二分類識別率;薛浩然等(2015)[7]運用SVM適用于解決小樣本、非線性特征的特點,建立多分類模型,進行變壓器故障類型判斷,實現(xiàn)了95%的小樣本識別率。在電子故障檢測與診斷領(lǐng)域,萬鵬等(2012)[8],史麗萍等(2014)[9]也進行了一些實證研究。
支持向量機(support vector machine,SVM)[2]是一類由Vapnik等提出的圖像分類算法。其訓(xùn)練算法的思想基于“結(jié)構(gòu)風險最小化”而非“經(jīng)驗風險最小化”原理,并且為訓(xùn)練多項式、神經(jīng)網(wǎng)絡(luò)和徑向基函數(shù)(RBF)分類器提供了新的方法[10]。SVM已被證明對于許多分類任務(wù)是卓有成效的[11-13]。
f(x)=ωTx+b
(1)
其中,ω是一個正交于超平面的向量。
最優(yōu)分類超平面的計算是一個約束優(yōu)化問題,可以用二次規(guī)劃的技術(shù)解決。SVM的優(yōu)化問題可以用如下方式呈現(xiàn):
subject toyi(ωTxi+b)≥1-ξi
(2)
當有新的樣本點x進入分類器時,將根據(jù)其與決策邊界(decision boundary)的關(guān)系對其進行分類,相應(yīng)的決策函數(shù)為:
g(x)=sign(ωTx+b)
(3)
試驗均在Intel Genuine的CPU(型號T2050,1.60 GHz,1.99 GB的RAM)以及32 bit的Windows Server XP系統(tǒng)下完成。通過R3.3.3實現(xiàn)支持向量機。
假設(shè):(1)文件已分割成矩形區(qū)域;(2)每個區(qū)域包含一個單一字符;(3)文件中只包含英文字母字符。
使用由W.Frey和D.J.Slate捐贈給UCI機器學習數(shù)據(jù)倉庫(UCI machine learning data repository)(http://archive.ics.uci.edu/ml)的數(shù)據(jù)集。該數(shù)據(jù)集包含了26個大小寫英文字母的20 000個案例,使用多種不同的隨機重塑和扭曲的黑色和白色字體印刷。
Frey和Slate提供的文件,當圖像字符被掃描到計算機中,它們將被轉(zhuǎn)換成像素,并且擁有16個統(tǒng)計屬性,這就是文中的建模指標。可以預(yù)期,響應(yīng)值letter有26個水平(或者26類),因為英文字母有26個。
下面進入機器學習的訓(xùn)練和測試階段。通常情況下,需要隨機地將數(shù)據(jù)集劃分為訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集。然而,F(xiàn)rey和Slate已經(jīng)將數(shù)據(jù)隨機化,并建議使用前16 000條記錄(80%)建立模型,作為訓(xùn)練樣本;使用后4 000條記錄(20%)進行測試,即作為測試樣本。
使用R軟件自帶的kernlab添加包中的ksvm()函數(shù)建立模型,其具體語法如下所述。其中核函數(shù)的選擇對于SVM模型的表現(xiàn)至關(guān)重要。相關(guān)研究表明,在機器學習領(lǐng)域的研究中,高斯徑向基核函數(shù)(rbfdot)是首選[14-18]。主要建模結(jié)果如圖2所示。
圖2 支持向量機建模結(jié)果
由訓(xùn)練誤差為0.051 688可見,模型對訓(xùn)練樣本擁有較高的分類精度94.83%。但因為數(shù)據(jù)挖掘模型可能出現(xiàn)“過擬合”(overfit)問題,所以還需要檢驗?zāi)P偷姆夯芰Α?/p>
根據(jù)測試數(shù)據(jù)集研究模型的性能,將測試數(shù)據(jù)集中的預(yù)測值與真實值進行比較,從而判斷它能否很好地推廣到未知的數(shù)據(jù),即建立的模型能否在現(xiàn)實世界中較好的應(yīng)用。使用R軟件中的Table()函數(shù)來實現(xiàn),結(jié)果如圖3所示。
圖3 模型分類結(jié)果
結(jié)果分析:這是一個矩陣,在R軟件中分成兩部分顯示,響應(yīng)值矩陣的維數(shù)較高,有26維。對角線的值144、121、120、156和127表示預(yù)測值與真實值相匹配的總數(shù)。非對角線的值表示預(yù)測出現(xiàn)錯誤。例如:位于行B和列D的值5表示有5種情況將字母D誤認為字母B。
最終,在4 000個測試樣本點中,分類器正確識別的字母有3 357個。如果以百分比計算,預(yù)測精度為83.925%,接近84%。
到此為止,支持向量機分類模型建立完畢,有令人滿意的訓(xùn)練誤差(5.168 8%);并且經(jīng)過檢驗,模型的泛化能力較好,對未知的數(shù)據(jù)有較高的預(yù)測精度(83.925%),對實踐的指導(dǎo)大有裨益。
83.925%的預(yù)測精度雖然不低,但仍然有明顯的提升空間,故需進行模型優(yōu)化。這里采用如下方式實現(xiàn):調(diào)整懲罰參數(shù)C的取值。這是一種主流的探索方式。建模和測試過程與第3和第4節(jié)中的方法相同,這里直接展示主要返回結(jié)果,如表1所示。
表1 懲罰參數(shù)C的探索
對表1分析如下:
(1)支持向量的個數(shù)基本隨著C的增大而減小,說明對樣本點的劃分越嚴格(或?qū)﹀e分的“懲罰”越嚴厲),處于“邊界位置”的點就越少。
(2)訓(xùn)練誤差隨著C的增大而減小,直至為0,說明對樣本點的劃分越嚴格(或?qū)﹀e分的“懲罰”越嚴厲),即制定越嚴格的分類準則,模型對訓(xùn)練數(shù)據(jù)的擬合優(yōu)度越高。這是數(shù)據(jù)挖掘算法的普遍特點。
(3)測試誤差隨著C的增大而持續(xù)減小,直至達到一個非常低的水平(0.029<0.03);當C=50時,測試誤差為0.030 25,往后基本就穩(wěn)定在0.03左右了。說明對樣本點的劃分越嚴格(或?qū)﹀e分的“懲罰”越嚴厲),模型對測試數(shù)據(jù)的擬合優(yōu)度越高,即對未知樣本的分類準確度越高。體現(xiàn)了支持向量機分類模型的優(yōu)越性,即強大的泛化能力,相比深度學習的核心算法——神經(jīng)網(wǎng)絡(luò),不容易過擬合。
(4)“前6個樣本的預(yù)測結(jié)果”是特別增加的一個細節(jié)。從預(yù)測結(jié)果來看,C在取默認值為1時,第四個樣本的預(yù)測結(jié)果為X;而C在其他取值的情形下,第四個樣本的預(yù)測結(jié)果為I。結(jié)合(2)、(3)的結(jié)果可知,適當大的懲罰參數(shù)C得到更優(yōu)的模型,所以有理由相信第四個樣本的預(yù)測結(jié)果為I,而非X。僅僅取6個樣本,就已經(jīng)產(chǎn)生了預(yù)測結(jié)果的差異,所以,參數(shù)的調(diào)整對于模型優(yōu)化來說是很有必要的。
總之,隨著懲罰常數(shù)C的不斷增加,測試樣本的預(yù)測精度始終不下降(事實上,還在不斷上升),最終錯分率小于3%,沒有出現(xiàn)過擬合。表明文中建立的基于支持向量機的英文字符識別模型較為優(yōu)越,不僅分類精度高,而且非常穩(wěn)健。所以,可以為現(xiàn)實應(yīng)用提供有價值的指導(dǎo)。比如:針對不同書寫者的手癖、使用的書寫工具,可以有效地對英文文字加以識別,并為電子方式的呈現(xiàn)提供基礎(chǔ)。
從理論上而言,隨著懲罰參數(shù)C的增加,模型的穩(wěn)健性在下降,幾何上反映為兩分類超平面間距離縮小。所以實踐中,C的取值不宜過大。就文中建立的模型而言,C可以取20,此時測試誤差為0.031 5。
文中建立了一個多分類SVM模型,操作簡單,容易實現(xiàn),樣本容量充足且指標維數(shù)“適中”。實證結(jié)果表明,對于各種“變體”的手寫英文字符,此模型可以實現(xiàn)很高的預(yù)測精度和令人滿意的穩(wěn)健性。在此基礎(chǔ)上,對懲罰參數(shù)C的選擇做了一定的探索,而關(guān)于SVM選參,學術(shù)界始終沒有形成具有共識的理論。
相比只有26種分類的英文字母,如何進行更為復(fù)雜的中文字符識別是未來的研究方向。有許多問題需要面對,包括核函數(shù)的選擇、懲罰常數(shù)C的選擇、訓(xùn)練樣本及測試樣本量的選擇、非平衡樣本、非數(shù)值型特征等。此外,對于有污染或字符缺損的文本數(shù)據(jù),文中建立的模型是否依然有良好的表現(xiàn),也有待進一步求證。