自組織對映(SOM)或自組織特徵對映(SOFM)是一種使用非監督式學習來產生訓練樣本的輸入空間的一個低維(通常是二維)離散化的表示的類神經網絡(ANN)。自組織對映與其他類神經網絡的不同之處在於它使用一個鄰近函數來保持輸入空間的拓撲性質。

學習演算法

自組織對映中學習的目標是使網絡的不同部分對輸入模式有相似的響應。這部分的靈感是來自於人類大腦皮層的不同部分處理視覺、聽覺或其他感官資訊的方式。[1]

Thumb
自組織對映的訓練實例。藍色斑點是訓練數據的分佈,而小白斑點是從該分佈走出的目前的訓練數據。起初(左圖)SOM節點處在數據空間的任意位置。選擇離訓練數據最近的(用黃色突顯的)節點。它會向着訓練數據移動,網格上它的鄰居節點也會(在較小程度上)如此移動。經過多次迭代後的網格會趨於近似的數據分佈(右圖)。

神經元的權重初始化為小隨機值或均勻採樣自兩個最大的主成分特徵向量範圍。用後一種方法初始化,學習的速率就會更快,因為初始的權重已經是SOM權重的一個很好的近似了。[2]

必須提供給網絡大量的能夠實例向量來儘可能近地表示對映中期望值的那些類型的向量。這些例子通常在迭代中數次使用。

訓練採用競爭性學習。當訓練樣本提供給網絡的時候,就會計算它與每個權重之間的歐氏距離。權重向量與輸入最相似的神經元稱作最佳匹配單元(BMU)。SOM柵格中BMU的權重以及與其鄰近的神經元會向着輸入向量調整。從BMU變化的量會隨着(柵格中)時間和距離而降低。擁有權值 Wv(s) 的神經元v的更新公式為

Wv(s + 1) = Wv(s) + Θ(u, v, s) α(s)(D(t) - Wv(s)),

其中 s 為步長指數,t 是訓練樣本的指數,D(t) 是輸入向量,u 是 D(t) 的BMU指數,α(s) 是一個單調遞減的學習系數;Θ(u, v, s) 是在步長為 s 下給出神經元 u 和神經元 v 之間距離的鄰近函數[3] 根據實現的不同,t 可以系統地( 0, 1, 2...T-1,然後重複,T 為訓練樣本的大小),也可以隨機從數據集中取出(Bootstrap抽樣),或採用其他一些抽樣方法(如jackknifing)。

鄰近函數Θ(u, v, s)取決於BMU(神經元u)與神經元v之間的柵格距離。在最簡單的形式中,對所有足夠接近BMU的神經元都是1,其餘都是0,但高斯函數也是一種常見的選擇。不管函數形式如何,鄰近函數都會隨着時間收縮。[1] 在起初鄰域範圍很大的時候,自組織發生在全域範圍內。當鄰域範圍縮小到僅有兩個神經元時,權值會收斂於局部估計值。在一些實現中,學習系數α會隨着增加s而平穩減小,另一些實現(特別是t掃描訓練數據集的情況)中步進式地下降,每 T 步一次。

對每個輸入向量這個過程都會重複(通常很多次)迴圈λ。該網絡把輸入數據集中的類別或模式與相關聯的輸出節點拉近。如果可以重新命名這些模式,這些名稱就會附加到已訓練的網絡中的相關節點中。

在對映中,會有一個單一「獲勝」神經元:該神經元的權重向量與輸入向量最接近。這可以很容易由計算輸入向量和權值向量的歐氏距離確定。

演算法

  1. 隨機排列對映中節點的權值向量
  2. 取出一個輸入向量
  3. 在對映中遍歷每個節點
    1. 使用歐氏距離公式得到輸入向量和該對映節點的權值向量之間的相似度
    2. 找出距離最小的節點(這個節點是最佳匹配單元,BMU)
  4. 通過更新將BMU鄰域內的節點(包括BMU本身)拉向輸入向量。
    1. Wv(s + 1) = Wv(s) + Θ(u, v, s) α(s)(D(t) - Wv(s))
  5. 增加 s 並回到第二步只要 就繼續迴圈

參考資料

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.