金燦
摘要: 介紹了離散Hopfield神經網絡的基本概念;以MATLAB為工具,根據Hopfield神經網絡的相關知識,設計了一個具有聯想記憶功能的離散型Hopfield神經網絡,并給出了設計思路、設計步驟和測試結果。實驗結果表明,通過聯想記憶,對于帶有一定噪聲的數字點陣,Hopfield網絡可以正確地進行識別,且當噪聲強度為0.1時的識別效果較好。
關鍵詞: 離散; Hopfield神經網絡; 聯想記憶; 數字識別
中圖法分類號:TP301.6文獻標識碼:A 文章編號:1006-8228(2012)03-01-03
On numerical recognition using discrete Hopfield neural network
Jin Can1,2
(1. School of Information Science and Engineering, Central South University, Changsha, Hunan 410083, China
2. Modern Education Technology Center, Hunan University of Arts and Science)
Abstract: The author introduces in this paper the basic concept of discrete Hopfield neural network (DHNN), and then designs a discrete Hopfield neural network model with associative memory function using MATLAB according to the related knowledge of DHNN. Specifically, the author presents the idea of designing, designing procedure and the testing results. The simulation shows that DHNN can correctly recognize the numerical dot matrices with noises. When noise intensity is less than 0.1, the recognition ability is satisfactory.
Key words: Discrete; Hopfield neural network; Associative memory; Numeral recognition
1 離散Hopfield神經網絡概述
Hopfield網絡作為一種全連接型的神經網絡,曾經為人工神經網絡的發展開辟了新的研究途徑。它利用與階層性神經網絡不同的結構特征和學習方法,模擬生物神經網絡的記憶機理,獲得了令人滿意的結果。這一網絡及學習算法最初是由美國物理學家J.J Hopfield于1982年首先提出的,故稱為Hopfield神經網絡[1]。
Hopfield最早提出的網絡是二值神經網絡,神經元的輸出值只取1或-1,所以,也稱離散Hopfield神經網絡(DHNN, Discrete Hopfield Neural Network)。在離散Hopfield網絡中,所采用的神經元是二值神經元,因此,所輸出的離散值1和-1分別表示神經元處于激活和抑制狀態[2]。
DHNN是一種單層、輸出為二值的反饋網絡。假設有一個由三個神經元組成的離散Hopfield神經網絡[3],其結構如圖1所示[4]。
在圖1中,第0層僅僅作為網絡的輸入,它不是實際神經元,所以無計算功能;第1層是神經元,執行對輸入信息與權系數的乘積求累加和,并經非線性函數f 處理后產生輸出信息。f是一個簡單的閾值函數,如果神經元的輸出信息大于閾值θ,那么,神經元的輸出取值為1;小于閾值θ,則神經元的輸出取值為-1。
圖1離散Hopfield神經網絡結構
對于二值神經元,它的計算公式如下:
⑴
式中,xj為外部輸入,并且有
⑵
一個DHNN的網絡狀態是輸出神經元信息的集合。對于一個輸出層是n個神經元的網絡,其t時刻的狀態為一個n維變量:
⑶
因為yi(t)(i=1,2,…,n)可以取值為1或-1,故n維向量Y(t)有2n種狀態,即網絡有2n種狀態。
我們考慮DHNN的一般節點狀態。用yj(t)表示第j個神經元,即節點j在時刻t的狀態,則節點的下一個時刻(t+1)的狀態可以求得:
⑷
⑸
如果wij在i-j時等于0,說明一個神經元的輸出并不會反饋到其輸入,這時,DHNN稱為無自反饋的網絡。如果wij在i=j時不等于0,說明一個神經元的輸出會反饋到其輸入端,這時,DHNN稱為有自反饋的網絡[4]。
2 聯想記憶網絡
聯想記憶是神經網絡理論的一個重要組成部分,也是神經網絡用于模式識別與人工智能等領域的一個重要功能。Hopfield網絡模擬了生物神經網絡的記憶功能,也常常被稱為聯想記憶網絡。所謂的聯想記憶也成為了一種基于內容的存取方法,信息被分布于生物記憶的內容之中,而不是某個確定的地址。聯想記憶可分為自聯想與異聯想兩種。Hopfield網絡屬于自聯想網絡。自聯想能將網絡中輸入模式映射到存貯在網絡中一種模式。聯想記憶網絡不僅能將輸入模式映射為自己所存貯的模式,而且還能對具有缺省噪音的輸入模式有一定的容錯能力。
設在學習過程中給聯想記憶網絡存入M個樣本:{Xi}i=1,2,……M。若給聯想記憶網絡加以輸入X'=Xm+V,其中Xm是M個學習樣本之一,V是偏差項,則通過自聯想聯想記憶網絡的輸出為Xm,即使之復原。
Hopfield聯想記憶網絡運行步驟為:
第一步:設定記憶模式。將欲存儲的模式進行編碼,得到取值為1和-1的記憶模式(m 。 第二步:設計網絡的權值。 , 其中wij一旦計算完畢,將保持不變。 第三步:初始化網絡狀態。將欲識別模式設為網絡狀態的初始狀態,為網絡中任意神經元i在t=0時刻的狀態。 第四步:迭代收斂。隨機地更新某一神經元的狀態,反復迭代直至網絡中所有神經元的狀態不變為止。 第五步:網絡輸出。這時的網絡狀態(穩定狀態)即為網絡的輸出y=vi(T)。 3 基于Hopfield神經網絡的數字識別 根據Hopfield神經網絡相關知識,下面設計一個具有聯想記憶功能的離散型Hopfield神經網絡,要求該網絡可以正確識別0~9這10個數字,并且當數字被一定的噪聲干擾后,仍具有較好的識別效果。 3.1 設計思路 假設網絡由0~9共10個穩態構成,每個穩態用10*10的矩陣表示。該矩陣可直觀地描述阿拉伯數字,即把矩陣規分成10*10個單元,有數字軌跡的單元用1表示,空白部分用-1表示,如圖2所示。網絡對這10個穩態即10個數字(點陣)具有聯想記憶的功能,當有帶噪聲的數字點陣輸入到該網絡時,網絡的輸出便可以得到最接近的目標向量(即10個穩態),從而達到正確識別的效果。
圖2數字1和2的點陣圖
3.2 設計步驟
按照上述思路,設計Hopfield網絡需要經過以下幾個步驟,如圖3所示。
[設計數字點陣
(0-9)][創建Hopfield
網絡][產生帶
噪聲的
數字點陣] [數字識
別測試][結果
分析]
圖3Hopfield網絡設計流程圖
3.3 MATLAB實現
利用MATLAB神經網絡工具箱提供的函數,可以按照Hopfield網絡設計流程圖將設計步驟一一在MATLAB環境下實現。
3.3.1 輸入輸出設計
如圖2所示,有數字的部分用1表示,空白部分用-1表示,即可得到0~9的點陣。將數字點陣以圖形的形式呈現出來,如圖4所示。
圖4數字點陣0~9的實現結果
以數字1、2、3、4為例,利用這四個數字點陣構成訓練樣本T:
T=[array_one; array_two; array_three; array_four]
3.3.2 網絡建立
利用newhop( )函數可以方便地創建一個離散型Hopfield神經網絡。
3.3.3 產生帶噪聲的數字點陣
常見的模擬產生帶噪聲數字的方法有兩種:固定噪聲法和隨機噪聲法。
固定噪聲法指的是人工修改的方法改變數字點陣某些位置的值,從而模擬產生帶噪聲的數字點陣。如果希望產生不同的帶噪聲的數字矩陣,需要人工做多次的修改,這無疑是比較麻煩的。
相比較而言,隨機噪聲產生法可以方便地產生各種類型的帶噪聲的數字矩陣。
隨機噪聲產生法是利用產生隨機數的方法來確定需要修改的點陣位置,進而對數字點陣進行修改。由于數字點陣中的值只有1和-1兩種,所以這里的修改就是將1換成-1,-1換成1。
3.3.4 網絡仿真
利用sim()函數可對神經網絡進行仿真,其調用格式為:
4 實驗結果與分析
將帶噪聲的數字點陣輸入已創建好的Hopfield網絡,便可對帶噪聲的數字點陣進行識別,識別結果仍為數字點陣形式。考慮到仿真結果的直觀性和可讀性,程序中的數字點陣將以圖形的形式呈現,如圖5所示。
圖5噪聲強度為0.1時數字識別結果
圖5所示的是噪聲強度為0.1(即10%的數字點陣位置值發生變化)時的識別效果。從圖中可以看出,識別效果較好。進一步的研究發現,隨著噪聲強度的增加識別效果逐漸下降。噪聲強度為0.2和0.3時的識別結果分別如圖6和圖7所示。從圖中不難看出,當噪聲強度為0.3時,Hopfield已經很難對數字進行識別了。
圖6噪聲強度為0.2時的識別結果
圖7噪聲強度為0.3時的識別結果
5 結束語
通過對實驗結果的分析,可以得出結論:對于帶一定噪聲的數字點陣,Hopfield網絡可以正確地進行數字識別。下一步的工作可以將一些優化算法與離散Hopfield神經網絡相結合,使神經網絡的聯想記憶能力更強,應用效果更為突出。
例如,由于一般離散Hopfield神經網絡存在很多偽穩定點[1],網絡很難得到真正的穩態,為此可以將遺傳算法應用到離散Hopfield神經網絡中,利用遺傳算法的全局搜索能力,對Hopfield聯想記憶穩態進行優化,使待聯想的模式跳出偽穩定點,從而使Hopfield網絡在較高信噪比的情況下保持較高的聯想成功率。
參考文獻:
[1] 飛思科產品研發中心.神經網絡與MATLAB 7實現[M] .電子工業出版社,2005.
[2] MATLAB神經網絡與應用(2版)[M].國防工業出版社,2007.
[3] 張良均,曹晶,蔣世忠.神經網絡適用教程[M].機械工業出版社,2008.
[4] 史峰,王小川等.MATLAB神經網絡30個案例分析[M].北京航空航天大學出版社,2010.
[5] 邊肇祺,張學工等.模式識別[M].清華大學出版社,1999.
[6] 張宏林.數字圖像模式識別技術及工程實踐[M].人民郵電出版社,2004.
[7] 鄧麗華,崔志強,張靜.基于人工神經網絡的手寫體數字識別[J].三峽大學學報,2005.6:255~256
[8] 孫兆林.MATLAB6.x 圖像處理[M].清華大學出版社,2002.
[9] 付德勝,張學勇.基于Hopfield神經網絡噪聲數字的識別[J].通信技術,Vol.43,No. 01,2010:126~129
[10] 孟祥武,程虎.基于任意給定訓練集的離散型Hopfield網學習算法[J].軟件學報,1998.9(03):213~216
[11] 陳文宇,吳躍.Hopfield神經網絡參數設置[J].計算機工程與應用,
2006.31.
[12] TALAVAN.YANEZ P M.Parameter setting of the Hopfield network applied to TSP[J].2002
[13] 張濤濤等.基于Hopfield神經網絡的WSN分布式拓撲[J].計算機與現代化,2010.1:63~65
[14] 姜惠蘭,孔雅明.異聯想記憶Hopfield神經網絡的模型、算法及性能[J].系統工程理論與實踐,2005.5:101~104