胡 霖
(中國石油大學勝利學院,東營 257061)
現在,隨著計算機科技的發展,機器學習的關注度越來越高,在眾多的及其學習方法中支持向量機是一個應用比較廣泛的及其學習方法。支持向量機(support vector machines,SVM)的理論主要是建立在統計學習理論VC維理論和結構風險最小化原理基礎之上[1]。
在機器學習領域,支持向量機之所以應用廣泛,主要是因為支持向量機在解決小樣本、非線性和高維模式識別問題中能夠表現出強大的計算功能,特別是在遇到“維數災難”和“過學習”等問題的過程中,支持向量機能夠解決有效解決此類問題[2]。同時,支持向量機也是一種發展比較成熟的機器學習方法,它的理論發展非常成熟,數學模型易于理解,這就為研究此類算法的研究人員提供了極大的便利。
機器學習的不斷發展,極大地促進了模式識別、函數估計、回歸分析、時間序列預測等方面的發展,特別是在在文本識別、手寫字體識別、人臉圖像識別、基因分類及時間序列預測等領域有著重要應用。
支持向量機作為及其識別中的一種分類器,屬于一種兩類分類器,可以通過對信息進行分類進行信息識別,其基本算法如下。
設海量信息中的樣本集中n個樣本,樣本集表示為(xi,yi),i=1,2……n,xi∈Rd,yi∈{-1,1}可以表示樣本屬于xi的類別。實際應用中,支持向量機依據訓練樣本的信息找到識別樣本所需的超平面,將訓練樣本分為兩類。在識別樣本的超平面中,ω是一個n維向量,x是樣本的向量表示,b為實數[3]。
對于給定的樣本,理想的情況是使兩類分類邊界的間距最大,稱之為間隔,間隔在數學上的定義為。歸一化間隔ω和b后,間隔可以表示為

歸一化后的間隔,稱為幾何間隔。
在兩類樣本之間的幾何間隔中,ω是自變量,目標函數是關于ω的二次函數,約束條件是ω的線性函數,這時,支持向量機的目標識別問題就轉化為二次規劃函數的求解問題,此時它的約束條件為

為了解決目標識別過程中產生的誤差問題,此時需要引入松弛因子和懲罰因子C,引入后信息識別的過程中支持向量機會在錯分時繼續工作,此時幾何間隔在約束條件下變為

利用拉格朗日乘子,最優決策函數為

其中,sgn()是一個符號函數,αi為分類間隔下的拉格朗日乘子。
為了提高手寫體數字的識別能力,本文提出了一種基于改進的C-支持向量機的手寫體數字高識別率方法,對手寫體數字的預處理、端點提取以及四交叉點特征的提取過程的算法進行優化。
對于支持向量機來說,當其進行信息識別時,經常會遇到信息的線性不可分的現象,這種情況下,為了解決線型不可分問題,需要引入核空間理論[4]。
核空間理論可以解決線性不可分中的高維運算過程中的內積問題。在支持向量機算法中,不同的核函數可以在信息識別中有不同的效果。支持向量機的核函數主要包括線性核函數、多項式核函數、徑向基核函數、二層神經網絡核函數,其中徑向基核函數和多項式核函數用途最多。
在支持向量機進行信息識別過程中,為了找到最合適的核函數和核函數參數,算法通常使用窮舉搜索法。用窮舉搜索法進行實驗,找到線性核函數、多項式核函數、徑向基核函數、二層神經網絡核函數等核函數中最適合的核函數和參數。
(1)對手寫體數字字符進行適當的預處理,為數字識別做準備。
對手寫體數字字符進行適當的預處理的主要目的是解決圖像中的噪聲問題,讓原本的數字變得更加清晰,同時將灰度圖像轉換為二值圖像。將灰度圖像轉換為二值圖像主要是便于信息的識別。預處理的主要過程包括讀圖并將其二值、平滑、切割、細化和歸一化等。
平滑主要是為了去除手寫過程中產生圖像時產生的粗糙點,平滑通常采用模板匹配法進行粗糙點平滑。本文利用的是二次毛刺去除法對數字圖像進行平滑處理,對數字圖像的毛刺進行去除,增加數字的可識別性。為了更好地進行平滑處理,可以將手寫體的數字分為粗線條和細線條兩種分別進行處理。
切割主要是利用算法,根據手寫體數字的輪廓將數字裁剪出來,切割的第一個步驟是對手寫體數字進行掃描,目的是確定上下左右切點,然后,根據上下切點的行數和左右切點的列數確定要切割的字符的起始和終止的行數與列數。
切割后,對手寫體數字進行細化,將線條統一為細線條,線條細化后需要對手寫體數字進行歸一化處理,并在特定大小的圖像空間中。
去毛刺主要是為了去除細化后的手寫體數字邊緣的粗糙點,本文提出的基于改進的C-支持向量機的手寫體數字高識別率方法需要對手寫體數字進行兩次去毛刺處理。在對手寫體數字進行第二次毛刺去除時,要對不同的模板對手寫體數字的的左上、左下、右上、右下、左中、右中、上中和下中八個方向全部進行處理以保證手寫體數字識別的準確率。也需要對手寫體數字進行模板匹配法,進行斷點進行修復。
(2)利用改進的C-支持向量機進行手寫體數字字符的特征提取。
特征提取包括很多方面,分別是孔洞特征、端點特征、四交叉點特征、左右截距特征、豎線特征和橫線特征,下面介紹改進的C-支持向量機如何進行特征提取。
手寫體數字的孔洞特征,第一要找到字符的上切點,并按照右、右上、上、左上、左、左下、下和右下八個方向對手寫體數字進行搜索,重復以上操作,找到孔洞就需要進行特征提取。值得注意的是,在搜索孔洞的過程中,如果搜索到的手寫體數字鏈碼碼長小于算法中閾值,這條線就是一條干擾曲線,算法不需要對這條線進行特征提取。
豎線特征的提取是主要是用于識別字符5和字符7,這兩個數字具有明顯的豎線特征,橫線特征的提取主要是為了提高字符2的識別率,同樣,在識別豎線特征和橫線特征是也采用模板匹配的方法。
為了提高手寫體數字識別的正確率,降低手寫體數字識別誤差,在利用本文算法進行識別的過程中,要利用模板匹配法提取特征匹配,在識別的過程中提前規定每一個數字應具備的特征,當某個字符具備這些特征時,就可判定該字符所代表的數字。
由于計算機技術的發展,手寫體數字識別率還有很多的限制,造成了手寫體數字識別率仍然比較低,為了便于手寫體數字應用,很多專家學者開始研究如何提高手寫體數字識別率。本文提出了一種基于改進的C-支持向量機的手寫體數字高識別率方法,對手寫體數字的預處理、端點提取以及四交叉點特征的提取過程都提出了具體的實驗方法,實驗結果證明基于改進的C-支持向量機的手寫體數字高識別率方法有效可行,本實驗方法可以提高手寫體數字識別率,為更多應用手寫體數字的領域提供技術支持。