金姝含,張華欽,徐 濱,吳宇航
(1. 華北理工大學理學院,河北 唐山 063210;2. 華北理工大學機械工程學院,河北 唐山 063210;3. 華北理工大學數學建模創新實驗室,河北 唐山 063210;4. 河北省數據科學與應用重點實驗室,河北 唐山 063210;5. 唐山市數據科學重點實驗室,河北 唐山 063210)
當前,光學字符識別技術即OCR技術。由于其應用的廣泛性,受到越來越多的關注。在印刷體的英文字符識別[1]當中,條形碼的識別、車牌照的識別、圖像的識別,成為眾多學者探究的重要課題。本文將利用公開的光學字符數據集,研究26個英文大寫字符的識別。對于英文字符的識別,現有的識別方法有很多,例如基于使用模糊推理的方法,基于神經網絡的方法等等。查閱文獻得到[2],研究學者提出了人工神經網絡算法來進行英文字符的識別,但由于神經網絡算法有時不收斂,或陷入局部震蕩,這就導致了識別率的下降。為此,本文研究了一種基于改進粒子群優化的 BP神經網絡算法用于英文字符的識別[3]。這種算法利用改進后粒子群算法來優化BP神經網絡中的閾值和權值,避免了陷入局部最優的狀況,加快了收斂的速度,提高了識別率的準確性。
本文首先研究了神經網絡算法用于英文字符的識別,然后研究了將蒙特卡洛方法用于粒子群,尋找全局最優值。再將改進后粒子群優化BP神經網絡權值和閥值,并利用改進后的BP神經網絡,用于26個大寫字母的識別實驗,實驗表明,本文的研究方法具有準確的字符識別效果。
BP神經網絡是一種誤差前向傳播的多層前饋網絡。傳統的三層 BP神經網絡[4]的拓撲結構如圖 1所示,有輸入層、隱含層、輸出層組成。輸入、輸出轉移函數由層間的轉移函數所決定。層間轉移函數由網絡參數即單元的權值所決定,網絡參數通過學習訓練確定。

圖1 神經網絡的拓撲圖Fig.1 Topology diagram of neural network
假設輸入層含n個節點,隱含層含p個節點,輸出層含m個節點,輸入層到隱含層的權重記為ω>ij,偏置記為aj,隱含層到輸出層的權重記為ωjk,偏置記為kb,學習速率為η,激勵函數為g(x)。其中激勵函數g(x)取Sigmoid函數:

隱含層輸出記為Hj:

輸出層輸出記為Ok:

期望輸出記為Yk,令Yk-Ok=ek,誤差記為E:

BP神經網絡在傳遞過程當中,具有信號前向傳遞、誤差反向傳播的特點,倘若在傳遞過程中,輸出層沒有達到期望的輸出值,則自動轉入反向傳播,網絡自身會根據預測出來的誤差對閾值和權值進行調整,從而使神經網絡的預測值不斷地逼近期望的輸出值[5]。在誤差反向傳播的過程當中,要盡可能得使誤差函數達到期望的最小值,即minE,權值的更新公式為:

偏置更新公式為:

在上述變量及公式的基礎上,建立BP神經網絡識別模型,設定學習速率及訓練次數,使輸出層不斷逼近期望輸出值,當相鄰兩次迭代之間的誤差小于指定值時,則說明達到識別結果,迭代停止。
粒子群優化算法[6]是由Kennedy博士和Eberhart博士于1995年提出的一種以族群動力學為基礎的進化計算科學技術。它的基本概念來源于社會行為的模擬,每一個個體的行為不但會受到過去經驗、認知的影響,同時也會受到整體社會行為的影響。
對應每一個個體在搜尋空間中各自擁有其方向和速度時,并根據自我過去的經驗與群體行為進行搜尋策略的調整。其主要的優勢體現在,粒子的收斂性快,算法易于實現,不受目標函數的梯度信息等影響,并且也沒有許多參數要進行調整。
(1)初始化設置微粒群的各項參數,隨機選擇初始粒子,計算各粒子的誤差。
(2)比較群體中各個微粒的當前最小誤差和群體歷史最小誤差,若當前誤差更小,則令當前粒子位置為歷史全局最優位置。
(3)比較群體中各個微粒的當前位置和群體歷史最優的位置,保存誤差小的成為歷史全局最優位置。
(4)用(8)、(9)式對每個個體的位置、速度進行迭代。

