今回は機械学習の3分類(教師あり学習・教師なし学習・強化学習)を取り上げてみたいと思います。
機械学習と一口に言っても、実際には様々な手法が存在します。また、機械学習はどんな問題も解決できる万能薬でもありません。現実の課題に直面した時には、「機械学習を使って解けるのか?」や「機械学習のどんな手法を使うべきか?」を検討することになります。
そのような検討をできるようにするためには、まず機械学習には大きく分けてどのような手法があるのかを知っておく必要があります。
そして、その最も大きな分類こそが次の3つなのです。
教師あり学習 | 正解データを用いて、入力と出力の関係を学習する |
教師なし学習 | 与えられたデータが持つ特徴や関係性を学習する |
強化学習 | 報酬を最大化する行動を学習する |
おそらく初めて学ぶ方であれば、この定義を読んでもしっくりこないと思いますので、これから1つ1つ解説していきたいと思います。
教師あり学習
では、まず教師あり学習から始めましょう。
大前提として、ここでいう「教師」というのは「正解データ」と捉えると分かりやすいかと思います。
と言われても、なかなかイメージしにくいという方もいると思いますので、早速具体例に入ってしまいましょう。今回は画像分類で、入力された画像が猫かどうかを判定することを目的とします。
さて、我々のAIはどうやったら猫の画像を猫である、それ以外の画像を猫でないと判定できるようになってくれるでしょうか?
答えは猫の画像を大量に流し込んで、AIに猫の特徴を学習してもらえばよいのです。
今から猫の画像を1000枚入力するから猫の特徴を学習してね。
大切なのは、今回の分類の対象である猫の画像を流し込んでいるという事実です。今回のタスクは画像が猫かどうかの分類ができればよいのですから、猫の画像というのが正解データなのです。
猫の画像を流し込まれたAIは100枚、200枚・・・と処理するにつれて正解である猫の特徴を学習していきます。
そうか・・・猫には髭や爪があるのか。
こんなイメージです。
今回のタスクの正解データである猫の画像をAIに流し込んで学習させるからこそ、この手法は教師あり学習と呼ばれるわけです。
このようにして、AIは猫の特徴を学習し、画像の分類ができるようになります。
ちなみに、教師あり学習の例としては他にも次のようなものが考えられます。
- 過去のインフルエンザの患者数から来年のインフルエンザの患者数を予測する
- 日本語を英語に翻訳する
教師あり学習には分類と回帰がある
補足的な内容にはなりますが、教師あり学習はさらに分類と回帰に分けることができます。
分類はその名前の通り、対象のカテゴリを特定するというタスクです。画像に映っているのが猫なのか、犬なのか、鳥なのかを判定するといったようなものがまさにそれです。
一方で、回帰は連続的な数値を予測するものです。新製品の売上を予測する、来月の電気代を予測するといったようなものが当てはまります。
教師なし学習
教師なし学習では、教師あり学習とは対照的に、正解データを使用しません。従って、正解・不正解と言った話ではなく、手元にあるデータの特徴や関係を捉えることが目的となります。
早速具体例を見てみましょう。次のグラフは、ある転職サイトの一部の利用者の年齢と年収の関係をプロットしたものだとします。あなたは「このグラフから利用者の傾向として何が読み取れますか?」と聞かれたらどのように答えますか?
おそらく「利用者は年収の低い若年層と年収の高いシニア層に大別できます」といった回答をするのではないでしょうか?
ここであなたがやったことは、与えられたデータを眺めて、特徴を捉えた上でデータをグループ分けするという行為です。正解・不正解と言ったことは関係なく、純粋に与えられたデータだけを見て分かることを分析した結果です。
教師なし学習で行なうのはまさにこのような行為です。
上記のように変数が少なく、見た目でグループが明らかな場合は人間がやった方が早いくらいですが、さらに変数が増えた場合や分布が複雑な場合は教師なし学習を用いて、データの関係性や特徴を使むのが有効になります。
教師なし学習の事例としては他にも以下のようなものが考えられます。
- お店の売上データからどんな顧客層がいるのかを把握する
- 届いたメールを文章の特徴などからグループ分けする
強化学習
最後は強化学習です。
強化学習は教師あり学習とも教師なし学習とも違う考え方の機械学習です。それを理解するために自動運転を例に取って考えてみましょう。
自動運転では絶えず周囲の状況が変わり続ける中で、安全かつ迅速に目的地にたどり着けるように、瞬間瞬間で適切な運転を行なわなければなりません。これは、正解データを使って学習する、またはデータの関係性を見出してグループに分けるといった行為のどちらでもないので、強化学習を用いることになります。
さて、強化学習の中身に入っていくために、まずは強化学習に関連する用語をまとめておきます。ここでも自動運転を例にしてみたいと思います。
用語 | 一般的な定義 | 自動運転の場合 |
---|---|---|
エージェント | タスクの主要プレイヤー | 自分の車 |
環境 | タスクの土台となる条件 | 道路、天候、他車両、歩行者など |
行動 | エージェントの動作 | ハンドルやブレーキの操作など |
状態 | 環境がどのようであるかの情報 | 路面状態、車両の数・位置など |
報酬 | 行動の結果によってもたらされる価値 | 無事故、目的地到達など |
ここで再度強化学習の定義を確認すると、それは報酬を最大化する行動を学習することでした。強化学習において、エージェントは行動をする度に、いくらかの報酬を与えられます。その行動がタスクの成功につながるものであれば、高い報酬を得ますが、タスクの失敗につながってしまうと、報酬は低くなります。AIはタスクを実際に行なうことによって、どういった行動を取れば高い報酬を得られるのかを学習します。そして、高い報酬を得る行動ができるようになれば、タスクは自ずと成功に向かって進んでいくことになります。
再び自動運転を例に取って確認してみましょう。自動運転の学習中に以下の図のような場面に遭遇したとします。自動運転は安全かつ迅速に目的地に辿り着くのが目的ですから、直進して前方の車両に衝突すれば、報酬は低くなります。一方で、うまく車両をの回避して進めば報酬は高くなります。従って、報酬を高くしようとするAIはハンドルを右に切るという行動をするようになります。
②の行動の方が報酬が高いからハンドルを右に切ろう
ここまでが強化学習の基本的な考え方です。ちなみに、強化学習の応用例としては、他にも以下のようなものが考えられます。
- 囲碁・将棋・チェスなどのボードゲームで強いプレイヤーを生成する
- 複数台のエレベーターが最適な動作をするように制御方法を考える
最後に
今回は機械学習の大分類である教師あり学習・教師なし学習・強化学習の基礎について解説をしてみました。
実際に機械学習を活用したい場面に出会っても、これらを明確に区別できていないと、最適な手法を探すことが難しいので、この機会に是非マスターしてしまいましょう!!
最後になりますが、より詳しく学んでみたいという方は、AIの基礎からAI搭載WEBアプリ開発まで学べるキカガク長期コースも活用してみてください!