↓ メインコンテンツへスキップ
  1. 第10講 機械学習(3/3; 教師なし学習)/

教師なし学習

教師なし学習とは
#

教師なし学習(Unsupervised Learning)は機械学習の手法の一つです。 教師なし学習では、正解データを与えずに、入力データのみで学習を行います。 正解が与えられているわけではありませんので、データの構造やパターンを見つけることを目的とします。

教師なし学習の例
#

クラスタリング(Clustering)
#

データをある規則に従ってグループ分けすることです。 分けられたグループのことをクラスタ(Cluster)と呼びます。 クラスター分析(Cluster Analysis)は、階層的クラスタリングと非階層的クラスタリングに分けられます。 階層的クラスタリングは段階的にクラスタ数を増やす(減らす)方法で、 非階層的クラスタリングは、最初に適当に目的のクラスタ数に分割し、クラスタ内の要素を調整していく方法です。

階層的クラスタリング(Hierarchical Clustering)
#

各要素を別のクラスタとして始め、最終的に目的のクラスタ数になるように結合していく凝集(ボトムアップ)型階層的クラスタリングと、 全ての要素を1つのクラスタとして開始し、最終的には、目的のクラスタ数になるよう段階的に分割していく分散(トップダウン)型階層的クラスタリング があります。 それぞれの著名なアルゴリズムは次の通りです。

  • 凝集(ボトムアップ)型
    • ウォード法(Ward’s method)
    • 群平均法
    • 最短(最長)距離法
    • 重心法
  • 分散(トップダウン)型
    • Diana法

階層的クラスタリングは、最初に分割後のクラスタ数を決めなくて良い点がメリットとして挙げられます。 逆にデメリットは、全ての要素間の距離を計算するため、一般的に要素数が多くなると、計算量が膨大になってしまうことです。 また、アルゴリズムの選択によって、異なる結果になるため、どのアルゴリズムを選択するか試行錯誤が必要であることもデメリットとして挙げられるでしょう。

非階層的クラスタリング
#

最初に適当に指定されたクラスタ数に分割し、クラスタ内の要素をクラスタ間で移動させる手法です。 クラスタ内の近さをどのように定義するかによって、異なるアルゴリズムになります。

  • \(k\)平均法(\(k\)-means method)
    • クラスタ内の各要素からの距離が最小となるようなクラスタの中心を見つける手法。
  • DBSCAN (Density-based spatial clustering of applications with noise)
    • 一定の密度がある領域をクラスタとして認識する手法。
  • Mean-shift法
    • 密度が局所的に最大となる点を中心にクラスタを構成する手法。

非階層クラスタリングは、階層的クラスタリングに比べて計算量が少ないため、大規模データに対しても適用可能です。 一方で、クラスタ数を事前に決めておく必要があるため、最適なクラスタ数を求めるため、試行錯誤が必要な点がデメリットとして挙げられます。

次元削減(Dimensionality Reduction)
#

次元削減は、教師なし学習を通じて、計算に利用する変数を\(m\)個に減らすことです。 減らすといっても、不要なデータを削除するのではなく、これまで使ってい\(n\)個のデータを何らかの式によって\(m\)個の値に集約させます。 主要なアルゴリズムは次の通りです。

  • 主成分分析(PCA; Principal Component Analysis)
  • \(t\)-SNE(\(t\)-distributed Stochastic Neighbor Embedding)
  • 自己符号化器(Autoencoder)