透過視覺化界面展示「離散型Hopfield Network」的使用方法
-
右方可以選擇訓練資料:「Basic_Training」、「Bonus_Training
-
所有資料皆以3張圖為一組,且「Bonus_Training」可以再細選子訓練集:「Bonus-x」
-
「訓練」後即產生所選資料的訓練結果
-
訓練後,可透過滑鼠點擊左側的圖片來選擇「測試資料」,並可「加入雜訊」
-
「驗證」後下方會產生Hopfield Network的 ( 聯想 ) 結果
應用於各方面的一種「聯想式學習」演算法
-
模擬人類記憶中聯想的神經網路,又分為「自聯想」、「異聯想」,Hopfield又屬自聯想
-
自聯想: 看到模糊不清的照片,依然能辨別出原來的風貌
-
異聯想: 聽到相對論,想到愛因斯坦的名字
-
-
離散Hopfield網路有記憶上限,假設神經元數目p,在記憶提取99%正確率的情況下,可儲存的資料筆數不超過
-
聯想記憶的表達方式為 ,目標就是找到適合的 W,讓 X 聯想( 回想 )起 Y
-
X - 輸入,為n x 1的矩陣
-
Y - 聯想結果,為n x 1的矩陣
-
W - 網路鍵結值,為n x n的「對稱」矩陣
-
-
W 的學習有很多種方法:Hebbian rule、Projection rule...。
-
聯想( 回想 )又分兩種方法:「同步」、「異步」,同步即一般的矩陣相乘,若採同步會有兩種可能:
-
收斂至穩定狀態即定值:正確
-
長度為2的有限循環:錯誤
-
-
呈上,異步回想則一定會收斂到穩定狀態。雖然此程式採用同步,但幸運地此程式所用的資料集都可以收斂到穩定狀態。
-
輸入、輸出向量都必須是雙極值 ( -1、1 ) 或 二元值 ( 0、1 ),但在Hebbian rule的學習法則下,兩者的學習公式會有些微差別:
w 表示第 j 到第 i 個神經元的鍵結值,x 表示輸入資料的第 i 維或第 j 維
下述的「學習階段」、「回想階段」之相關數學證明請參考原始Paper
此程式採用Hebbian rule學習法中的雙極值 ( -1、1 )輸入輸出,參數簡介:
-
N筆輸入向量,每一筆有P個維度,表示成 x
-
W為P x P的矩陣,預設為0矩陣:避免正回授
-
I為單位矩陣:除以P是為了簡化參數,可有可無
W 即透過下式來學習:
W訓練一次就完成了!! 。另外此處與簡介倒數第二點所提的公式是一樣的,倒數第二點表達的是單個鍵結值的單次更新,可以透過矩陣與sigma來表示全部資料的更新。此處很不好理解,必須用一點想像力,如果有疑問可以來信詢問。
為什麼要減去單位矩陣?為了讓W的對角為0,Hopfield在原始Paper中,神經元並不會連到自己
至於每個神經元的閥值有兩種設定方法( θ表示閥值;j表示第j個神經元 ):
當網路訓練好後就要進入回想階段,假設一個新的輸入X(0),0表示時間點。運算 X(1) = W * X(0),產生X(1),而W * X(0)內的每個值需要經過激勵函數在輸出成X(1),激勵函數如下( j表示第j個神經元的值 ):
有興趣可參考國立聯合大學-陳士杰老師的講義,附件中的「Hopfield intro」pdf