Hopfield 網絡(下)


講的什么

這部分主要講離散的 Hopfield 網絡權值的計算方法,以及網絡記憶容量。主要參考了網上搜到的一些相關 PPT。

 


DHNN 的訓練方法

常見的學習方法中有海布法,還有 \(\delta\) 學習規則方法、偽逆法、正交化的權值設計方法等,正交化的權值設計方法是 Matlab 中庫函數 solvehop.m 中采用的,該方法的具體介紹和證明可參考論文:【人工神經網絡的數學模型建立及成礦預測 BP 網絡的實現】。我們着重介紹一下海布法。

 

海布調節規則

在 DHNN 的網絡訓練過程中,運用的是海布調節規則:當神經元輸入與輸出節點的狀態相同(即同時興奮或抑制)時,從第 \(j\) 個到第 \(i\) 個神經元之間的連接強度則增強,否則則減弱。海布(Hebb)法則是一種無指導的死記式學習算法。學習的目的:對具有 \(q\) 個不同的輸入樣本組 \(P_{n\times q}=[p^1,p^2,\cdots,p^q]\),希望通過調節計算有限的權值矩陣 \(W\),使得當每一組輸入樣本 \(p^k,k=1,2,\cdots,q\),作為系統的初始值,經過網絡循環,系統能夠收斂到各自輸入樣本矢量本身。

以下默認神經元取值為 -1 或 1,對 0 和 1 的情況只有稍許不同。
\(k=1\) 時,對於第 \(i\) 個神經元,由海布學習規則可得網絡權值對輸入矢量的學習關系式為
\begin{align}
W_{i,j}=\alpha p_j^1p_i^1,\quad \alpha>0,\quad i=1,2,\cdots,n\quad j=1,2,\cdots,n
\end{align}
\(n\) 為神經元個數。實際學習規則的運用中,一般取 \(\alpha=1\)\(1/n\).

海布規則是合理的,由於第能夠保證改變權值后樣本的輸出仍為樣本矢量本身。不妨取 \(\alpha=1\),則有
\begin{align}
a^1_i=\mathrm{sgn}(\sum_{j=1}^n W_{i,j}p_j^1)=\mathrm{sgn}(\sum_{j=1}^n p_j^1p_i^1p_j^1)=\mathrm{sgn}(p_i^1)=p_i^1
\end{align}

根據海布規則的權值設計方法,當 \(k\) 由 1 增加到 2,直至 \(q\) 時,則是在原有已設計出的權值的基礎上,增加一個新量 \(p_j^kp_i^k,k=2,\cdots,q\),所以對網絡所有輸入樣本記憶權值的設計公式為:
\begin{align}
W_{i,j}=\alpha\sum_{k=1}^qt_j^kt_i^k
\end{align}
式中矢量 \(T\) 為記憶樣本,\(T=P\)。式 (3) 稱為推廣的學習調節規則。當系數 \(\alpha=1\) 時,稱式 (3) 為 \(T\) 的外積公式。

因為 Hopfield 網絡有 \(W_{ij}=W_{ji}\),所以完整的網絡權值設計公式應當為:
\begin{align}\label{eq37}
W_{i,j}=\alpha\sum_{\substack{k=1\ i\neq j}}^qt_j^kt_i^k
\end{align}
向量形式表示為
\begin{align}
W=\alpha \sum_{k=1}^q[T^k(T^k)^T-I]
\end{align}

\(\alpha=1\) 時有
\begin{align}
W= \sum_{k=1}^q[T^k(T^k)^T]-qI
\end{align}
其中 \(I\) 為單位對角矩陣。
 

一個例子

\(n=5\) 的 DHNN 網絡,要求記憶的樣本為:
\begin{align}
p^1&=(1,1,1,1,1)^T \notag \\
p^2&=(1,-1,-1,1,-1)^T\notag \\
p^3&=(-1,1,-1,-1,-1)^T \notag
\end{align}
它們不滿足正交條件,按外積計算權重矩陣:
\begin{align}
W &=\sum_{k=1}^3p^k(p^k)^T-3I \notag \\
&= \begin{bmatrix}
1 & 1& -1 \\
1& -1&1 \\
1 & -1 & -1\\
1 & 1&-1 \\
1&-1&-1
\end{bmatrix} \begin{bmatrix}
1 & 1& 1& 1&1 \\
1 & -1& -1& 1&-1 \\
-1 & 1& -1& -1&-1 \\
\end{bmatrix}-3I \notag \\
&=\begin{bmatrix}
3 & -1 & 1& 3&1 \\
-1 &3 & 1&-1 &1 \\
1& 1&3 &1 &3 \\
3 & -1&1&3 &1 \\
1 & 1&3 &1 &3
\end{bmatrix} -3I
=\begin{bmatrix}
0 & -1 & 1& 3&1 \\
-1 &0 & 1&-1 &1 \\
1& 1&0 &1 &3 \\
3 & -1&1&0 &1 \\
1 & 1&3 &1 &0
\end{bmatrix} \notag
\end{align}
計算可得:\(\mathrm{sgn}(Wp^1)=p^1,\mathrm{sgn}(Wp^2)=p^2,\mathrm{sgn}(Wp^3)=p^3\). 網絡可能的輸出狀態:\(2^5=32\) 個矢量。分析一下其穩定點的情況:

  • 共有 4 個穩定點: \(p^1, p^2, p^3\), 除此之外,還有一個 \(p^4=(-1,1,1,-1,1)^T\).
    其中 \(p^1, p^2, p^3\) 為要求的穩定點, \(p^4\) 為偽穩定點。仔細發現 \(p^4=-p^2\). 其實,穩定點具有對稱性。

