導航:首頁 > 源碼編譯 > hopfield網路演算法

hopfield網路演算法

發布時間:2024-09-06 19:01:07

A. Hopfield神經網路

Hopfield神經網路(Hopfield Neural Network,簡稱 HNN),是美國加州理工學院物理學家Hopfield教授1982年提出的一種反饋型神經網路,信號不但能向前,還能向後傳遞(輸出信號又反饋回來變成輸入信號。而前面所介紹的BP網路是一種前饋網路,信號只能向前傳遞)。他在Hopfield神經網路中引入了「能量函數」概念,使網路的運行穩定性的判斷有了可靠依據。Hopfield神經網路的權值不是經過反復學習獲得的,而是按照一定規則計算出來的,一經確定就不再改變,而Hopfield神經網路的狀態(輸入、輸出信號)會在運行過程中不斷更新,網路演變到穩態時各神經元的狀態便是問題的解。

1985年,Hopfield和Tank研製了電子線路來模擬Hopfield網路,較好地解決了優化組合問題中著名的TSP(旅行商)問題,找到了最佳解的近似解,為神經網路的復興建立了不可磨滅的功勞。

對於地球物理反演這種最優化問題,可以很方便地用Hopfield網路來實現。反演的目標函數等於Hopfield網路的「能量函數」,網路的狀態(輸入、輸出信號)就是模型的參數,網路演變到穩態時各神經元的輸入輸出值便是反演問題的解。

Hopfield神經網路分為離散型和連續型兩種網路模型,分別記為DHNN(Discrete Hopfield Neural Network)和CHNN(Continues Hopfield Neural Network)。

在前饋型網路中無論是離散的還是連續的,一般均不考慮輸入與輸出之間在時間上的滯後性,而只表達兩者之間的映射關系。但在連續Hopfield神經網路中,考慮了輸出與輸入之間的延遲因素,因此需要用微分方程或差分方程來描述網路的動態數學模型。

8.5.4.1 離散Hopfield神經網路

離散Hopfield神經網路的拓撲結構如圖8.12所示。這是一種單層全反饋網路,共有n個神經元。圖8.12的特點是任意一個神經元的輸出xi只能是0或1,均通過連接權wij反饋至所有神經元j作為它的輸入xj。也就是說,每個神經元都通過連接權接收所有其他神經元輸出反饋的信息,這樣每一個神經元的輸出都受其他所有神經元輸出的控制,從而每個神經元的輸出相互制約。每個神經元均設一個閥值Ti,以反映對輸入雜訊的控制。

圖8.12 離散Hopfield神經網路的拓撲結構[8]

8.5.4.1.1 網路的狀態

離散Hopfield神經網路任意一個神經元的輸出xj稱為網路的狀態,它只能是0或1。變化規律由下式規定:

xj=f(netj) j=1,2,…,n(8.33)

f( )為轉移函數,離散 Hopfield神經網路的轉移函數常用符號函數表示:

地球物理反演教程

其中netj為凈輸入:

地球物理反演教程

對離散Hopfield神經網路,一般有

wij=0,wij=wji (8.36)

這說明神經元沒有自反饋,兩個神經元的相互控制權值相同。

離散Hopfield神經網路穩定時,每個神經元的狀態都不再改變。此時的穩定狀態就是網路的輸出,記為

地球物理反演教程

8.5.4.1.2 網路的非同步工作方式

它是一種串列方式,網路運行時每次只改變一個神經元的狀態,其他神經元的狀態保持不變。

8.5.4.1.3 網路的同步工作方式

它是一種並行同步工作方式,所有神經元同時調整狀態。

8.5.4.1.4 網路的吸引子

網路達到穩定狀態時的輸出X,稱為網路的吸引子。

8.5.4.1.5 網路的能量函數

網路的能量函數定義為

地球物理反演教程

以上是矩陣形式,考慮無自反饋的具體展開形式為

地球物理反演教程

當網路收斂到穩定狀態時,有

ΔE(t)=E(t+1)-E(t)=0 (8.40)

或者說:

地球物理反演教程

理論證明了如下兩個定理[8]:

