SOM

SOMについてちょっと調べてみる。
有名な手法なはずだが、以外と詳細に説明してくれているサイトのようなものはなかった。


研究室にニューラルネットの本があって、それを参考に調べてみる。
そんなに難しいカンジではなさそう。
要は多次元データを2次元ないし1次元空間上にマッピングするということらしい。


入力ベクトルに似ている重みベクトルを探して、その重みベクトル及び周辺のベクトルを入力の方に引き寄せる。
似ているデータ同士は近くに集まってくるから、自然とクラス分けのようなものができるということのようだ。
重みベクトルをどれくらいの大きさの格子点としての配置するのか、学習率をどのように減少させていくのか、更新に用いる半径等が経験的に決めないといけないらしい。


明日はちょっと小さなプログラムを使って試してみようと思う。
が、バイオインフォマティクスで扱うのは、数千〜数万というレベルのベクトルなのですが…
果たしてSOMでうまくいくのか、なんて考えてみたり。


情報工学の各種手法を眺めていると、シンプルなのに、聞いているとなるほど〜というのが多いから面白い。