1. 程式人生 > >【機器學習筆記】自組織映射網絡(SOM)

【機器學習筆記】自組織映射網絡(SOM)

非線性 每一個 可能 合作 空間 找到 節點 視覺 網格

什麽是自組織映射?

一個特別有趣的無監督系統是基於競爭性學習,其中輸出神經元之間競爭激活,結果是在任意時間只有一個神經元被激活。這個激活的神經元被稱為勝者神經元(winner-takes-all neuron)。這種競爭可以通過在神經元之間具有橫向抑制連接(負反饋路徑)來實現。其結果是神經元被迫對自身進行重新組合,這樣的網絡我們稱之為自組織映射(Self Organizing Map,SOM)

拓撲映射

神經生物學研究表明,不同的感覺輸入(運動,視覺,聽覺等)以有序的方式映射到大腦皮層的相應區域。

這種映射我們稱之為拓撲映射,它具有兩個重要特性:

  • 在表示或處理的每個階段,每一條傳入的信息都保存在適當的上下文(相鄰節點)中
  • 處理密切相關的信息的神經元之間保持密切,以便它們可以通過短突觸連接進行交互

我們的興趣是建立人工的拓撲映射,以神經生物學激勵的方式通過自組織進行學習。

我們將遵循拓撲映射形成的原則:“拓撲映射中輸出層神經元的空間位置對應於輸入空間的特定域或特征”。

建立自組織映射

SOM的主要目標是將任意維度的輸入信號模式轉換為一維或二維離散映射,並以拓撲有序的方式自適應地執行這種變換。

因此,我們通過將神經元放置在一維或二維的網格節點上來建立我們的SOM。更高的尺寸圖也是可能的,但不是那麽常見。

在競爭性學習過程中,神經元有選擇性地微調來適應各種輸入模式(刺激)或輸入模式類別。如此調整的神經元(即獲勝的神經元)的位置變得有序,並且在該網格上創建對於輸入特征

有意義的坐標系。因此,SOM形成輸入模式所需的拓撲映射。我們可以將其視為主成分分析(PCA)的非線性推廣。

映射的組織結構

輸入空間中的點\(\mathbf x\)映射到輸出空間中的點\(I(\mathbf x)\),如圖所示
技術分享圖片
其中。每一個輸出空間中的點\(I\)將會映射到對應輸入空間中的點\(\mathbf w(I)\)

Kohonen網絡

我們將專註於被稱為Kohonen網絡的特定類型的SOM。 這個SOM(以二維映射為例)有一個前饋結構,以行列方陣構成的單一計算層。每個神經元完全連接到輸入層中的所有源節點:
技術分享圖片
顯然,如果是一維的映射,那麽在計算層中只有一行(或一列)。

自組織的過程

自組織的過程包括以下四個主要方面:

  • 初始化:所有連接權重都用小的隨機值進行初始化。
  • 競爭:對於每種輸入模式,神經元計算它們各自的判別函數值,為競爭提供基礎。具有最小判別函數值的特定神經元被宣布為勝利者。
  • 合作:獲勝的神經元決定了興奮神經元拓撲鄰域的空間位置,從而為相鄰神經元之間的合作提供了基礎。
  • 適應:受激神經元通過適當調整相關的連接權重,減少與輸入模式相關的判別函數值,使得獲勝的神經元對相似輸入模式的後續應用的響應增強。

競爭過程

如果輸入空間是\(D\)維(即有\(D\)個輸入單元),我們可以把輸入模式寫成\(\mathbf{x} = \{x_i:i=1,...,D\}\),輸入單元\(i\)和神經元\(j\)之間在計算層的連接權重可以寫成\(\mathbf{w}_j=\{w_{ji}:j=1,...,N;i=1,...,D\}\),其中\(N\)是神經元的總數。

然後,我們可以將我們的判別函數定義為輸入向量\(\mathbf x\)和每個神經元\(j\)的權向量\(\mathbf{w}_j\)之間的平方歐幾裏德距離
\[d_j(\mathbf{x})=\sum_{i=1}^{D}(x_i-w_{ji})^2\]
換句話說,權重向量最接近輸入向量(即與其最相似)的神經元被宣告為勝利者。這樣,連續的輸入空間可以通過神經元之間的一個簡單的競爭過程被映射到神經元的離散輸出空間。

合作過程

在神經生物學研究中,我們發現在一組興奮神經元內存在橫向的相互作用。當一個神經元被激活時,最近的鄰居節點往往比那些遠離的鄰居節點更興奮。並且存在一個隨距離衰減的拓撲鄰域

我們想為我們的SOM中的神經元定義一個類似的拓撲鄰域。 如果\(S_{ij}\)是神經元網格上神經元\(i\)\(j\)之間的橫向距離,我們取
\[T_{j,I(x)}=\exp(-\frac{S^2_{j,I(x)}}{2\sigma^2})\]
作為我們的拓撲鄰域,其中\(I(\mathbf{x})\)是獲勝神經元的索引。該函數有幾個重要的特性:它在獲勝的神經元中是最大的,且關於該神經元對稱,當距離達到無窮大時,它單調地衰減到零,它是平移不變的(即不依賴於獲勝的神經元的位置)。