定理1.對於DHNN,若按非同步方式調整網路狀態,且連接權矩陣W為對稱陣,則對任意初始狀態,網路都能最終收斂到一個吸引子。

定理2.對於DHNN,若按同步方式調整網路狀態,且連接權矩陣W為非負定對稱陣,則對任意初始狀態,網路都能最終收斂到一個吸引子。

8.5.4.1.6 利用離散Hopfield神經網路進行反演

在地球物理線性反演中,設有如下目標函數:

地球物理反演教程

對比式(8.38)和式(8.42)發現它們在形式上有很多相似之處。王家映的《地球物理反演理論》一書中,直接用式(8.42)和式(8.38)類比,公式顯得復雜。本書設立一個新的目標函數ϕ,公式將會變得簡潔得多:

地球物理反演教程

再對比式(8.38)和式(8.43),發現它們完全一樣,只要設:

X(t)=m,W=GTG,T=GTd (8.44)

注意:式(8.43)的目標函數ϕ的極大值解就是原來目標函數φ極小值的解,它們是同解的。

如果待反演的模型參數是離散的0或1值,那麼可以直接應用離散Hopfield神經網路進行反演。但是一般它們都是連續的數值,所以還要將模型參數表示為二進制[1]:

地球物理反演教程

其中:Bij=0或1為二進制數;D和U為整數,取決於模型參數的大小和精度。這樣第i個模型參數就用Bij表示為了二進制數。將式(8.45)代入目標函數式(8.43)後再與離散Hopfield神經網路的能量函數進行對比,確立新的等價關系後,就可以進行反演了。

這個新的等價關系式可以參見王家映的《地球物理反演理論》[1]一書。

反演的過程大致如下:

(1)根據模型參數的大小范圍和精度確定D和U,將初始輸入模型參數變為二進制數。設立一個擬合精度標准,如相對均方差ε,設定一個最大迭代次數N(所有神經元的輸出都修改一次稱為一次迭代)。

(2)利用數據方程的G矩陣(在一般情況下需用偏導數矩陣獲得)計算網路的權值和閥值。

(3)將二進制初始模型參數輸入網路並運行網路。

(4)把每次迭代網路輸出值變為十進制模型參數,進行正演計算。如果擬合滿足精度ε,則停止網路運行並輸出反演結果。否則重復(2)~(4)步直到滿足精度或達到最多迭代次數N為止。

在一般情況下,地球物理數據方程的G矩陣是無法用解析式寫出的,需要用偏導數矩陣獲得,它是依賴於輸入參數的,因此網路的每次迭代都要重新計算偏導數矩陣。這個計算量是很大的。因此他的反演過程和最小二乘法相似。此外,用Hopfield神經網路進行反演同樣有可能陷入局部極值點(吸引子)。因此同樣受初始模型的影響,需要盡量讓初始模型接近真實模型。

8.5.4.2 連續Hopfield神經網路(CHNN)[8]

1984年,Hopfield把離散Hopfield神經網路發展為連續Hopfield神經網路。但所有神經元都同步工作,各輸入輸出量為隨時間變化的連續的模擬量,這就使得CHNN比DHNN在信息處理的並行性、實時性方面更接近實際的生物神經網路工作機理。因此利用CHNN進行地球物理反演更加方便。

CHNN可以用常系數微分方程來描述,但用模擬電子線路來描述,則更加形象直觀,易於理解。圖8.13為連續Hopfield神經網路的拓撲結構[8]

圖8.13 連續Hopfield神經網路的拓撲結構[8]

圖8.13中每個神經元用一個運算放大器模擬,神經元的輸入輸出用放大器的輸入輸出電壓表示,連接權用電導表示。每個放大器有一個正向輸出和一個反向輸出,分別表示興奮和抑制。每個神經元還有一個用於設置激活電平的外界輸入偏置電流作為閥值。

這里由於篇幅關系不再累述。感興趣的讀者可以參考其他文獻。

B. hopfield神經網路和遺傳演算法的不同點

