web上で見た自己組織化マップ(self organizing map)のデモプログラムがカッコ良かったので,自分でも実装してみました.実装の際は,以下のサイトが説明がわかりやすく非常に参考になりました.
自己組織化特徴マップ(SOM)
学習データはMNISTの手書き数字画像データセットを使っています.学習時の様子はこんな感じです.
最終結果はこんな感じです.学習が進むにつれて,数字形状に応じていい感じにクラスタができていくのが面白いですね.形の似ている4と9なんかは近い位置にまとまっていて,境界はあやふやな感じになっています.
実行ファイルを置いておきますが,利用は自己責任(略)でお願いします.VC++2013ランタイムが要求されるかもしれません.
mnist_som.zip