Self Organizing Map e-Learningの頭文字をとったSOMeL(染める).
機械学習手法の一つであるSOM(自己組織化マップ)を直感的に理解するためのデモプログラム.
リンク https://jun-t-git.github.io/som/
Self Organizing Map(自己組織化マップ)はT.Kohonenによって開発された教師なし学習手法で,高次元データを低次元に写像することができる.
SOMeLでは,SOMによって色配列を3次元(RGB)から2次元(位置)に変換している. 似た色(RGBの値が近い色)同士は近くにマッピングされる.
アルゴリズムは以下の通りである.
実行すると以下のようになる.
- Panel Size...マッピング用平面のサイズ(1辺のパネル数).3~30の範囲で指定可能.
- Input Size...入力色数.3~30の範囲で指定可能.
- Neighbor(Init)...色の変更範囲の初期値.1~30の範囲で指定可能.
- Input...入力色(並べ替えたい色).RGBで指定可能.
- Test...テスト用の色.RGBで指定可能.
- Pred...入力色配列のうち,Testと最も平面上の距離が近い色.
- Truth...入力色配列のうち,Testと最もRGBの距離が近い色.
- Accuracy...Testをランダムに与えながら1,000回行ったとき,Pred=Truthとなった割合.
- Step...回数.
- Learning Rate...学習率(色をどれだけ変更するか).
- Neighbor...色の変更範囲.
- start...SOMを実行.
- stop...一時停止.
- next...1入力のみ実行.ひとつずつ見ながら理解するために使う.
- test...入力のうちTestとRGB距離が最も近い色(Truth)と平面上の距離が最も近い色(Pred)が一致しているかを確かめ,正解率を算出する.
- reset panel...マッピング用2次元色配列をリセット.
- reset...マッピング用2次元色配列と入力をリセット.