把 32 種可能的輸出矢量作為初值來檢驗

  • 串行工作下:10 個初始態收斂於 \(p^1\) , 8 個收斂於 \(p^2\) ,8 個收斂於 \(p^3\) ,6 個收斂於 \(p^4\)
  • 並行工作下:8 個初始態收斂於 \(p^1\) , 1 個收斂於 \(p^2\) ,2個收斂於 \(p^3\) ,1 個收斂於 \(p^4\). 而其他 20 個都使網絡陷入極限環(即在多種狀態下來回跳動,不收斂)。

 


影響記憶容量的因素

設計 DHNN 網絡的目的,是希望通過所設計的權值矩陣 \(W\) 儲存多個期望模式。從海布學習公式的推導過程中可以看出:當網絡只記憶一個穩定模式時,該模式肯定被網絡准確無誤地記憶住,即所設計的 \(W\) 值一定能夠滿足正比於輸入和輸出矢量的乘積關系。但當需要記憶的模式增多時,情況則發生了變化,主要表現在下面兩點上:

  • 權值移動。發生遺忘、疲勞。
    當只需記住一個樣本,即 \(k=1\) 時,根據海布規則確定了權值,網絡准確的記住了樣本 \(T^1\),當 \(k=2\) 時,為了記憶樣本 \(T^2\),需要在記憶了樣本 \(T^1\) 的權值上加上對樣本 \(T^2\) 的記憶項 \(T^2(T^2)^T-I\),將權值在原來值的基礎上產生了移動。
    另一方面,由於在學習樣本 \(T^2\) 時,權矩陣 \(W\) 是在已學習了 \(T^1\) 的基礎上進行修正的。此時,因 \(W\) 起始值不再為零,所以由此調整得出的新的 \(W\) 值,對記憶樣本 \(T^2\) 來說,也未必對所有的 \(s\) 個輸出同時滿足符號函數的條件,即難以保證網絡對 \(T^2\) 的精確的記憶。
    隨着學習樣本數 \(k\) 的增加,權值移動現象將進一步發生,當學習了第 \(q\) 個樣本 \(T^q\) 后,權值又在前 \(q-1\) 個樣本修正的基礎上產生了移動,這也是網絡在精確學習了第一個樣本后的第 \(q-1\) 次移動。
    對已記憶的樣本發生遺忘,這種現象成為“疲勞”。
     
  • 交叉干擾。設輸入矢量 \(P\) 維數為 \(n\times q\),取 \(\alpha=1/n\). 因為對於 DHNN 有 \(p^k \in \{-1,1\},k=1,2,\cdots,n\),所以有 \(p_i^k\cdot p_i^k=p_j^k\cdot p_j^k=1\). 當網絡某個矢量 \(p^\ell,\ell \in [1,q]\), 作為網絡的輸入矢量時,可得網絡的加權輸入和 \(n_i^{\ell}\)
    \begin{align}
    n_i^{\ell}&=\sum_{\substack{k=1\\ k\neq \ell}}^n W_{i,j}p_j^{\ell} \notag \\
    &=\frac 1n \sum_{j=1,j\neq i}^n \sum_{k=1}^qp_i^kp_j^k \cdot p_j^{\ell} \notag \\
    &=\frac 1n \sum_{\substack{k=1\\ k\neq \ell}}^n \bigg[p_i^{\ell}\cdot p_j^{\ell}\cdot \cdot p_j^{\ell}+\sum_{\substack{k=1\\ k\neq \ell}}^q p_i^kp_j^k \cdot p_j^{\ell} \bigg] \notag \\
    &= p_i^{\ell}+\frac 1n \sum_{\substack{j=1 \\ j\neq i}}^n \sum_{\substack{k=1\ k\neq \ell}}^q p_i^kp_j^k \cdot p_j^{\ell}
    \end{align}
    上式右邊中第一項為期望記憶的樣本,而第二項則是當網絡學習多個樣本時,在回憶階段即驗證該記憶樣本時,所產生的相互干擾,稱為交叉干擾項
     

網絡的記憶容量確定

一般來說,只要滿足 \(n>q\),則有 \(\mathrm{sgn}(N^{\ell})=p^{\ell}\),保證 \(p^{\ell}\) 為網絡的穩定解。
DHNN用於聯想記憶有兩個突出的特點:即記憶是分布式的,而聯想是動態的。它有局限性,主要表現在以下幾點:

  • 記憶容量的有限性
  • 偽穩定點的聯想與記憶
  • 當記憶樣本較接近時,網絡不能始終回憶出正確的記憶等

另外網絡的平衡穩定點並不可以任意設置的,也沒有一個通用的方式來事先知道平衡穩定點。 所以真正想利用 Hopfield 網絡並不是一件容易的事情。 對於用Hebb規則設計的權,能在異步工作時,穩定收斂。記憶樣本正交時,可保證能記住自己。有吸引域。但對不正交的記憶樣本,它不一定收斂到自身。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM