SOM 的两种算法
我參考了這篇文章http://www.scholarpedia.org/article/Kohonen_network
另一個很好的演示在這里http://www.math.le.ac.uk/people/ag153/homepage/PCA_SOM/PCA_SOM.html
訓練從t=0開始,t=輸入數(shù)據(jù)個數(shù)時結(jié)束每步的更新規(guī)則是
其中a(t)是一個隨訓練步數(shù)衰減的函數(shù),c,i都是訓練節(jié)點的索引,c是離x(t)最近的節(jié)點的索引,hci是節(jié)點mc和mi的邊距離。也就是說每個訓練步選一個輸入數(shù)據(jù)x(t),將離它最近的節(jié)點mc向這個輸入數(shù)據(jù)拉扯,這個節(jié)點又透過連著的邊,帶動鄰近的節(jié)點向這個輸入數(shù)據(jù)移動。
nj是選了mj做最鄰近的輸入數(shù)據(jù)個數(shù),hji是節(jié)點mi與節(jié)點mj的邊距離。可見對于節(jié)點mi,它會更新到鄰近所有節(jié)點mj對應的的加權平均值。
來自為知筆記(Wiz)
另一個很好的演示在這里http://www.math.le.ac.uk/people/ag153/homepage/PCA_SOM/PCA_SOM.html
SOM
t是訓練步一個輸入數(shù)據(jù)是n維向量待訓練的是一堆節(jié)點,這堆節(jié)點之間有邊連著,通常是排成grid那樣的網(wǎng)狀結(jié)構一個要訓練的節(jié)點包含一個n維向量訓練從t=0開始,t=輸入數(shù)據(jù)個數(shù)時結(jié)束每步的更新規(guī)則是
其中a(t)是一個隨訓練步數(shù)衰減的函數(shù),c,i都是訓練節(jié)點的索引,c是離x(t)最近的節(jié)點的索引,hci是節(jié)點mc和mi的邊距離。也就是說每個訓練步選一個輸入數(shù)據(jù)x(t),將離它最近的節(jié)點mc向這個輸入數(shù)據(jù)拉扯,這個節(jié)點又透過連著的邊,帶動鄰近的節(jié)點向這個輸入數(shù)據(jù)移動。
Batch SOM
這樣輸入數(shù)據(jù)太多的時候會很慢,改進的方法稱為batch som。方法是在每一步,對每個節(jié)點 mj,統(tǒng)計所有選中它為最近鄰的輸入數(shù)據(jù)的平均值,記為?。再按下式更新每個節(jié)點的值。nj是選了mj做最鄰近的輸入數(shù)據(jù)個數(shù),hji是節(jié)點mi與節(jié)點mj的邊距離。可見對于節(jié)點mi,它會更新到鄰近所有節(jié)點mj對應的的加權平均值。
來自為知筆記(Wiz)
轉(zhuǎn)載于:https://www.cnblogs.com/dydx/p/6436348.html
總結(jié)
- 上一篇: 孕妇做梦梦到被老虎咬是什么意思
- 下一篇: Java技术中的三大特性