SOM的一個特點是\(\sigma\)需要隨著時間的推移而減少。常見的時間依賴性關系是指數型衰減:\(\sigma(t)=\sigma_0\exp(-t/\tau_\sigma)\)

適應過程

顯然,我們的SOM必須涉及某種自適應或學習過程,通過這個過程,輸出節點自組織,形成輸入和輸出之間的特征映射

地形鄰域的一點是,不僅獲勝的神經元能夠得到權重更新,它的鄰居也將更新它們的權重,盡管不如獲勝神經元更新的幅度大。在實踐中,適當的權重更新方式是
\[\Delta w_{ji}=\eta(t) \cdot T_{j,I(x)}(t) \cdot (x_i-w_{ji})\]
其中我們有一個依賴於時間的學習率\(\eta(t)=\eta_0\exp(-t/\tau_\eta)\),該更新適用於在多輪叠代中的所有訓練模式\(\mathbf x\)

每個學習權重更新的效果是將獲勝的神經元及其鄰居的權向量\(w_i\)向輸入向量\(\mathbf x\)移動。對該過程的叠代進行會使得網絡的拓撲有序。

排序和收斂

如果正確選擇參數(\(\sigma_0,\tau_\sigma,\eta_0,\tau_\eta\)),我們可以從完全無序的初始狀態開始,並且SOM算法將逐步使得從輸入空間得到的激活模式表示有序化。(但是,可能最終處於特征映射具有拓撲缺陷的亞穩態。)

這個自適應過程有兩個顯著的階段:

  • 排序或自組織階段:在這期間,權重向量進行拓撲排序。通常這將需要多達1000次的SOM算法叠代,並且需要仔細考慮鄰域和學習速率參數的選擇。

  • 收斂階段:在此期間特征映射被微調(fine tune),並提供輸入空間的精確統計量化。通常這個階段的叠代次數至少是網絡中神經元數量的500倍,而且參數必須仔細選擇。

可視化自組織過程

  • 假設我們在連續的二維輸入空間中有四個數據點(\(\times\)),並且希望將其映射到離散一維輸出空間中的四個點上。輸出節點映射到輸入空間中的點(\(\circ\))。隨機初始化權重使得\(\circ\)的起始位置落在隨機落在輸入空間的中心。
    技術分享圖片
  • 我們隨機選擇一個數據點(\(\otimes\))進行訓練。最接近的輸出點表示獲勝的神經元(\(\blacklozenge\))。獲勝的神經元向數據點移動一定量,並且兩個相鄰的神經元以較小的量移動(箭頭指示方向)。
    技術分享圖片
  • 接下來,我們隨機選擇另一個數據點進行訓練(\(\otimes\))。最接近的輸出點給出新的獲勝神經元(\(\blacklozenge\))。獲勝的神經元向數據點移動一定量,並且一個相鄰的神經元也朝該數據點移動較小的量(箭頭指示方向)。
    技術分享圖片
  • 我們隨機挑選數據點進行訓練(\(\otimes\))。每個獲勝的神經元向數據點移動一定的量,其相鄰的神經元以較小的量向數據點移動(箭頭指示方向)。最終整個輸出網格將自身重新組織以表征輸入空間。
    技術分享圖片

SOM算法總結

我們有一個空間連續的輸入空間,其中包含我們的輸入向量。我們的目的是將其映射到低維的離散輸出空間,其拓撲結構是通過在網格中布置一系列神經元形成的。我們的SOM算法提供了稱為特征映射的非線性變換。

SOM算法過程總結如下:

  1. 初始化 - 為初始權向量\(\mathbf w_j\)選擇隨機值。
  2. 采樣 - 從輸入空間中抽取一個訓練輸入向量樣本\(\mathbf x\)
  3. 匹配 - 找到權重向量最接近輸入向量的獲勝神經元\(I(\mathbf x)\)
  4. 更新 - 更新權重向量 \(\Delta w_{ji}=\eta(t) \cdot T_{j,I(x)}(t) \cdot (x_i-w_{ji})\)
  5. 繼續 - 繼續回到步驟2,直到特征映射趨於穩定。

形象化理解

我們來看維基百科上給出的一個SOM學習過程示意圖,
技術分享圖片
一個自組織映射訓練的例證。藍色斑點是訓練數據的分布,而小白色斑點是從該分布中抽取得到的當前訓練數據。首先(左圖)SOM節點被任意地定位在數據空間中。我們選擇最接近訓練數據的節點作為獲勝節點(用黃色突出顯示)。它被移向訓練數據,包括(在較小的範圍內)其網格上的相鄰節點。經過多次叠代後,網格趨於接近數據分布(右圖)。

【機器學習筆記】自組織映射網絡(SOM)