式中d表示第i個微粒所經歷的歷史最佳位置,Vi表示每個微粒的飛行速度,Pg表示在整個微粒群中,所記錄的最佳解位置。參數c1以及c2分別是自我認知和社會模式的學習率。
(5)若系統的適應值誤差達到設定的適應值誤差限[7],訓練結束。輸出歷史全局最優位置即為所求神經網絡的最佳權值和最優閾值。
為了避免粒子群算法陷入局部最優解,使用蒙特卡洛方法進行改進[8]。在粒子群算法得到最小值之后,擴大權值和閾值的搜索范圍,重新選擇初始點進行尋優。為了找到全局最優解,新的初始點盡量避開當前最優解,為達到該目的,按照卡方分布選取新初始點。
卡方分布的均值等于自由度,且隨自由度的升高卡方分布逐漸接近正態分布。將卡方分布的這種特性用于粒子群初始點的選取,將卡方分布進行拉伸平移變換,使最優解對應卡方分布的均值,最大或最小值對應卡方分布的上分位點。各維度的變換公式如下。

其中,xchi是服從卡方分布的隨機值;k是卡方分布的均值;p(α)是卡方分布的上α分位點;是該維度的極值,隨機選取為最大值或最小值;xbest是當前最優點在該維度的值。
比較兩個BP神經網絡的預測誤差,選擇誤差小的作為當前最優解[9]。如果新網絡為最優解,將自由度a重置為初始自由度a0,再次選取初始點搜索最優解。如果舊網絡仍為最優解,則使a增加1,再次選取初始點搜索最優解,這樣,新的初始點的概率分布與上次不同,增大變異性,在自由度a達到最大自由度amax后,認為當前最優值即為全局最優值,結束算法。
(1)首先將神經網絡的各個連接權值和閾值作為粒子群的位置向量,也就是說,將每一個神經網絡的連接權值和閾值作為一個粒子群[10],可用一個 T維的參數表示,則粒子群優化算法中的搜索空間維數為:

(2)給出一個BP神經網絡進化的參數,將3.2.1得到的微粒ωi對BP神經網絡的權值與閾值進行賦值,將訓練樣本輸入,進行網絡訓練,得到一個神經網絡的一個輸出值j,則種群ω中個體ωi的適應值fiti可以定義為:

(3)在迭代過程中,根據(7)式和(8)式通過個體的極值和全局的極值,更新粒子自身的位置和速度,并引入蒙特卡洛的隨機模擬,在粒子每次更新后以一定的概率初始化粒子。計算每個粒子的適應度值,根據新種群粒子的適應度值,更新粒子個體的極值和群體的極值。
(4)當滿足最大迭代次數時,利用改進后粒子群算法[11]得到的最優粒子對 BP神經網絡的連接權值和閾值分別進行賦值。將訓練后的 神經網絡識別模型進行26個英文大寫字符的識別。
步驟1初始化各項參數。隨機生成BP神經網絡的初始權值與閾值n組,作為粒子群的初始點。
步驟2按照(7)式和(8)式尋找最優點,誤差合格或達到最大迭代次數后停止尋找,得到當前最優解
步驟3將t的值增加1,按根據(9)式變換后的自由度為a的卡方分布隨機生成BP神經網絡的初始權值與閾值n組,作為新粒子群的初始點,進行步驟2。
步驟4比較兩個最優解的誤差,若當前最優解的誤差更小,則淘汰新最優解,自由度a的值增加1;若新最優解的誤差更小,則將新最優解的值賦予當前最優解,自由度a的值重置為初始自由度a0。
步驟 5重復步驟 3步驟 4,直到自由度后,認為當前最優解即為全局最優解,停止重復,按當前最優解對BP神經網絡的權值和閾值進行賦值。
使用UCI的光學字符識別數據集對改進粒子群優化的BP神經網絡識別模型進行測試。 UCI的光學字符識別數據集包含20000個樣本,每個樣本包含16個自變量和1個目標變量,隨機選取2000個樣本作為訓練集,100個樣本作為測試集。對比改進PSO-BP與BP神經網絡和PSO-BP的測試結果,測試結果如下表。

表1 測試結果比較Tab.1 Comparison of test results
可見,改進后算法的準確率升高。表明算法的局部最優解問題得到了解決。如果對數據集進行降維處理,縮小搜索范圍,會使準確率進一步提高。
本文對蒙特卡洛算法、粒子群算法和BP神經網絡算法三者結合用來對神經網絡進行學習訓練的方法進行了研究,并與BP神經網絡算法和PSO-BP進行了比較。仿真實驗結果表明,改進后的PSO-BP算法準確率最高,該改進大大降低了神經網絡模型陷入局部極小值的可能、提高了模型的收斂速度和識別精度。改進后的粒子群優化算法作為一種有廣泛適應性和具大潛力的優化算法可以在更多的領域得到應用。