hopfieid網路是j.j.hopfield在20世紀80年代提出來的。他指出,如果神經網路的突觸聯絡一是有效對稱的,那麼系統必將演化到個固定的有序狀態。於是他引入能量函式的概念,表明如果突觸聯絡是對稱的,則網路的動態演化過程將達到能量最小的穩定狀態。 利用這一特一性,hopfield網路可完成些諸如最優化和聯想記憶的功能。
hopfieid網路分為離散型和連續型兩種,都是對稱互連網路(wij
=wji
w_=w_
wij=w
ji)根據節點狀態的取值來劃分是離散型的還是連續型。離散網路節點取{-1, +1}或{0, +1},連續網路節點狀態在某個隨機區間內連續取值。
神經元網路主要有兩種執行方式
一種是學習執行方式,即通過學習調整連線權的值來達到模式記憶與識別的目的。
另一種就是即將要介紹的hopfield網路所採用的執行方式:
在hopfield網路中,各連線權的值主要是設計出來的,而不是通過網路執行而學到的,網路的學習過程只能對它進行微小的調整,所以連線權的值在網路執行過程中是基本固定的,網路的執行只是通過按一定的規則計算與更新網路的狀態,以求達到網路的一種穩定狀態,如果將這種穩定狀態設計在網路能量函式極小值的點上,那麼,就可以用這種網路來記憶一些需要記憶的模式或得到某些問題的最優解。
hopfield網路執行規則主要有以下幾步:
① 從網路中隨機選出乙個神經元 i;
② 求出神經元 i 的所有輸入的加權總和:
③ 計算神經元 i 在第 t+1 時刻的輸出值, 即 ui(
t+1)
u_i(t+1)
ui(t+
1);④ u
iu_i
ui 以外的其他所有輸出值保持不變,
u j(
t+1)
=uj(
t)j=
1,2,
3,..
.,nj
≠i
\begin &u_j(t+1)=u_j(t)\\ &j=1,2,3,...,n\quad j\ne i \end
uj(t
+1)=
uj(
t)j=
1,2,
3,..
.,nj
=i
⑤ 返回到第一步, 直至網路進入穩定狀態。
按以上執行規則, 在滿足以下兩個條件時, hopfield學習演算法總是收斂的。
a. 網路的連線權矩陣無自連線並且具有對稱性:
w ii
=0i=
1,2,
...,
nwij
=wji
i,j=
1,2,
...,
n\begin &w_=0\quad i=1,2,...,n\\ &w_=w_\quad i,j=1,2,...,n \end
wii=
0i=1
,2,.
..,n
wij
=wji
i,j
=1,2
,...
,nb. 網路中各神經元以非同步或序列方式, 根據執行規則改變其狀態: 當某個神經元改變狀態時, 其他所有神經元保持原狀態不變。
hopfield網路是一種具有反饋性質的網路, 而反饋網路的乙個個主要特點就是它應具有穩定狀態。當網路結構滿足上面所指出的兩個條件時, 按上述工作執行規則反覆更新狀態, 當達到一定程度後, 各輸出不再變化, 網路達到穩定狀態, 即 ui(
t+1)
=ui(
t)=s
gn(h
i)
u_i(t+1)=u_i(t)=sgn(h_i)
ui(t+
1)=u
i(t
)=sg
n(hi
)。 在實際應用中必須執行許多次才能達到穩定狀態。 網路執行達到穩定狀態的速度, 以及網路的穩定程度主要取決於網路的 「能量函式 」 。
Hopfield神經網路
import numpy as np import neurolab as nl import matplotlib.pyplot as plt 0 1 2 16 8 target np.array 0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,1,0,0,0,...
hopfield神經網路
初次接觸hopfield神經網路,有一些約束沒有注意,導致生出很多愚蠢的想法。一 hopfield神經網路其實沒有層的概念,所有的神經元全連線就形成了乙個hopdield神經網路的基本結構。既然是全連線,那麼誰先誰後 誰左誰右就沒有意義了,反正都是互聯的。二 hopfield神經網路既然沒有層的概念...
Hopfield神經網路
多層神經網路 模式識別 相互連線型網路 通過聯想記憶去除資料中的雜訊 1982年提出的hopfield神經網路是最典型的相互鏈結型網路。當輸入模式為某種狀態時,輸出端要給出與之相應的輸出模式。如果輸入模式與輸出模式一致,稱為自聯想記憶,否則,稱為異聯想記憶。網路結構上,hopfield神經網路是一種...