自己組織化マップ / 教師なし学習を行うニュートラルネットワーク

自己組織化マップ

自己組織化マップ(self-organizing map; SOM)(Kohonen, 1997)は、教師なし学習を行うニューラルネットワークの 1 種である。SOM では、入力層と出力層の 2 つの層で構成される。SOM の入力層は特徴量と同じ次元数であり、出力層は n×m の平面であるのが特徴的である。出力層のサイズを表す n と m は、ハイパーパラメーター として与える必要がある。

SOM は、高次元のデータを 2 次元のデータに射影しているので、高次元データの視覚化などに使われたりする。また、2 次元に射影されたデータでは、入力データの特徴に応じて、同じ箇所にかたまる性質を持つため、クラスタリングなどにも使われたりする。

References

  • R. Wehrens and L.M.C. Buydens. Self- and Super-organising Maps in R: the kohonen package. J. Stat. Softw. 2007, 21:5. J. Stat. Softw.
  • Kohonen, T. Self-Organiziing Maps. Springer. 1997.

アルゴリズム

SOM は入力層と出力層から構成され、入力層の各ユニットは出力層の各ユニットと全結合している。ここで、SOM を使って解析したいデータは p 個の特徴量を持ち、全体で n サンプルあるとする。

\[ X = \begin{pmatrix} \mathbf{x}_{1} & \mathbf{x}_{2} & \cdots & \mathbf{x}_{n} \end{pmatrix}^{T} \quad \text{,} \quad \mathbf{x}_{i} = \begin{pmatrix} x_{i1} \\ x_{i2} \\ \cdots \\ x_{ip} \end{pmatrix} \]

SOM の出力層のサイズはあらかじめ与えておく必要がある。ここでは、出力層として m×v 個のユニットを二次元平面に用意する。各ユニットは、自身の状態を示すベクトル(参照ベクトル)を持つ。参照ベクトルは、m×v 個の要素からなる。その初期値は、ランダムに与えられる。場合によって、データ X の主成分分析の結果を初期値とすることもある。

\[ M = \begin{pmatrix} \mathbf{m}_{1} & \mathbf{m}_{2} & \cdots & \mathbf{x}_{mv} \end{pmatrix} \quad \text{,} \quad \mathbf{m}_{i} = \begin{pmatrix} m_{i1} \\ x_{i2} \\ \cdots \\ m_{ip} \end{pmatrix} \]

SOM の学習は、入力データを 1 つずつ与えて、参照ベクトルの値を更新してく過程をいう。実際のアルゴリズムは次のように行う。

  1. j = 1 とする。
  2. サンプル xj とすべてのユニットの参照ベクトル mk (k = 1, 2, ..., uv) とのユーグリッド距離を計算する。最短距離を与えるユニット best matching unit (BMU) を決める。

  3. 次の式に基づいて、すべてのユニットの参照ベクトルを更新する。ここで、hk 関数は、BTU に隣接するユニットであればゼロ以外の値を取り、それ以外のユニットであればゼロの値をとる近傍関数とする。
    \[ \mathbf{m}^{(new)}_{k} = \mathbf{m}^{(old)}_{k} + h_{ck} (\mathbf{x}_{j} - \mathbf{m}^{(old)}_{k}) \]
  4. j を 1 増やして、j = n になるまで手順 2 ~ 4 を繰り返す。

距離計算に関しては、ユーグリッド距離以外を用いられる場合がある。また、出力層は正方形ではなく、正六角形や球面を用いられる場合がある。また、近傍関数の形に関しても、様々な形で拡張されている。