人工神經網路 - Hopfield 網路



Hopfield 神經網路由 John J. Hopfield 博士於 1982 年發明。它由一個包含一個或多個完全連線的迴圈神經元的單層組成。Hopfield 網路通常用於自動關聯和最佳化任務。

離散 Hopfield 網路

一種以離散方式執行的 Hopfield 網路,換句話說,可以認為輸入和輸出模式是離散向量,其本質上可以是二進位制 (0,1) 或雙極性 (+1, -1)。該網路具有對稱權重,沒有自連線,即 wij = wjiwii = 0

架構

以下是一些關於離散 Hopfield 網路需要注意的重要事項:

  • 該模型由具有一個反相輸出和一個非反相輸出的神經元組成。

  • 每個神經元的輸出應該是其他神經元的輸入,但不能是自身的輸入。

  • 權重/連線強度由 wij 表示。

  • 連線可以是興奮性的,也可以是抑制性的。如果神經元的輸出與輸入相同,則為興奮性,否則為抑制性。

  • 權重應該是對稱的,即 wij = wji

Hopfield

Y1Y2YiYn 的輸出分別具有權重 w12w1iw1n。類似地,其他弧線在其上也有權重。

訓練演算法

在離散 Hopfield 網路的訓練過程中,權重將被更新。眾所周知,我們可以擁有二進位制輸入向量以及雙極性輸入向量。因此,在這兩種情況下,都可以使用以下關係更新權重

情況 1 - 二進位制輸入模式

對於一組二進位制模式 s(p), p = 1 到 P

這裡,s(p) = s1(p), s2(p),..., si(p),..., sn(p)

權重矩陣由下式給出

$$w_{ij}\:=\:\sum_{p=1}^P[2s_{i}(p)-\:1][2s_{j}(p)-\:1]\:\:\:\:\:for\:i\:\neq\:j$$

情況 2 - 雙極性輸入模式

對於一組二進位制模式 s(p), p = 1 到 P

這裡,s(p) = s1(p), s2(p),..., si(p),..., sn(p)

權重矩陣由下式給出

$$w_{ij}\:=\:\sum_{p=1}^P[s_{i}(p)][s_{j}(p)]\:\:\:\:\:for\:i\:\neq\:j$$

測試演算法

步驟 1 - 初始化權重,這些權重是使用 Hebbian 原理透過訓練演算法獲得的。

步驟 2 - 如果網路的啟用未得到鞏固,則執行步驟 3-9。

步驟 3 - 對於每個輸入向量 X,執行步驟 4-8。

步驟 4 - 使網路的初始啟用等於外部輸入向量 X,如下所示:

$$y_{i}\:=\:x_{i}\:\:\:for\:i\:=\:1\:to\:n$$

步驟 5 - 對於每個單元 Yi,執行步驟 6-9。

步驟 6 - 計算網路的淨輸入,如下所示:

$$y_{ini}\:=\:x_{i}\:+\:\displaystyle\sum\limits_{j}y_{j}w_{ji}$$

步驟 7 - 對淨輸入應用以下啟用以計算輸出:

$$y_{i}\:=\begin{cases}1 & if\:y_{ini}\:>\:\theta_{i}\\y_{i} & if\:y_{ini}\:=\:\theta_{i}\\0 & if\:y_{ini}\:<\:\theta_{i}\end{cases}$$

這裡 $\theta_{i}$ 是閾值。

步驟 8 - 將此輸出 yi 廣播到所有其他單元。

步驟 9 - 測試網路的連線。

能量函式評估

能量函式定義為系統狀態的有界且非增函式。

能量函式 Ef⁡,也稱為 Lyapunov 函式,確定離散 Hopfield 網路的穩定性,其特徵如下:

$$E_{f}\:=\:-\frac{1}{2}\displaystyle\sum\limits_{i=1}^n\displaystyle\sum\limits_{j=1}^n y_{i}y_{j}w_{ij}\:-\:\displaystyle\sum\limits_{i=1}^n x_{i}y_{i}\:+\:\displaystyle\sum\limits_{i=1}^n \theta_{i}y_{i}$$

條件 - 在穩定網路中,只要節點狀態發生變化,上述能量函式就會降低。

假設當節點 i 的狀態從 $y_i^{(k)}$ 更改為 $y_i^{(k\:+\:1)}$ 時,能量變化 $\Delta E_{f}$ 由以下關係給出

$$\Delta E_{f}\:=\:E_{f}(y_i^{(k+1)})\:-\:E_{f}(y_i^{(k)})$$

$$=\:-\left(\begin{array}{c}\displaystyle\sum\limits_{j=1}^n w_{ij}y_i^{(k)}\:+\:x_{i}\:-\:\theta_{i}\end{array}\right)(y_i^{(k+1)}\:-\:y_i^{(k)})$$

$$=\:-\:(net_{i})\Delta y_{i}$$

這裡 $\Delta y_{i}\:=\:y_i^{(k\:+\:1)}\:-\:y_i^{(k)}$

能量的變化取決於一次只能更新一個單元的啟用這一事實。

連續 Hopfield 網路

與離散 Hopfield 網路相比,連續網路將時間視為連續變數。它也用於自動關聯和最佳化問題,例如旅行商問題。

模型 - 可以透過新增電子元件(例如放大器)來構建模型或架構,這些放大器可以透過 S 型啟用函式將輸入電壓對映到輸出電壓。

能量函式評估

$$E_f = \frac{1}{2}\displaystyle\sum\limits_{i=1}^n\sum_{\substack{j = 1\\ j \ne i}}^n y_i y_j w_{ij} - \displaystyle\sum\limits_{i=1}^n x_i y_i + \frac{1}{\lambda} \displaystyle\sum\limits_{i=1}^n \sum_{\substack{j = 1\\ j \ne i}}^n w_{ij} g_{ri} \int_{0}^{y_i} a^{-1}(y) dy$$

這裡 λ 是增益引數,gri 是輸入電導。

廣告

© . All rights reserved.