預備知識算法
先來講說前饋型神經網絡與反饋型神經網絡的區別:網絡
前饋型神經網絡不考慮輸入和輸出在時間上的滯後性,只考慮輸入到輸出的映射關係,反饋型神經網絡則考慮了輸入到輸出之間的延遲異步
再來講說hebb學習規則:函數
兩個神經元同時興奮或抑制,那麼它們的鏈接權值將增大,若是兩神經元不是同時興奮或抑制,那麼它們的鏈接權值將減少學習
數學表達式爲:spa
Wnew=Wold+ηpTtblog
若是初始權值爲零矩陣,那麼同步
W=ηpTt數學
開始結束hopfield神經網絡,主要講離散hopfield神經網絡:神經網絡
hopfield神經網絡系統的穩定性主要經過能量函數進行分析,在知足必定條件下,某個特定的能量函數在網絡的運行過程當中不斷減少,直到達到平衡狀態
hopfield神經網絡的能量函數定義爲:
E=-1/2X(t)TWX(t)+X(t)TT
下面來證實網絡的穩定性:
ΔE=E(t+1)-E(t)-------1
ΔX=X(t+1)-X(t)-----2
將能量函數和2帶入1式得:
ΔE=E(t+1)-E(t)
=-1/2X(t+1)TWX(t+1)+X(t+1)TT+1/2X(t)TWX(t)-X(t)TT
=-1/2(X(t)+ΔX)TW(X(t)+ΔX)+(X(t)+ΔX)TT+1/2X(t)TWX(t)-X(t)TT
=-ΔXT(t)[WX(t)-T]-1/2ΔXT(t)WΔX(t)
hopfield神經網絡有兩種運行方式,同步運行方式和異步運行方式:
異步運行方式:只有一個神經元的狀態改變,其餘神經元的狀態不變
xi(t+1)=sgn(Uj(t)) if i=j
同步運行方式:全部的神經元的狀態都改變
X(t+1)=sgn(U(t)
下面先討論異步方式運行:
ΔX(t)=[0,0,0,0,...,Δxi(t),0,0,0]
因此
ΔE=-Δxi(t)[∑j=1 to nwijxj-Ti]-1/2Δxi(t)2wij
因爲wij=0
ΔE=-Δxi(t)[∑j=1 to nwijxj-Ti]
==-Δxj(t) Uj(t)
狀況 a xi(t)=0 xi(t+1)=1 Δx(t)=1 因此Uj(t)>0 ΔE<0
狀況 b xi(t)=1 xi(t+1)=0 Δx(t)=-1 因此Uj(t)<0 ΔE<0
狀況 c xi(t)=xi(t+1) Δx(t)=0 因此Uj(t)=0 ΔE=0
因此 ΔE<=0
在異步運行狀況下,網絡總能收斂到平衡的狀態
同步狀況下:
ΔE=-Δxi(t)[∑j=1 to nwijxj-Ti]-1/2Δxi(t)2wij
=-∑i=1 to nΔxi(t)Uj(t)-1/2Δxi(t)2wij
上式前部分已經證實小於等於0,後部分只要W知足非負定矩陣,也小於等於0
因此在同步狀況下,只要矩陣知足是非負定矩陣,網絡也能收斂到一個平衡狀態
Hopfield是反饋型神經網絡,上一時段的輸出反饋給下一時段的輸入,各個神經元的輸出都收其餘神經元的影響,下圖是它的拓撲結構:
第j個神經元的加權和:
Uj(t)=∑i=1 to nWijxi(t)-θj
故該神經元下一時刻的輸出狀態:
xj(t+1)=sgn(Uj(t))
hopfield神經網絡的權值學習採用hebb學習規則,下面開始hopfield算法的學習,步驟以下:
1 輸入須要記憶的樣本P(n維正交向量)將其初始化爲網絡的初始狀態X=P,設置迭代步數,並計算網絡的權值W
W=∑i=1 to n[PTP-I] 由於wij=0 因此減去單位矩陣
2 進行迭代計算
xi(t+1)=sign((Uj(t))
3 當達到迭代步數或網絡的狀態不在改變時,網絡運行結束,不然繼續迭代