• 沒有找到結果。

基本的 SOM 演算法

第四章 自組織神經網路

4.2 基本的 SOM 演算法

23

圖 7:左邊的紅色感覺比右邊的鮮豔,其實都是一樣的

調整與勝出神經元相近的元素:在勝出神經元附近的元素會被進行更新,

使這些元素的模組更接近當時輸入的訊號。一般常用的方式是以神經元間的 歐氏幾何距離來做為是否符合相近元素的標準。

有這些預設的要素條件後,神經元之間就會越來越像輸入的訊息。具有 拓撲關係的相近元素,也會開始彼此相似。

24

所有模組在開始進行遞迴步驟前都必須初始化為一個值。如果沒有預先 設定的必要,這些模組的值可以隨機地初始化,如果有一些輸入資料的樣本 可用,這些值也可以隨機地從樣本裡面取得。但現實生活中的應用,初始值 以人為啟發的方式會更有助於收斂,減少學習時間。

SOM 演算法可以描述為以下幾個步驟:

1. 初始化 𝑀𝑖 2. 抽取輸入樣本

3. 將輸入與所有模組比較

4. 挑選最佳匹配元素,即勝出神經元(Winning Neuron)

5. 更新與勝出神經元相近的模組 6. 重覆步驟 2,直到收斂完成。

在第三步,使用的比較方式常見的是使用歐氏距離:‖𝑥 − 𝑀𝑖‖ 。具有最 短歐氏距離的就是最匹配輸入訊息的神經元:

‖𝑥 − 𝑀𝑐‖ = min{‖𝑥 − 𝑀𝑖‖}

一但選出勝出神經元,在符合相近範圍(neighborhood size)內的神經元 就會開始進行更新。相近神經元會縮短與輸入訊息之間的歐式距離,然後逼 近輸入訊息:

𝑀𝑖 = 𝑀𝑖 + ℎ𝑐𝑖(𝑡) ∗ (𝑀𝑖− 𝑥)

25

上式中 ℎ𝑐𝑖(𝑡) 為相鄰函式(neighborhood function),相鄰函式可以定義 成各種公式,只要能保證它符合收斂的準則:ℎ𝑖(𝑡) → 0 when 𝑡 → ∞。比較 常用的相鄰函式是高斯公式(Gaussian form):

𝑐𝑖(𝑡) = 𝛼(𝑡)𝑒

‖𝑟𝑐−𝑟𝑖2 2𝜎2(𝑡)

上式中,𝛼(𝑡) 是學習速率的函式,必須符合 0 < 𝛼(𝑡) < 1;𝜎(𝑡) 這個 函式表示相鄰區域的寬度,也就是相鄰區域的大小程度。𝛼(𝑡) 與 𝜎(𝑡) 兩個 函式都必須隨著時間而遞減。

學習速率函式可以是線性、指數或與 𝑡 成反比的式子,例如:

 α(𝑡) = 0.5(1 −100𝑡 )

 α(𝑡) = 0.5ℯ−𝑡

 α(𝑡) =0.9𝑡

Kohonen 建議,在前 1000 次的學習步驟中,α(𝑡) 必須小於或等於 0.2 [28]。

要選擇一個好的學習速率函式,往往都是從實驗的經驗中來獲得,根據經驗,

在約 1000 步之後,SOM 就已經開始有一個大致上的拓撲排列。因此,在大 約 1000 步之後,學習速率等參數必須降低到可以讓 SOM 慢慢收斂,讓它符 合輸入層的拓撲資訊。在 1000 步之前,α(𝑡) 則必須保持在常數狀態,所以 α(𝑡) 必須要慢慢地變小,Kohonen 建議使用 𝛼(𝑡) = 𝐴

𝑡+𝐵 的形式來產生令人 滿意的結果,上式中 𝐴 與 𝐵 必須明確指定一個數值 [27][29]。

26

4.2.1 SOM 實例

這裡舉一個 SOM 自組織的實際模擬例子。在這個例子中,有一個三角 形的輸入空間。三角形的底與高均為一個單位長,如圖 8 與圖 9。輸入的資 料樣本是在三角形空間裡面均勻的隨機座標值,每一個點都有相同的出現機 率。從圖 8 可以看出,這個一維的 SOM 裡,100 個神經元收斂後,已經散 佈在三角形的輸入空間中。神經元的分佈覆蓋在三角形上,保有輸入空間的 拓撲資訊。

圖 9 是另一個具有 200 個神經元的一維 SOM,一樣也準確地呈現出輸 入空間的拓撲資訊,在這兩個實例當中,我們可以看到 SOM 準確地將二維 空間映射到一維空間中。

圖 8:一維 SOM 具有 100 個神經元的訓練結果

27

圖 9:一維 SOM 具有 200 個神經元的訓練結果