兩者不同的地方非常多吖,或者說,兩者根本就沒有多少相同的。
hopfield網路,基本上是設置了一個機制,使每次能量都下跌。
而遺傳演算法,則非常的不同,是種群搜索的機制,先初始化一堆的解,然後每次按概述讓優秀解進入下一代(注意到,有可能有不優秀的也可以進入,而hopfield是每一代能量都會下跌),下一代再通過交叉和變異等機制,產生新的一代。由於每次競選下一代都會讓優秀的更大概率通過,所以按概率,每一代都會比上一代更優秀 ,就這樣,最後進化到中夠優秀的一代。
兩者同是通過數次跌代,最後趨於穩定。
但兩者不同,遺傳演算法是每一代是一個種群,而hopfield是一個個體。遺傳演算法每一代允許更差的情況,有助於跳出局部最成。而hopfield每次能量都是下跌的,有貪婪演算法的味道 ,一般不能跳出局部最優。
這樣。
《神經網路之家》

C. Hopfield神經網路用python實現講解

神經網路結構具有以下三個特點:

神經元之間全連接,並且為單層神經網路。

每個神經元既是輸入又是輸出,導致得到的權重矩陣相對稱,故可節約計算量。

在輸入的激勵下,其輸出會產生不斷的狀態變化,這個反饋過程會一直反復進行。假如Hopfield神經網路是一個收斂的穩定網路,則這個反饋與迭代的計算過程所產生的變化越來越小,一旦達到了穩定的平衡狀態,Hopfield網路就會輸出一個穩定的恆值。

Hopfield網路可以儲存一組平衡點,使得當給定網路一組初始狀態時,網路通過自行運行而最終收斂於這個設計的平衡點上。當然,根據熱力學上,平衡狀態分為stable state和metastable state, 這兩種狀態在網路的收斂過程中都是非常可能的。

為遞歸型網路,t時刻的狀態與t-1時刻的輸出狀態有關。之後的神經元更新過程也採用的是非同步更新法(Asynchronous)。

Hopfield神經網路用python實現

D. 神經網路——BP演算法

對於初學者來說,了解了一個演算法的重要意義,往往會引起他對演算法本身的重視。BP(Back Propagation,後向傳播)算陸襲法,具有非凡的歷史意義和重大的現實意義。

1969年,作為人工神經網路創始人的明斯基(Marrin M insky)和佩珀特(Seymour Papert)合作出版了《感知器》一書,論證了簡單的線性感知器功能有限,不能解決如「異或」(XOR )這樣的基本問題,而且對多層網路也持悲觀態度。這些論點給神經網路研究以沉重的打擊,很多科學家紛紛離開這一領域,神經網路的研究走向長達10年的低潮時期。[1]

1974年哈佛大學的Paul Werbos發明BP演算法時,正值神經外網路低潮期,並未受到應有的重視。[2]

1983年,加州理工學院的物理學家John Hopfield利用神經網路,在旅行商這個NP完全問題的求解上獲得當時最好成績,引起了轟動[2]。然而,Hopfield的研究成果仍未能指出明斯基等人論點的錯誤所在,要推動神培判經網路研究的全面開展必須直接解除對感知器——多層網路演算法的疑慮。[1]

真正打破明斯基冰封魔咒的是,David Rumelhart等學者出版的《平行分布處理:認知的微觀結構探索》一書。書中完整地提出了BP演算法,系統地解決了多層網路中隱單元連接權的學習問題,並在數學上給出了完整的推導。這是神經網路發展史上的里程碑,BP演算法迅速走紅,掀起了神經網路的第二次高潮。[1,2]

因此,BP演算法的歷史意義:明確地否定了明斯基等人的錯誤觀點,對神經網路第二次高潮具有決定性意義。

這一點是說BP演算法在神經網路領域中的地位和意義。

BP演算法是迄今最成功的神經網路學習演算法,現實任務中使用神經網路時,大多是在使用BP演算法進行訓練[2],包括最近炙手可熱的深度學習概念下的卷積神經網路(CNNs)。

BP神經網路是這樣一種神經網路模型,它是由一個輸入層、一個輸出層和一個或多個隱層構成,它的激活函數採用sigmoid函數,採用BP演算法訓練的多層前饋神經網路。

