2

我有自組織映射了一個問題:自組織映射

但首先,這是我在實現一個方法:

SOM的神經元被存儲在一個基本陣列。每個神經元由一個雙精度值的向量(輸入神經元大小的另一個陣列)組成,並初始化爲一個隨機值。

據我瞭解算法,這實際上是我需要實現它。

因此,對於訓練,我隨機選擇訓練數據樣本,並使用樣本值和神經元權重的歐氏距離計算BMU。

之後我根據鄰域函數和學習速率更新它的權重和其範圍內的所有其他神經元。

然後,我減少了鄰域函數和學習率。

這樣做直到固定的迭代次數。

我現在的問題是:如何確定訓練後的集羣?到目前爲止,我的方法是提出一個新的輸入向量,並計算它與BMU之間的最小歐幾里得距離。但這對我來說似乎有些天真。我相信我錯過了一些東西。

回答

3

這樣做沒有單一的正確方法。正如你所指出的,找到BMU就是其中之一,如果你只是想找到最相似的集羣,唯一有意義的是BMU。

如果你想重建你的輸入向量,返回BMU原型也可以,但可能不是很精確(它等價於最近鄰規則或1NN)。然後你需要在神經元之間進行插值以找到更好的重建。這可以通過加權每個神經元與它們到輸入向量的距離成反比,然後計算加權平均值(這相當於加權的KNN)來完成。您也可以將此插值僅限制在BMU的鄰居,這將工作得更快,可能會給出更好的結果(這將被加權5NN)。這種技術在這裏使用:The Continuous Interpolating Self-organizing Map

您可以在這裏看到並嘗試使用這些不同的選項:http://www.inf.ufrgs.br/~rcpinto/itm/(不是SOM,而是親密的表親)。點擊「應用」使用重建向量對曲線進行迴歸,然後選中「繪製迴歸」並嘗試不同的選項。

順便說一下,您的實施說明是正確的。

+0

感謝您的詳細解答和您提供的鏈接! –

1

現在很常見的方法是軟子空間聚類,其中添加了特徵權重以找到最相關的特徵。您可以使用這些權重來提高性能,並利用歐幾里得距離來改進BMU計算。

+0

感謝您的回答!這種方法在訓練som之後如何確定聚類?你能提供一些關於這方面的詳細信息嗎? –

+1

對你而言,絕對是一個很好的例子: Bassani,H.F。; Araujo,AFR,「Dimension Selective Self-Organizing Maps With Time-Varying Structure for Subspace and Projected Clustering,」Neural Networks and Learning Systems,IEEE Transactions on,vol.PP,no.99,pp.1,1 [link]( http://ieeexplore.ieee.org/xpl/articleDetails.jsp?reload=true&arnumber=6803941)。 –

+0

它的方法類似於你的(min euclidian距離),但顯然你想要在你的應用程序中更加健壯,所以......這可能是值得的。 –