機械学習は「教師あり学習」と「教師なし学習」に大別されます。
この記事では、「仕事では使わないけれど最近はやりの機械学習について何となく知っておきたい」という方でも理解できるように、「教師なし学習」について基本的な説明を行います。
「教師あり学習」について知っていた方が理解がスムーズかと思いますので、
「まだ知らないよ」という方はこちらの記事をご覧ください。
この記事の内容
- 教師なし学習とは
- クラスタリングについて
- 次元削減について
教師なし学習とは
教師なし学習とは、コンピュータに「正解となるデータ」を与えない学習方法のことです。
教師あり学習では、訓練データを与えることによって、コンピュータに「知識を与える」ことが必要でした。一方、教師なし学習では、人間があらかじめ何かを教えることはありません。
データの分析や情報の抽出といった場面で活躍することが多く、
「処理したいデータを渡せば、あとは難しい計算を勝手にやってくれる!」というイメージです。
以下におおまかな手順をまとめておきます。
教師なし学習の手順
- 学習アルゴリズムを選ぶ
- 処理したいデータをコンピュータに渡す
- 分析や情報処理をコンピュータが行い、その結果を受け取る
教師なし学習が使われる場面として、 ・**クラスタリング** ・**次元削減**
があります。
これらについて具体例を挙げながら以下で解説していきます。
教師なし学習 ①クラスタリング
クラスタリングとは、教師なし学習を通してデータをいくつかのグループに分けることを指します。
例えば、動画配信サービスの利用者を、閲覧履歴などから数種類のグループに分類する場合などが想定されます。クラスタリングを行うことによって、分類された利用者ごとに最適な「おすすめ動画」を表示できるといったメリットが想定されます。
クラスタリングには、「階層型クラスタリング」と「非階層型クラスタリング」の2種類があります。
###階層型クラスタリング
階層型クラスタリングは、以下のような樹形図型の分類を行うクラスタリングです。
与えられたデータに対して、似ているデータ同士を同じクラスターとして分類し、クラスター同士の類似性によって樹形図を作成します。
階層型クラスタリングの仕組みについては少々煩雑なので省略しますが、気になる方はこちらの記事をご覧ください!
階層型クラスタリングの特徴は、人間が結果を視覚的に理解しやすい点です。
「動画ジャンルの好み」のように、ある程度まとまりを持ったデータを処理するのは得意ですが、「動画に対するコメント」などのランダム性の強いデータや莫大な量のデータを処理するのは苦手としています。
後者の場合には、次に説明する非階層クラスタリングが一般的です。
非階層型クラスタリング
一方、樹形図型ではなく、いくつかの対等なグループに分けたい時には「非階層型クラスタリング」を使用します。
非階層型クラスタリングでは、幾つのグループに分けたいのか人間があらかじめ設定する必要があります。設定した数に応じて、グループ間の違いができるだけ大きくなるようにクラスタリングを行います。
「ある漫画に対するコメント」のような境界線が曖昧で漠然としたデータや、ランダム性が高いデータなどを、強制的に何種類か分けたいといった場面で利用されます。一方、人間には「なぜこんな風に分かれたの」とわかりにくいことも多いのがデメリットです。
非階層型クラスタリングの仕組みについても省略しますが、気になる方はこちらの記事をご覧ください!
教師なし学習 ②次元削減
次元削減とは、教師なし学習を通して「変数の数を減らす」ことです。
例えば、気温や降水量、土の中のカリウムの量などのトマトの生育に関する100種類のデータがあるとしましょう。この中から、重要な情報がどれなのかを抽出したいとします。
こういった時に、次元削減によって100個から5個のデータに減らせばたくさんのメリットが生じます。
・ ほとんど影響のない質の悪いデータを排除できる
・ データ数が減ることによって、人間が把握しやすくなる
・ コンピュータにとっても計算しやすくなる
次元削減の際には、100個のデータから重要な5個を選ぶのではなく、100個のデータを使って新しく5個のデータを生成します。この新しいデータを潜在変数と呼びます。
今回はイメージしやすいように、「2個のデータを1個にする」際の次元削減を例にみてみましょう。
トマトの赤さと甘さの関係をプロットすると、以下のようになったとします。
「赤いトマトほど甘い」という傾向がわかりますね。
点の分布を見ると、左下から右上に一本の帯ができているのがわかります。
この帯に沿う形で、新しい軸を下のように引いてあげます。
この新しい軸は「赤さと甘さ」を同時に評価できるモノサシです。
このモノサシのメモリを読むことによって、新たな数値「赤くて甘い度」が得られます。
「赤くて甘い度」を新たな潜在変数とすれば、「赤さ」と「甘さ」の2つのデータを1つに減らすことができます。
このように複数のデータの内容を1つにぎゅっと凝縮することが次元削減のおおまかな流れです。
まとめ
- 教師なし学習は訓練データのない機械学習で、クラスタリングや次元削減などに使われる。
- クラスタリングは、データをいくつかのグループに分類する手法。樹形図型に分類するのが階層型クラスタリング、並列関係のグループに分類するのが非階層型クラスタリング。
- 次元削減によって、情報密度の濃い少数の変数に置き換えることができる。