您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 人事档案/员工关系 > 用人工智能类神经网络建成的手写中文识别系统
用人工智能類神經网絡建成的手寫中文識別系統JiannaJ.ZhangDongyanBlachford張建茹東燕DepartmentofComputerScienceDepartmentofInternationalLanguagesWesternWashingtonUniversityUniversityofReginaJohnnyChin-LinTien田錦霖GraduateStudent,DepartmentofComputerScienceWesternWashingtonUniversity引言長期以來﹐漢字的教和學無論對於老師或學生一直都是一個富于挑戰性的艱難課題。因為學習漢字的艱難使許多學生中止或放棄學習漢語的例子舉不勝舉。為解決這一關鍵問題﹐許多教育工作者和電腦技術專家共同努力研究。近幾年來﹐各種各樣輔助學習漢字的電腦軟件層出不窮。比如利用電腦界面學習漢字[1]和“HyperCard”[2]技術就為學習漢字的學生們提供了良好的線上學習工具。最新發展起來的數位板技術使學生能用壓感筆練習寫漢字。雖然這一新技術取代了鍵盤輸入拼音然後由電腦顯示漢字的傳統技術﹑為漢字教和學提供了有利條件﹐但是同時也為電腦技術專家們出了一道棘手的難題。那就是如何使計算機能夠識別每一個學生的手寫漢字﹐從而為每一個學習者提供反饋。為了解決這一難題﹐我們需要一套由人工智能操作的手寫漢字識別系統。在這篇學術論文中﹐我們向大家介紹我們最新的研究成果﹕一個用人工智能類神經网絡建成的手寫中文識別系統。這個識別系統的成功不但能解決識別任何一個學生的手寫漢字的難題﹐從而為每一個學習者提供反饋創造條件。而且為另一個重要研究項目﹐在互聯網上發展一個互動式學習漢語模型[3][4]﹐打下了基礎。一﹑手寫漢字識別系統總體結構介紹我們的手寫漢字識別系統是由三部份組成﹕由圖像主導的用戶界面﹐由人工智能類神經网絡建成的手寫漢字訓練系統和識別系統(請參閱圖一)。由於我們的圖像用戶界面是一個互聯網頁的嵌入程序﹐用戶可以在任何時間﹑任何地方通過互聯網訪問我們的手寫漢字識別系統。這樣的用戶界面不但為學生們提供了很大的方便﹐而且在心理上幫助他們增強了學習的自信心﹐因為他們可以無拘無束的練習。除此之外﹐圖像用戶界面的漢字輸入是由使用者通過壓感筆或者鼠標在計算機屏幕上的一個2.2英寸見方的窗口內自由滑動來實現的。這種技術處理是基於Mitchell的人工智能類神經网絡手寫英文識別器的方法[5]﹐而Java程序的處理則是基於Watson的OpenContentFreeWebBook“實用人工智能編程”[6]。圖形用戶界面訓練系統識別系統圖形用戶界面訓練系統識別系統圖形用戶界面訓練系統識別系統圖一﹑手寫漢字識別系統總體結構如圖一所示﹐根據不同的需求﹐在圖像用戶界面輸入的漢字可直接傳送給訓練系統或識別系統。訓練系統是用來訓練人工智能類神經网絡使其從輸入的手寫漢字樣本中總結經驗和提高識別能力。當系統訓練成功後﹐識別系統即可正常運行。如若訓練結果不理想﹐用戶可輸入更多的手寫漢字樣本。然後繼續訓練直到訓練結果滿意為止(也就是識別率達到要求的標準時)。為了盡快使訓練成功﹐我們收集了1,233個手寫漢字樣本作為訓練數據。這一組訓練數據被儲存在一個MySQL數據庫里。MySQL數據庫和圖像用戶界面是用JavaApplet連接起來的。當用戶選擇自動訓練時﹐訓練系統會自動從MySQL數據庫里提取數據﹑自動進行訓練。識別系統是一個整體表現元件。它是訓練的目的。它代表了整個手寫漢字識別系統的精確度。也就是說訓練結果的精確度越高﹐整體識別系統的準確率也就越高。為了檢驗訓練系統的結果﹐圖形用戶界面將識別系統識別出的三個候選結果全部顯示在計算機屏幕上﹐並將其中數據最高的候選結果做為識別的最後答案。二﹑漢字輸入分解法眾所週知﹐漢字是由偏旁部首組成。一個漢字通常可以分解成若干部份。比如“李”字可以分解成“木”字頭和“子”字。因為“木”字頭和“子”字比“李”字筆劃少﹐識別起來比較容易。根據這一原理和對漢字字形的系統分析並參考了國際統一碼的表意文字[7]﹐我們制定了一套“漢字輸入分解法”。這一套“漢字輸入分解法”根據漢字偏旁部首﹐將字形劃為12個分區(請參閱圖二)。這12個分區是﹕(1)上1﹐例如﹕草﹐字﹐穴﹐華﹐軍﹐莫﹐茶﹐...(2)上2﹐例如﹕杏﹐皆﹐李﹐示﹐孟﹐只﹐界﹐...(3)左1﹐例如﹕棋﹐仍﹐扔﹐嚷﹐條﹐裡﹐快﹐...(4)左2﹐例如﹕林﹐孔﹐財﹐此﹐就﹐好﹐類﹐...(5)下1﹐例如﹕怒﹐烈﹐哲﹐熟﹐桑﹐念﹐鼻﹐...(6)下2﹐例如﹕柴﹐量﹐拿﹐炎﹐吉﹐古﹐娶﹐...(7)右1﹐例如﹕利﹐勤﹐彬﹐卿﹐劀﹐卦﹐刻﹐...(8)右2﹐例如﹕期﹐領﹐化﹐印﹐叔﹐帥﹐封﹐...(9)外﹐例如﹕國﹐圍﹐凶﹐匹﹐匝﹐勺﹐匆﹐...(10)左下﹐例如﹕道﹐延﹐建﹐迅﹐述﹐迭﹐進﹐...(11)左上﹐例如﹕厚﹐庄﹐尼﹐扇﹐痛﹐疾﹐疹﹐...(12)全﹐例如﹕力﹐兆﹐巾﹐西﹐母﹐生﹐皿﹐...1.上1(top)2.上2(tophalf)3.左1(left)4.左2(lefthalf)5.下1(bottom)6.下2(bottomhalf)7.右1(right)8.右2(righthalf)9.外(outside)10.左下(leftdown)11.左上(bleftup)12.全(hole)1.上1(top)2.上2(tophalf)3.左1(left)4.左2(lefthalf)5.下1(bottom)6.下2(bottomhalf)7.右1(right)8.右2(righthalf)9.外(outside)10.左下(leftdown)11.左上(bleftup)12.全(hole)圖二﹑漢字輸入分解法的12個分區根據這12個分區﹐輸入的每一個漢字首先被識別系統中的第一組類神經網絡劃分成12類分區中的一類。然後﹐被分好類的漢字又被輸入第二組類神經網絡。第二組類神經網絡負責識別偏旁部首。一旦這個輸入漢字的偏旁部首被第二組類神經網絡確定﹐其餘部份則由第三組類神經網絡來識別。當這個輸入漢字的所有部份都被辨認出來後﹐最後結果通過圖形用戶界面顯示在計算機屏幕上。三﹑人工智能類神經网絡我們的訓練系統是由三組人工智能類神經网絡組成。這三組人工智能類神經网絡全部運用傳統的反傳算法來訓練weights。每一組人工智能類神經网絡各有三層。第一層是輸入層﹔第二層是暗層﹔第三層是輸出層。第一組人造類神經網絡的輸入層共有900個神經元。每一個神經元相對應一個輸入像素(參見圖三)。由於第一組人造類神經網絡是用來識別漢字輸入分解法中的12個分區﹐所以它的輸出層只有12個神經元。每一個神經元對應著一個漢字輸入分解法的分區。第二組人造類神經網絡的輸入層的神經元的數量與輸入像素的數量相等。比如圖三中的“花”字﹐第二組人造類神經網絡將其原來的30X30的點陣劃分成“上1”和“下2”兩個分區。這兩個分區的點陣分別是10X30和20X30。所以第二組人造類神經網絡的輸入層的神經元的數量應該是300。而第三組人造類神經網絡的輸入層的神經元的數量應該是600。圖三﹑人工智能神經网絡的拓扑整個人工智能類神經网絡的拓扑被顯示在圖三中。從輸入到輸出﹐三組類神經网絡被連接在一起形成了一個樹狀的層次結構。為了控制訓練和測試,這三組類神經网絡也可以被分開。分開後﹐每一組類神經网絡便成為一個獨立的正向网絡。這樣﹐我們就可以對整個人工智能類神經网絡進行分組訓練。進行分組訓練的優越性是節省時間﹑而且能清楚地知道每一組類神經网絡的訓練結果﹐從而對那一組訓練結果不理想的類神經网絡進行修改或增加訓練數據。四﹑算法簡介反傳算法是一種極為廣泛應用的監督訓練算法。這種算法比較適合于多層人工神經网絡。在訓練時把有關信息儲存起來。然後在每一循環中根據儲存起來有關信息﹐從輸出層開始向相反的方向直到輸入層來調整weights。調整weights的目的是要逐漸減少辨認誤差。那麼辨認誤差是怎樣逐步減少的呢﹖假設誤差函數描述了一個平面,那么誤差沿梯度方向增長最快。利用這一性質﹐強制誤差沿相反的方向發展從而達到以最快的速度減少辨認誤差的目的。現在讓我們將手寫漢字識別系統的算法展示如下:TrainingProcess:useback-propagation1.train_ann1(P,Partation_ID)2.train_ann2(P,Radical_ID)3.train_ann3(P,Charachter_ID)TheTrainingAlgorithm:Input:P=30×30ChinesecharacterimagepatternsOutput:Ann=trainedneuralnetworkfor_each(ann)while(error≥0.005)foreach(p∈P,p_id)forward_pass(ann,p)error:=compute_error(ann)weights:=updateweights(old_weights,error)endforendwhileendforTheRecognitionAlgorithm:while()wait_for(user_input)p:=convert(user_input)partition_id:=ann1(p)(p1,p2):=get_part(p,partition_id)radical_id:=ann2(partion_id,p1)charachter_id:=ann3(radical_id,p2)displayrecognizedcharacterendwhile四﹑實驗結果到目前為止﹐整個人工智能類神經网絡的計算機程序的第一版本已完成。我們的實驗結果報告可分為五部份﹕漢字輸入分解﹐偏旁部首歸類﹐剩餘部份辨別﹐熟悉手寫漢字識別﹐和陌生手寫漢字識別。訓練數據是我們收集的1,233個手寫漢字樣本。這1,233個手寫漢字樣本屬於378個不同的漢字和66個偏旁部首。這些手寫漢字樣本被分成12類﹐和漢字輸入分解的12個分區相對應。漢字分類訓練的目的是使第一組人工智能類神經网絡能夠正確地識別12個分區。它是漢字識別的第一部份。第二部份是偏旁部首歸類訓練。在第二部訓練之前﹐輸入數據以被標明是屬於哪個分區。這樣﹐在訓練過程中第二組人工智能類神經网絡就可以依照輸入數據來調整weight和記憶。第三部份是除去偏旁部首以後剩餘部份辨別的訓練。比如﹐“杜”字去掉“木”字邊(30X10)﹐其剩餘部份是“土”(30X20)。因為“土”部份屬於“右2”區﹐所以它被輸入專門負責識別“右2”區的网絡進行訓練。基於以上三組人工智能類神經网絡﹐現將我們的實驗結果總結如下﹕實驗名稱輸入量黯層神經元數訓練速度精確度時間漢字輸入分解1,233500.05098%15:17:37偏旁部首歸類1,2333-200.02599%20:29:38剩餘部份辨別1,2332-120.1099%02:33:03熟悉手寫漢字識別1,233不等不等98%00:04:25陌生手寫漢字識別55不等不等15%不等圖四﹑實驗結果報告五﹑結論與下一部計劃目前我們的手寫中文識別系統處在最初的階段。根據我們的初步實驗結果﹐三組人工智能類神經网絡的單獨訓練不但節省時間而且精確度高。第一版本的識別系統對於熟悉手寫漢字的識別精確度比對於陌生手寫漢字識別的識別精確度要高83%。造成這個差別的主要原因之一是缺少不同筆體的手寫漢字樣本。收集更多的不同筆體的手寫漢字樣本是下一部計劃之中的第一步。我們將力爭在不遠的將來收集到5﹐000個不同筆體的手寫漢字樣本。現存的漢字識別系統共有三組類神經網絡。其中有些部份可以精簡。例如﹐第三組類神經網絡完全可以利用一部份第二組類神經網絡。也就是如果負責識別一個分區的類神經網絡已經存在于某組類神經網內﹐當其它各組類神經網絡需要使用它的時候﹐大可不必在本組內重建立一個識別同樣分區的類神經網絡。一個可行的辦法就是利用迭代式類神經網絡。我們相信經過改進的漢字識別系統能對陌生手寫
本文标题:用人工智能类神经网络建成的手写中文识别系统
链接地址:https://www.777doc.com/doc-1004709 .html