BP演算法全稱叫作誤差反向傳播(error Back Propagation,或早中兄者也叫作誤差逆傳播)演算法。其演算法基本思想為:在2.1所述的前饋網路中,輸入信號經輸入層輸入,通過隱層計算由輸出層輸出,輸出值與標記值比較,若有誤差,將誤差反向由輸出層向輸入層傳播,在這個過程中,利用梯度下降演算法對神經元權值進行調整。

BP演算法中核心的數學工具就是微積分的 鏈式求導法則 。

BP演算法的缺點,首當其沖就是局部極小值問題。

BP演算法本質上是梯度下降,而它所要優化的目標函數又非常復雜,這使得BP演算法效率低下。

[1]、《BP演算法的哲學思考》,成素梅、郝中華著

[2]、《機器學習》,周志華著

[3]、 Deep Learning論文筆記之(四)CNN卷積神經網路推導和實現

2016-05-13 第一次發布

2016-06-04 較大幅度修改,完善推導過程,修改文章名

2016-07-23 修改了公式推導中的一個錯誤,修改了一個表述錯誤

E. 神經網路演算法原理

一共有四種演算法及原理,如下所示:

1、自適應諧振理論(ART)網路

自適應諧振理論(ART)網路具有不同的方案。一個ART-1網路含有兩層一個輸入層和一個輸出層。這兩層完全互連,該連接沿著正向(自底向上)和反饋(自頂向下)兩個方向進行。

2、學習矢量量化(LVQ)網路

學習矢量量化(LVQ)網路,它由三層神經元組成,即輸入轉換層、隱含層和輸出層。該網路在輸入層與隱含層之間為完全連接,而在隱含層與輸出層之間為部分連接,每個輸出神經元與隱含神經元的不同組相連接。

3、Kohonen網路

Kohonen網路或自組織特徵映射網路含有兩層,一個輸入緩沖層用於接收輸入模式,另一個為輸出層,輸出層的神經元一般按正則二維陣列排列,每個輸出神經元連接至所有輸入神經元。連接權值形成與已知輸出神經元相連的參考矢量的分量。

4、Hopfield網路

Hopfield網路是一種典型的遞歸網路,這種網路通常只接受二進制輸入(0或1)以及雙極輸入(+1或-1)。它含有一個單層神經元,每個神經元與所有其他神經元連接,形成遞歸結構。

(5)hopfield網路演算法擴展閱讀:

人工神經網路演算法的歷史背景:

該演算法系統是 20 世紀 40 年代後出現的。它是由眾多的神經元可調的連接權值連接而成,具有大規模並行處理、分布式信息存儲、良好的自組織自學習能力等特點。

BP演算法又稱為誤差反向傳播演算法,是人工神經網路中的一種監督式的學習演算法。BP 神經網路演算法在理論上可以逼近任意函數,基本的結構由非線性變化單元組成,具有很強的非線性映射能力。

而且網路的中間層數、各層的處理單元數及網路的學習系數等參數可根據具體情況設定,靈活性很大,在優化、信號處理與模式識別、智能控制、故障診斷等許 多領域都有著廣泛的應用前景。

閱讀全文

與hopfield網路演算法相關的資料

熱點內容
安卓路由表怎麼看 瀏覽:74
10個小孩分糖果python 瀏覽:823
安卓app小紅點怎麼取消 瀏覽:286
馬哥linux面授 瀏覽:768
2345程序員 瀏覽:371
怎麼開啟網速顯示安卓 瀏覽:204
索尼950app怎麼樣 瀏覽:391
計算機畢設論文源碼 瀏覽:148
小米手機怎麼下載易媒體App 瀏覽:191
還原系統設計可以怎樣清理文件夾 瀏覽:670
北京時間校準伺服器雲伺服器 瀏覽:844
pythonexcel數據計算 瀏覽:49
內醫附院黨建APP怎麼下載 瀏覽:356
榮耀v20刷加密門禁卡 瀏覽:329
app緩沖視頻怎麼保存在手機 瀏覽:433
廣度優先演算法c語言 瀏覽:680
提高程序員競爭力 瀏覽:108
nfc可以開加密門卡嗎 瀏覽:675
如何知道網頁使用的伺服器是什麼 瀏覽:224
單片機接反電源會燒嗎 瀏覽:287