SOM 的兩種算法


我參考了這篇文章

另一個很好的演示在這里

SOM

t是訓練步
一個輸入數據是n維向量
待訓練的是一堆節點,這堆節點之間有邊連着,通常是排成grid那樣的網狀結構
一個要訓練的節點包含一個n維向量

訓練從t=0開始,t=輸入數據個數時結束
每步的更新規則是

其中a(t)是一個隨訓練步數衰減的函數,c,i都是訓練節點的索引,c是離x(t)最近的節點的索引,hci是節點mc和mi的 距離。也就是說每個訓練步選一個輸入數據x(t),將離它最近的節點mc向這個輸入數據拉扯,這個節點又透過連着的邊,帶動鄰近的節點向這個輸入數據移動。

Batch SOM

這樣輸入數據太多的時候會很慢,改進的方法稱為batch som。
方法是在每一步,對每個節點 mj,統計所有選中它為最近鄰的輸入數據的平均值,記為 
再按下式更新每個節點的值。

nj是選了mj做最鄰近的輸入數據個數,hji是節點mi與節點mj的邊距離。可見對於節點mi,它會更新到鄰近所有節點mj對應的 的加權平均值。







免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM