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