自己組織化マップは、ニューラルネットワークアルゴリズムのひとつである。
KH Coderで自己組織化マップを描くにはどうやったらよいか?
- 自己組織化マップの前にニューラルネットワークとは何か?
- 自己組織化マップとは何か?どうやって描かせているか?
- 自己組織化マップを完成させるには時間がかかる
- 抽出語の取捨選択
- KH Coderで自己組織化マップを描く【無料でテキストマイニング】【動画】
- まとめ
- 参考サイト
- おすすめ書籍
自己組織化マップの前にニューラルネットワークとは何か?
自己組織化マップはニューラルネットワークの一つである。
では、ニューラルネットワークとは何か?
ニューラルネットワークとは、ヒトの脳の神経回路を、まねたモデルのことである。
神経細胞(ニューロン)は、細胞体から長い突起(軸索 じくさく)を伸ばしていて、次の神経細胞に信号を伝達している。
神経細胞は、入ってくる信号を処理して、次の細胞に出力する働きを持っている。
神経細胞回路の入力、信号処理(修飾)、出力の活動に似ているので、ニューラルネットワークと呼ばれる。
自己組織化マップとは何か?どうやって描かせているか?
自己組織化マップの原理
まず出力層と呼ばれるマップの「原型」を用意する。
マップはノードと呼ばれる六角形のマス目で構成されていて、最初はランダムな「特徴」のマス目になっている。
KH Coderでは、デフォルト設定で一辺が20個のノードで構成されている。
実際のデータは入力層の入力(「抽出語」に当たる)と呼ばれ、入力の「特徴」と出力層の「特徴」を比較して、一番近いノードを選ぶ。
選ばれた一番近いノードとその近傍のノードの「特徴」を更新する。
全部の入力について繰り返し、その1回分を何度も繰り返すことで、だんだん似た者同士が集まってくる。
そして、最終的な出力層(これが完成形のマップ)を作り上げる。
何か外的な規準(「教師」)がなくても、似た者同士が集まってきて、最適な図が「勝手に」できてくるので、「自己組織化」マップと呼ばれる。
「教師なし」のニューラルネットワークアルゴリズムに分類される理由だ。
自己組織化マップをKH Coderで描くには?
メニューバーから「ツール」→「抽出語」→「自己組織化マップ」を選択するとオプション設定ウィンドが開く。
開いたウィンドの右下のOKをクリックすれば作成を開始する(が、とても時間がかかるので、覚悟してクリックする。詳しくは後述)。
自己組織化マップ作成のための抽出語間の距離
抽出語同士の近さ・遠さの距離は、何を使っているか?
KH Coderでは、ユークリッド距離を使っている。出現頻度の絶対値に影響を受けないように、標準化して、発現パターンの距離にしてある。
ユークリッド距離とは?
https://toukeier.hatenablog.com/entry/2019/06/26/211841toukeier.hatenablog.com
ノードのクラスター化の結果を色分け・境界線で分けることで解釈しやすく
出来上がりの自己組織化マップを掲示する。
六角形のマス目一つ一つがノードである。
ノードの座標をWard法で分類して、隣接するノードをクラスター化している。
同じクラスターは同じ色で塗り分け、クラスター間は境界線を引いているため、わかりやすくなっている。
Ward法とは?
https://toukeier.hatenablog.com/entry/2019/08/17/213342toukeier.hatenablog.com
ノードの色分けはカラフル以外に3つある
ノードの色分けのデフォルトはカラフルに塗りわけられるものだが、ほかに3つある。
一つは「グレースケール」。
モノトーンになる。
色を使えない出版物の場合などはこのほうが良いかもしれない。
二つ目は「度数」。
複数の語がプロットされたノードは濃い色に塗られる。
三つ目は「U-Matrix」。
隣接ノードとのユークリッド距離を計算し、遠いときに濃い青色で塗る。
濃い青色の「線」が形成されていれば、その線を境に語の出現パターンが異なっていると見る。
クラスターの結果と突き合わせてみると、同じ傾向が見て取れる。
自己組織化マップを完成させるには時間がかかる
自己組織化マップを描かせるには、とにかく時間がかかることを覚悟したほうがいい。
PCのCPUがどのくらいの力を持っているかにもよるが、60個の抽出語で、文書(Tweet数)が約1000の場合、1時間はゆうにかかった。
PCは、ThinkPad X220 Core i5-2430M 2.4GHz、RAMは4GB、OSはWindows 10 Homeだ。
自己組織化マップのオプションはデフォルトのままを使った。
学習回数を見ると1000とAutoと見える。
学習回数の最初の1000回は、大まかな順位付けを行う段階である。
次のAutoは、ノード数の500倍で、一辺が20個の場合ノードが400個なので、200,000回の学習回数で、微調整を行う収束段階となっている。
「20万回の学習」と言われれば、よほど時間がかかるだろうと想像できる。
抽出語の取捨選択
出現頻度は高くても意味がない語は、「最大出現数」で調節して取捨選択する。
KH Coderで自己組織化マップを描く【無料でテキストマイニング】【動画】
KH Coderで自己組織化マップを描く方法を解説した動画。
よければどうぞ。
まとめ
KH Coderで自己組織化マップによるテキストマイニングを実施してみた。
自己組織化マップは、まるで子供がいろいろな物事を自分で経験・理解して、学習の結果、似た者同士をきれいに分類して記憶するような過程をもって、自動的に描き上げられた図のことである。
語と語の関連を探索する一つの方法として、興味深い方法と言える。
ただし、時間がかかることは覚悟しなければならない。
マップの作成を開始したら、スマホでネットサーフィンやSNSでもしながら、気長に待とう。
参考サイト
Rと自己組織化マップ
https://www1.doshisha.ac.jp/~mjin/R/Chap_30/30.htmlwww1.doshisha.ac.jp
子供でもわかる「自己組織化マップ」
おすすめ書籍
KH Coder オフィシャルブック II
コメント