前回までに「機械学習とは何か」、そして機械学習の手法の1つである「教師あり学習」の仕組みについて説明しました。今回からは、教師あり学習とは反対の「教師なし学習」について説明していきたいと思います。

「教師なし」で学習できるのはすごい?

まず最初に、教師あり学習と教師なし学習の違いについて説明します。それぞれ適している用途が異なるので、違いを知っておくことは非常に重要です。

第4回で説明した教師あり学習の例では、「パンの名前を入力すると飲み物の名前を出力する」ことを考えました。出力する飲み物の名前は、あらかじめ用意した「教師データ(パン、またはパンの組み合わせに対応する飲み物が記述されたデータ)」に基づいた出力となるよう学習したことを思い出してください。また、出力される飲み物の名前は、そのデータに記述された「牛乳」か「コーヒー」のどちらかでした。

ここで、この課題に対する見方を少し変えてみましょう。

「パンの名前を入力すると、特定の飲み物の名前のいずれかを出力する」というのは、「パン(またはパンの組み合わせ)を『牛乳』か『コーヒー』のいずれかのグループに分類する」と考えることができます。例えば、「あんパン」は「牛乳」グループに分類し、「クリームパンとあんパン」なら「コーヒー」グループに分類するわけです。

  • あんパン → 牛乳グループ
  • クリームパン、あんパン → 牛乳グループ
  • クリームパン → コーヒーグループ
  • メロンパン、ソーセージパン → コーヒーグループ
  • ジャムパン、あんパン → 牛乳グループ
  • ジャムパン、メロンパン → コーヒーグループ

「パンの名前を入れると飲み物の名前を出力する」というのは、「飲み物別にパンを分類する」のと同じこと

すなわち、前回までに説明した教師あり学習で行っていたことは、ある種の分類問題を解いていたのと同じなのです。こうした視点の切り替えは、「解きたい課題」を「機械学習で解ける問題」に落とし込むために有効なので覚えておいてください。

一方、教師なし学習とは、その名の通り正解データを与えない学習方法のことです。機械学習において、正解がわからない、または正解のないデータを使う場合は、教師なし学習を行います。一言で言えば、データが暗黙的に持つ規則性を抽出することができる学習方法なのです。

教師「なし」学習という名前から、「教師データがないのにルールを抽出してくれるなんてすごい!」「教師あり学習の上位互換なのでは?」と思ってしまいがちですが、実際には適材適所なので、どちらが優れているというようなことはありません。また、「教師なし」と言ってはいますが、実際には明示的な正解がないだけで、与えているデータ全てが教師データのようなものだと考えていただければと思います。

明示的な正解が与えられていないデータを使う場合によくある課題として、データのグループ化問題があります。これは、「データを複数のまとまりに分割する」というものです。データをグループ化することを「クラスタリング」と呼びます。また、クラスタリングによってできるグループを「クラスタ」と呼びます。

教師なし学習は、このクラスタリングを行う際に、非常に役に立つ学習方法です。なお、役に立つというだけで「教師なし学習=クラスタリング」というわけではないので、その点はご留意ください。

※ 教師あり学習が解ける課題は、分類問題以外にもあります。ここでは割愛しますが、いずれ説明したいと思っています。

分類とクラスタリングは何が違うの?

分類とクラスタリングは、非常に混同しやすい言葉です。自分が解きたい問題がどちらに属するのかを見極め、用途に応じて教師あり学習と教師なし学習を使い分けると良いでしょう。以下に、それぞれについて簡単に表にまとめてみました。

■分類(教師あり学習)

目的 パンを甘いパンか、甘くないパンかに分類するためのモデルを作りたい(規則を学習したい)
学習に使用するデータ 甘いパン:ジャムパン、クリームパン、メロンパン、チョコチップパン、あんパン、シナモンロール
甘くないパン:焼きそばパン、ソーセージパン
学習によって得られるもの パンを甘いパンか、甘くないパンかに分類するためのモデル

学習によって得られたモデルを用いることにより、未知のデータ(未知のパン名)が入力された際に、それが甘いパンと甘くないパンのどちらに分類されるのかを推測することができます。

■クラスタリング(教師なし学習)

目的 パンを2つのクラスタに分けたい
学習に使用するデータ メロンパン、あんパン、焼きそばパン、ソーセージパン、クリームパン、チョコチップパン、ジャムパン、シナモンロール
学習によって得られるもの 使用したデータから作成された2つのクラスタ

「使用したデータから作成された2つのクラスタ」は、例えば以下のようになります。

クラスタ1:ジャムパン、クリームパン、メロンパン、チョコチップパン、あんパン、シナモンロール
クラスタ2:焼きそばパン、ソーセージパン

作成された2つのクラスタ

ここで重要なポイントは、クラスタリングで得られたクラスタ1とクラスタ2が、どういう特徴を持ったデータが集まったクラスタなのかは、人が中身を見て類推する必要があるということです。今回の例では、クラスタ1は甘いパン、クラスタ2は甘くないパンだとすぐわかりますが、使用するデータや得られたクラスタ数によっては、一見するだけではどんな理由で集められたものかよくわからないこともあります。

また、使用するクラスタリング方法によって結果が変わることにも注意してください。先のクラスタリング結果はたまたまパンの味で分かれていましたが、方法が違えば、以下のようなクラスタが得られることも考えられます。

クラスタ1:クリームパン、あんパン
クラスタ2:ジャムパン、メロンパン、チョコチップパン、シナモンロール、焼きそばパン、ソーセージロール

違う方法でクラスタリングした結果

クラスタ1とクラスタ2が、それぞれどういった特徴を持つ集まりかわかりますか? ――パンの中に具材が完全に包み込まれているものがクラスタ1、包み込まれていないものがクラスタ2となっています。

このように、教師なし学習を使ったクラスタリングでは、クラスタリングの方法や取得するクラスタ数、使うデータによって得られる結果が異なります。そして、得られたクラスタがどういった特徴を持つ集まりなのかは、人間が見て類推しなければなりません。クラスタリングによって得られた結果が期待と大きく違っていた場合は、クラスタ数やクラスタリング方法、必要に応じてデータ自体も見直して試行錯誤すると良いでしょう。

では、実際にクラスタはどのように作成されるのでしょうか。次回は教師なし学習を使った具体的なクラスタリング方法について説明します。

著者紹介


国立研究開発法人 情報通信研究機構
ユニバーサルコミュニケーション研究所
データ駆動知能システム研究センター 専門研究員
大西可奈子

2012年お茶の水女子大学大学院博士後期課程修了。 博士(理学)。同年、大手通信会社に入社。2016年より現職。
一貫して自然言語処理、特に対話に関する研究開発に従事。
人工知能(主に対話技術)に関する講演や記事執筆も行う。
twitter:@WHotChocolate