聯想記憶網路
這類神經網路基於模式關聯工作,這意味著它們可以儲存不同的模式,並在輸出時透過將輸入模式與儲存的模式匹配來產生其中一種儲存模式。這類記憶也稱為內容定址儲存器 (CAM)。聯想記憶將儲存的模式作為資料檔案進行並行搜尋。
以下是我們可以觀察到的兩種型別的聯想記憶:
- 自聯想記憶
- 異聯想記憶
自聯想記憶
這是一種單層神經網路,其中輸入訓練向量和輸出目標向量相同。權重被確定,以便網路儲存一組模式。
架構
如下圖所示,自聯想記憶網路的架構具有‘n’個輸入訓練向量和類似的‘n’個輸出目標向量。
訓練演算法
對於訓練,此網路使用Hebb或Delta學習規則。
步驟1 - 將所有權重初始化為零,如wij = 0 (i = 1 to n, j = 1 to n)
步驟2 - 為每個輸入向量執行步驟3-4。
步驟3 - 如下啟用每個輸入單元:
$$x_{i}\:=\:s_{i}\:(i\:=\:1\:to\:n)$$
步驟4 - 如下啟用每個輸出單元:
$$y_{j}\:=\:s_{j}\:(j\:=\:1\:to\:n)$$
步驟5 - 如下調整權重:
$$w_{ij}(new)\:=\:w_{ij}(old)\:+\:x_{i}y_{j}$$
測試演算法
步驟1 - 設定Hebb規則訓練期間獲得的權重。
步驟2 - 為每個輸入向量執行步驟3-5。
步驟3 - 將輸入單元的啟用設定為輸入向量的啟用。
步驟4 - 計算每個輸出單元j = 1 to n的淨輸入
$$y_{inj}\:=\:\displaystyle\sum\limits_{i=1}^n x_{i}w_{ij}$$
步驟5 - 應用以下啟用函式來計算輸出
$$y_{j}\:=\:f(y_{inj})\:=\:\begin{cases}+1 & if\:y_{inj}\:>\:0\\-1 & if\:y_{inj}\:\leqslant\:0\end{cases}$$
異聯想記憶
與自聯想記憶網路類似,這也是單層神經網路。但是,在這個網路中,輸入訓練向量和輸出目標向量並不相同。權重被確定,以便網路儲存一組模式。異聯想網路本質上是靜態的,因此不會有非線性和平延遲操作。
架構
如下圖所示,異聯想記憶網路的架構具有‘n’個輸入訓練向量和‘m’個輸出目標向量。
訓練演算法
對於訓練,此網路使用Hebb或Delta學習規則。
步驟1 - 將所有權重初始化為零,如wij = 0 (i = 1 to n, j = 1 to m)
步驟2 - 為每個輸入向量執行步驟3-4。
步驟3 - 如下啟用每個輸入單元:
$$x_{i}\:=\:s_{i}\:(i\:=\:1\:to\:n)$$
步驟4 - 如下啟用每個輸出單元:
$$y_{j}\:=\:s_{j}\:(j\:=\:1\:to\:m)$$
步驟5 - 如下調整權重:
$$w_{ij}(new)\:=\:w_{ij}(old)\:+\:x_{i}y_{j}$$
測試演算法
步驟1 - 設定Hebb規則訓練期間獲得的權重。
步驟2 - 為每個輸入向量執行步驟3-5。
步驟3 - 將輸入單元的啟用設定為輸入向量的啟用。
步驟4 - 計算每個輸出單元j = 1 to m;的淨輸入
$$y_{inj}\:=\:\displaystyle\sum\limits_{i=1}^n x_{i}w_{ij}$$
步驟5 - 應用以下啟用函式來計算輸出
$$y_{j}\:=\:f(y_{inj})\:=\:\begin{cases}+1 & if\:y_{inj}\:>\:0\\0 & if\:y_{inj}\:=\:0\\-1 & if\:y_{inj}\:<\:0\end{cases}$$