講的什么
這部分主要對 Hopfield 網絡作一大概的介紹。寫了其模型結構、能量函數和網絡的動作方式。主要參考了網上搜到的一些相關 PPT。
概述
早在 1982 年,Hopfield 發表的文章:【Neural networks and physical systems with emergent collective computational abilities】 中就提出了一種基於能量的模型(Energy Based Model,EBM)——可用作聯想存儲的互連網絡,這算是現在人工神經網絡的早期雛形,我們稱該模型為 Hopfield 網絡。
反饋網絡
Hopfield 網絡被認為是一種最典型的全反饋網絡,可以看作一種非線性的動力學系統。反饋網絡能夠表現出非線性動力學系統的動態特性。它所具有的主要特性為以下兩點:
- 網絡系統具有若干個穩定狀態。當網絡從某一初始狀態開始運動,網絡系統總可以收斂到某一個穩定的平衡狀態
- 系統穩定的平衡狀態可以通過設計網絡的權值而被存儲到網絡中
基於能量的模型
基於能量的模型是一種具有普適意義的模型,統計力學的結論表明,任何概率分布都可以轉變成基於能量的模型。EBM 通過對變量的配置施加一個有范圍限制的能量,即對每一個變量建立一個能量公式,來捕獲這些變量之間的依賴關系。EBM 有兩個主要的任務,
- 推斷(Inference),它主要是在給定觀察變量的情況,找到使能量值最小的那些隱變量的配置
- 學習(Learning),它主要是尋找一個恰當的能量函數,使得觀察變量的能量比隱變量的能量低
Hopfield 網絡功能
Hopfield 神經網絡的提出就是與其實際應用密切相關。其主要功能在以下兩個方面。
- 離散 Hopfield 網絡主要用於聯想記憶。輸入-輸出模式的各元素之間,並不存在一對一的映射關系,輸入-輸出模式的維數也不要求相同:聯想記憶時,只給出輸入模式部分信息,就能聯想出完整的輸出模式。即具有容錯性
- 連續Hopfield 網絡主要用於優化計算功能。優化計算在實際問題中有廣泛的應用。如經典的 TSP 問題,工業生產和交通運輸中的調度問題等。
模型結構
根據其激活函數的不同,Hopfield 神經網絡有兩種:離散 Hopfield 網絡(Discrete Hopfield Neural Network,DHNN)和連續Hopfield 網絡(Continues Hopfield Neural Network,CHNN)。
離散 Hopfield 網絡
離散的 Hopfield 網絡是二值神經網絡,該模型的處理單元由神經元構成,每個神經元由兩種狀態:激活或者抑制狀態,分別用 1 和 0 表示。神經元之間通過賦有權值的有向線段連接,通過求取全局狀態的最小能量來訓練模型。
以一個較簡單的網絡說明,如下圖
圖 1: 三神經元構成的 Hopfield 網絡
它由三個神經元構成,圖中的第 0 層僅僅是作為網絡的輸入,所以不把它當作實際的神經元,無計算功能,第 1 層是實際的神經元。設 \(y_i\) 表示第 \(i\) 個神經元的取值,\(x_i\) 表示第 \(i\) 個神經元的外部輸入,可以理解為額外施加在神經元 \(i\) 上的固定偏置,功能相當於第 \(i\) 個神經元的閾值(threshold),\(W_{i,j}\) 表示第 \(j\) 個神經元到第 \(i\) 個神經元的連接權重。該簡單模型的計算方式如下
\begin{align}
\begin{matrix}
y_i \rightarrow 1\\
y_i \rightarrow 0
\end{matrix} \quad \text{if} \quad \sum_{j \neq i}W_{ij}y_j+x_i \quad
\begin{matrix}
> 0 \\
< 0
\end{matrix}
\end{align}
其激活函數可以看成符號函數,即 \(g=\mathrm{sgn}\).
對於一個離散的 Hopfield 網絡,其網絡狀態是輸出神經元信息的集合。對於一個輸出層是 \(n\) 個神經元的網絡,則其 \(t\) 時刻的狀態為一個 \(n\) 維向量:
\begin{align}
Y(t)=[y_1(t),y_2(t),\cdots,y_n(t)]^T
\end{align}
因為每個神經元有兩個取值 1 或 0,故而網絡共有 \(2^n\) 個狀態。對於圖 1 的 Hopfield 網絡,它的輸出層就是三位二進制數;每一個三位二進制數就是一種網絡狀態,從而共有 8 個網絡狀態。這些網絡狀態如圖 2 所示。在圖中,立方體的每一個頂角表示一種網絡狀態。
圖 2:三神經元 Hopfield 網絡輸出狀態
如果 Hopfield 網絡是一個穩定網絡,那么在網絡的輸入端加入一個輸入向量,則網絡的狀態會產生變化,也就是從超立方體的一個頂角轉移向另一個頂角,並且最終穩定於一個特定的頂角。
再提一下網絡的穩定性。給定一個 DHNN 的目前狀態 \(Y(t)\), 如果對於任何 \(\Delta t\), 當神經網絡從 \(t=0\) 開始,有初始狀態 \(Y(0)\). 經過有限時刻 \(t\), 有 \(Y(t+\Delta t)=Y(t)\), 則稱網絡是穩定的。 Coben 和 Grossberg 在 1983 年給出了關於 Hopfield 網絡穩定的充分條件,他們指出:無自反饋的權重系數對稱 Hopfield 網絡是穩定的,即如果 Hopfield 網絡的權系數矩陣 \(W\)是一個對稱矩陣,並且,對角線元素為 0(\(W_{i,i}=0\)).則這個網絡是穩定的。需要注意的是這只是一個充分條件。
連續 Hopfield 網絡
連續 Hopfield 網絡(CHNN)拓撲結構和 DHNN 結構相同,不同之處在於其激活函數 \(g\) 不是階躍函數,而是 S 形的連續函數,一般取 sigmoid 函數,即
\begin{align}
g(u)=\frac{1}{1+e^{-u}}
\end{align}
具體地暫時不講了。
能量函數
關於能量函數怎么來的,我也解釋不清楚,參考知乎:神經網絡中的能量函數是如何定義的?
對 Hopfield 網絡引入一個李亞普諾夫(Lyapunov) 函數,即所謂能量函數。Hopfield 在論文中給了一個特例的能量函數形式,即 \(W_{i,j}=W_{j,i}\), 節點閾值 \(U_i=0\), 則能量函數表達式為
\begin{align}
E=-\frac 12 {\sum\sum}_{i \neq j} W_{i,j}y_i y_j
\end{align}
該函數為可能有很多極小點的復雜圖像。由於 \(\Delta y_i\) 引起的能量的變化 \(\Delta E\) 為
\begin{align}
\Delta E=- \frac 12\Delta y_i \sum_{j\neq i}W_{i,j}y_j
\end{align}
由於節點的二值性,\(\Delta y_i=\pm 1\) 時,\(\Delta E\) 才可能不為零,如果 \(\sum_{i\neq j}W_{i,j}y_j>0\), 則 \(\Delta y_i=1\),如果 \(\sum_{i\neq j}W_{i,j}y_j<0\), 則 \(\Delta y_i=-1\), 可見始終成立 \(\Delta E \leqslant 0\), 即網絡的能量函數是減函數。
這時假設了對稱性,實際上式 (4) 的能量變化就不再是式 (5) 的形式了,它可以被拆分為兩項
\begin{align}
\Delta E=- \frac 12 \Delta y_i \sum_{j\neq i}W_{i,j}y_j-\frac12 \Delta y_i \sum_{j\neq i}W_{j,i}y_j
\end{align}
注意此時 \(W\) 的下標不同。其中第一項仍是和對稱時相同,即恆為負的,如果 \(W_{i.j}=W_{j,i}\),另一項等同於第一項,否則的話,就是“隨機的”,取決於 \(W\) 初始化的方式。
Hopfield 網絡運作方式
反饋網絡有兩種基本的工作方式:串行異步和並行同步方式。
- 串行異步方式:在某一時刻只有一個神經元調整其狀態,其余輸出不變。由隨機或預定順序來選擇該神經元
\begin{align}
y_i(t+1)=\begin{cases}
g(net_i(t)) ,\quad i=j \\
y_i(t),\quad i \neq j
\end{cases}
\end{align}
其中 \(g\) 表示激活函數,\(net_i\) 表示第 \(i\) 個神經元的輸入。每次神經元調整其狀態時,根據其當前的輸入值的大小決定下一時刻的狀態,因此其狀態可能發生改變,也可能保持原狀。下次調整其他神經元狀態時,本次的調整結果即在下一個神經元的輸入中發揮作用 - 並行同步方式:部分或者所有神經元同時調整其狀態。即
\begin{align}
y_i(t+1)= g(net_i(t))
\end{align}
和異步工作方式相同,每次神經元在調整狀態時,根據其當前的輸入值的大小決定下一時刻的狀態。下次調整其它神經元狀態時,本次的調整結果即在下一個神經元的輸入中發揮作用。網絡穩定時,每個神經元的狀態都不再改變,此時的穩定狀態就是網絡的輸出。
不管采取什么工作方式,基本運行步驟是類似的,以串行工作方式為例:
- 第一步:對網絡進行初始化
- 第二步:從網絡中隨機選取一個神經元
- 第三步:求出該神經元 \(i\) 的輸出
- 第四步:求出該神經元經激活函數處理后的輸出,此時網絡中的其他神經元的輸出保持不變
- 第五步:判斷網絡是否達到穩定狀態,若達到穩定狀態或滿足給定條件則結束;否則轉到第二步繼續運行
然后呢
下一部分講學習規則,然后舉個計算的例子。
