自己組織化マップ

web上で見た自己組織化マップ(self organizing map)のデモプログラムがカッコ良かったので,自分でも実装してみました.実装の際は,以下のサイトが説明がわかりやすく非常に参考になりました.
自己組織化特徴マップ(SOM)

学習データはMNISTの手書き数字画像データセットを使っています.学習時の様子はこんな感じです.

各グリッド(ノード)の色がそのグリッドに割当てられたラベル(数字)を表していて,赤色のグリッドは入力データに最も近いノードです.緑色はマウスクリックで選んだノードで,そのノードに対応する画像データが右上に表示されています.

mnist_som_
最終結果はこんな感じです.学習が進むにつれて,数字形状に応じていい感じにクラスタができていくのが面白いですね.形の似ている4と9なんかは近い位置にまとまっていて,境界はあやふやな感じになっています.

実行ファイルを置いておきますが,利用は自己責任(略)でお願いします.VC++2013ランタイムが要求されるかもしれません.
mnist_som.zip

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください