摘 要:人工神經網絡(ANN)是一種非線性的處理單元,具有自學習、自組織與自適應性的特點,能夠聯想記憶,擅長處理復雜的非線性問題;但因為人工神經網絡的學習訓練過程運算量大,耗時長,所以很少應用于實時要求較高的嵌入式系統。文中提出把網絡的建立、學習訓練及測試這部分運算量大、耗時多的工作放在PC機上進行。當這部分工作完成,網絡收斂后,將計算得到的網絡參數存入一個文件。把該文件下載到嵌入式系統中,在嵌入式系統中進行網絡重建,并應用神經網絡迅速算出正確結果,這樣就能很好地達到實時的要求。目前已成功地把BP網絡應用于ARM平臺上,實現了對復雜非線性問題的準確分類。該方法為神經網絡走入嵌入式領域提供了一條廉價有效的途徑。
關鍵詞:ARM ANN BP網絡 人工神經網絡 MC9328MX1 嵌入式系統
引言
人工神經網絡ANN(Artificial Neural Network)是在對人腦組織結構和運行機制的認識理解基礎之上,模擬其結構和智能行為的一種工程系統\[1\]。作為一門多學科、綜合性的研究領域,于20世紀80年代初復興以來, 在全世界掀起了一股空前廣泛的研究熱潮。
目前,人工神經網絡已被廣泛應用于各個領域,包括商業及經濟估算、自動檢測和監視、計算機視覺、語音處理、機器人及自動控制、優化問題、航空航天、銀行金融業和工業生產等。多數情況下,人工神經網絡都是在內存大、運算快的計算機上應用。這是因為人工神經網絡一般都要先針對特定的問題進行學習訓練;而學習訓練運算量相當大,往往會花費很長的時間(幾小時、幾天甚至更長時間),并且嵌入式系統中的內存大小和通用微處理器處理速度都無法與計算機相比,所以要照搬計算機的處理方法會花費更長的時間。這一點就限制了人工神經網絡在時效性要求較高的嵌入式系統中應用。事實上,人工神經網絡技術很早就在嵌入式系統中得到了應用,但大多都是針對特定的問題在專用的芯片中應用,而通用芯片卻達不到要求。當然,也有專業的神經網絡芯片,但價格較貴,不能滿足成本要求。針對這個矛盾,提出一種在ARM芯片上應用神經網絡技術的方案。32位的ARM(Advance RISC Machines)微處理器,以其低成本、低功耗、高性能的特點在嵌入式領域被廣泛使用。本方案已經在Motorola公司的龍珠MC9328MX1(ARM920T)上成功實現。該方案能在不增加硬件成本的基礎上,僅通過軟件編寫,就能把神經網絡建立在嵌入式系統上,并且快速高效地發揮神經網絡的作用。
1人工神經網絡介紹
人工神經網絡是根據人們對生物神經網絡的研究成果設計出來的,由一系列的神經元及相應的連接構成,具有良好的數學描述;不僅可以用適當的電子線路來實現,更可以方便地用計算機程序加以模擬。早在20世紀40年代初期,心理學家McCulloch、數學家Pitts就提出了人工神經網絡的個數學模型,從此開創了神經科學理論的研究時代。其后,學者們又先后提出了感知器網絡、BP網絡、自組織網絡、Hopfiled網絡、Elman網絡等各種模型,目前已有200多種網絡模型,十幾種常用算法,使得人工神經網絡技術得以蓬勃發展。它的應用領域也十分廣闊,特別是在信息、汽車、軍事、化學、水利等工程領域,神經網絡的作用越來越顯著。
1.1人工神經網絡的特點
人工神經網絡在結構上并行處理、分布式存儲,因此運算速度快,具有較理想的容錯性;同時還具有自學習、自組織、自適應能力。它是由大量的神經元廣泛互連而成的系統,這個結構特點決定著人工神經網絡具有高速信息處理的能力。
人工神經網絡的知識存儲容量很大。在神經網絡中,知識與信息的存儲表現為神經元之間分布式的物理聯系。它分散地表示和存儲于整個網絡內的各神經元及其連線上。每個神經元及其連線只表示一部分信息,而不是一個完整的具體概念。只有通過各神經元的分布式綜合效果才能表達出特定的概念和知識。
由于人工神經網絡中神經元個數眾多以及整個網絡存儲信息容量的巨大,使得它具有很強的不確定性信息處理能力。即使輸入信息不完全、不準確或模糊不清,神經網絡仍然能夠聯想思維存在于記憶中的事物的完整圖像。只要輸入的模式接近于訓練樣本,系統就能通過聯想記憶給出正確的推理結論。
正是因為人工神經網絡的結構特點和其信息存儲的分布式特點,使得它相對于其他的判斷識別系統,如專家系統等,具有另一個顯著的優點——健壯性。生物神經網絡不會因為個別神經元的損失而失去對原有模式的記憶。有力的證明是,當一個人的大腦因意外事故受輕微損傷之后,并不會失去原有事物的全部記憶。人工神經網絡也有類似的情況。因某些原因,無論是網絡的硬件實現還是軟件實現中的某個或某些神經元失效,整個網絡仍然能繼續工作。
人工神經網絡同現行的計算機不同,是一種非線性的處理單元。只有當神經元對所有的輸入信號的綜合處理結果超過某一門限值后才輸出一個信號,因此神經網絡是一種具有高度非線性的超大規模連續時間動力學系統。它突破了傳統的以線性處理為基礎的數字電子計算機的局限,標志著人類智能信息處理能力和模擬人腦智能行為能力的一大飛躍。
1.2人工神經網絡的基本功能
?。?) 聯想記憶
可以從不完整的信息和噪聲干擾中恢復原始的完整信息,并對從未遇到過的新情況能根據以往的經驗作出合理的分析和判斷。這一能力使其在圖像復原、圖像和語音處理、模式識別、分類等方面具有巨大的應用價值。
?。?) 非線性映射
可以用獨特的方式對很復雜的非線性問題作分析、歸納和表述,并作出合適的處理。
?。?) 分類與識別
神經網絡可以很好地解決對非線性曲面的逼近,可以以任意精度逼近任意曲線,因此比傳統的分類器具有更好的分類與識別能力。
(4) 優化計算
神經網絡經過動態演變過程達到穩定狀態時,對應的能量函數小,從而其穩定狀態就是問題的解。
?。?) 知識處理
主要優點是能夠自適應樣本數據。當數據中有噪聲、形變和非線性時,它能夠正常地工作。
2BP網絡原理
誤差逆傳播神經網絡,簡稱BP(Back Propagation)網絡,是應用廣的一種人工神經網絡。人工神經網絡模型可分為三類:前向網絡、反饋網絡和自組織網絡。BP網絡屬于前向網絡。主要用于函數逼近、模式識別、分類及數據壓縮等方面。
2.1BP神經網絡結構\[2\]
BP神經網絡是一種具有三層或三層以上階層結構的神經網絡。層間各種神經元實現全連接,即下層的每一個單元與上層的每個單元都實現權連接,而每層各神經元之間不連接,如圖1所示。由于BP 神經網絡及其算法增設了中間隱含層而且有相應的學習規則可循,使其具有對非線性模式的識別能力;尤其是其數學意義明確、算法步驟分明,更使其具有廣泛的應用前景。一個典型的BP神經網絡由三層構成:輸入層、隱含層和輸出層。各階層之間實行全互連方式。
BP網絡是一種單向傳播的多層前向網絡。它通過大量樣本進行有導師學習,不斷減小網絡輸出與用戶要求間的距離,逼近要求。其學習訓練由四個過程組成:
① 輸入模式由輸入層經中間層向輸出層的“模式順傳播”過程,得到了初網絡的輸出;
② 由網絡的期望輸出與網絡實際輸出之差得到的誤差信號,從輸出層經中間層向輸入層逐漸修正連接權的“誤差逆傳播”過程;
③ “模式順傳播”與“誤差逆傳播”的反復交替進行的網絡“記憶訓練”過程,用各樣本反復迭代,不斷修正連接權;
?、?網絡趨向收斂,即網絡的全局誤差趨向極小值的“學習收斂”過程。
網絡收斂后,就達到用戶的要求,訓練過程結束。
可以看出,BP網絡的訓練過程歸結起來為: 模式順傳播→誤差逆傳播→記憶訓練→學習收斂。
2.3BP神經網絡訓練算法
輸入層、隱層和輸出層的單元數分別為N、L和M。輸入層各神經元輸入為I0,I1,…,IN-1;隱層各神經元的輸出為M0,M1,…,ML-1;網絡實際輸出層各神經元輸出為O0,O1,…,OM-1;訓練樣本期望各神經元輸出值為E0,E1,…,EM-1;輸入單元i到隱層j的權值為Vij,隱層j到輸出單元k的權值為Wjk。BP網絡訓練過程具體算法如下:
① 將權值初始化為 -1.0~1.0之間的隨機數;
?、?從樣本中提取特征,取出I0,I1,…,IN-1輸入網絡,指定期望輸出E0,E1,…,EM-1;
?、?計算隱層輸出M0,M1,…,ML-1和網絡實際輸出O0,O1,…,OM-1;
?、?計算實際輸出與期望輸出的誤差;
⑤ 調整權值W(n+1)jk=W(n)jk+ηδkMj(1)
W(n+1)ij=V(n)ij+ηδjIi(2)式中η為學習步長,δ為局域梯度。
?、?返回⑤,用所有訓練樣本反復訓練網絡,多次迭代,直到權值達到穩定。
實際訓練時,定義出反映實際輸出與期望輸出誤差平方和的度量值為EP=1〖〗2∑M-1〖〗k=0(Ek-Ok)2(3)收斂條件為Error=1〖〗P∑P-1〖〗P=0EP<ε(4)式中P為訓練樣本數,ε為給定的誤差范圍。當滿足此條件時訓練結束。
3方案設計
大多人工神經網絡程序都是在計算機上運行的,但在嵌入式領域中,更多應用都是針對便攜式設備的;而目前嵌入式系統中,內存容量和通用處理器的處理能力都無法與計算機相比。這就限制了其處理能力,導致了嵌入式系統在應用人工神經網絡時有時效性不好的先天缺陷。在暫時不能提高芯片處理能力的情況下,為了克服這個缺陷,就要讓嵌入式系統盡量少參加運算,集中資源僅處理必要的任務來提高時效性。也就是說,在應用神經網絡技術時,把運算量大的、耗時多的任務交給PC機先完成,而僅把用戶要使用的應用程序部分載入嵌入式系統,這樣可以大大地提高嵌入式系統在應用人工神經網絡時的時效性。于是,可以把整體工作分為兩部分。部分包括網絡的建立、學習訓練以及檢測。這部分應該在PC機上實現,當網絡經過訓練,收斂后,計算得到了合適的各網絡參數,將這些參數存入一個文件。第二部分包括重新復原網絡、用戶使用界面及其他對用戶進行各種服務的應用程序。這部分程序將在嵌入式系統上運行。需要注意的是,在嵌入式系統使用神經網絡處理問題之前,必須把預先在PC機上經過長時間學習訓練得到的網絡參數文件先裝入嵌入式系統。因為嵌入式系統要根據這些網絡參數在嵌入式系統中重新復原出結構合理的神經網絡。也可以直接把網絡參數文件與第二部分的應用程序放在一起,編譯生成在ARM上運行的可執行代碼,然后下載到嵌入式系統中運行。
4人工神經網絡在ARM平臺上的實現
目前,成熟的BP網絡算法代碼很多。設計者只需要針對處理的特定問題而確定網絡的規模,即確定網絡層數和每層神經元數目。也可以再選擇適當的動量因子、學習步長等極少的幾個參數,然后調用BP網絡算法代碼進行迭代運算。直到網絡收斂后,將得到的網絡各權值等參數存入網絡參數文件就可以了。這部分的工作在PC機上完成,比較簡單。第二部分是嵌入式系統中運行的程序,應該按照實際問題的要求,在需要時從部分生成的網絡參數文件中取出各個網絡參數復原網絡。然后根據用戶要求,將輸入模式輸入神經網絡,由網絡進行前向計算得出結果,從而快速合理地解決問題。因為在嵌入式系統中,只對網絡進行前向運算,所以運算量相當小,瞬間即可完成。對于處理較復雜的非線性問題,這種處理方法會比普通算法快,并且因為它使用了部分在PC機上訓練好的神經網絡,所以具有普通算法不具備的容錯、聯想、自適應能力,而且整個應用具有非常好的健壯性。人工神經網絡的應用部分只是作為解決問題的一種方法,應該包含在應用程序內。應用程序代碼編寫完畢后,可以在PC上使用GNU提供的交叉編譯工具編譯出ARM平臺上的可執行代碼。如果在ARM平臺上移植了嵌入式Linux操作系統,還可以使用GNU的調試工具,如gdb、gdbserver、kgdb等,方便地對目標板上Linux下應用程序進行調試。
5試驗
在MC9328MX1處理器\[3\](ARM920T)的硬件平臺上,移植嵌入式Linux操作系統。在該系統中加入運用神經網絡進行文字識別的應用程序,對國家863字庫中的前100個字進行識別。先在PC機上進行了10個小時訓練,識別率達到99%。運用得到的神經網絡參數文件,在嵌入式系統中重新復原網絡,進行識別應用,會有同樣的識別率。識別過程在瞬間完成,具有非常好的時效性。該技術可以方便地應用在PDA等嵌入式產品中進行快速高效的文字或者其他用途的模式識別。
結語
人工神經網絡作為一種交叉學科正受到人們的關注,同時也正被廣泛應用于各個領域。在嵌入式領域的應用中,必須要克服時效性不好的缺點。文中提出的將訓練和應用兩部分分離的方法是一個有效的方法。該方法會推動人工神經網絡在嵌入式領域更廣泛地應用,特別是對于時效性、可靠性要求都很高的便攜式設備,具有更廣闊的應用前景。
參考文獻
1袁曾任. 人工神經元網絡及其應用\[M\]. 北京: 清華大學出版社,1999. 60~130
2韓力群. 人工神經網絡理論、設計與應用\[M\]. 北京: 化學工業出版社,2002. 57~94
3王祖林, 等. 新一代嵌入式微處理器龍珠i.MX結構及應用基礎\[M\]. 北京: 北京航空航天大學出版社,2004. 281~291
人工神經網絡在ARM平臺上的應用
更新時間: 2007-06-27 09:25:54來源: 粵嵌教育瀏覽量:1016