預備知識
先來說說前饋型神經網絡與反饋型神經網絡的區別:
前饋型神經網絡不考慮輸入和輸出在時間上的滯后性,只考慮輸入到輸出的映射關系,反饋型神經網絡則考慮了輸入到輸出之間的延遲
再來說說hebb學習規則:
兩個神經元同時興奮或抑制,那么它們的連接權值將增大,如果兩神經元不是同時興奮或抑制,那么它們的連接權值將減小
數學表達式為:
Wnew=Wold+ηpTt
如果初始權值為零矩陣,那么
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 當達到迭代步數或網絡的狀態不在改變時,網絡運行結束,否則繼續迭代