【機械学習の基本のキ】教師あり学習,教師なし学習,強化学習とは?例と一緒にわかりやすく解説

どうも~むるむるです~

よく大学などの機械学習の最初の授業では,代表的な学習法の種類として

  • 教師あり学習(Supervised Learning)
  • 教師なし学習(Unsupervised Learning)
  • 強化学習(Reinforcement Learning)

の3つの学習法をまず説明されることが多いです.

この記事では,その代表的な3つの学習法について,それぞれの違いをわかりやすく具体的な例も含めて説明していきたいと思います.

記事の最後では3つの学習法以外の学習法について数行程度で簡潔に説明しています.

この記事の内容についてはYoutubeでも説明しています.

3つの学習法の違いについて

教師あり学習 VS 教師なし学習

教師あり学習と教師なし学習の違いは比較的わかりやすいので,まずそこから説明していきます.

教師あり学習と教師なし学習の違いは,データに正解ラベル(教師データ)があるかないかです.

ニュースの記事データを例に教師あり学習と教師なし学習の違いを考えてみましょう.

いま,ニュース記事がたくさんあったとしましょう.例えばYahooニュースを思い浮かべていただければわかりやすいかと思います.ニュースのウェブサイトには大量の記事データがありますよね.

教師あり学習を使う例を考えてみましょう.Yahooニュースでは記事ごとにカテゴリが割り振られています.たとえば,選挙のニュース記事であれば「政治」カテゴリ,おもしろい科学的な発見についての記事であれば「科学」カテゴリなどです.

ここで記事の内容によってカテゴリを割り振るタスクを考えましょう.この場合,正解ラベル(教師データ)は記事のカテゴリになります.教師あり学習では,記事とそのカテゴリのペアデータを大量にコンピュータに与え”こんなことが書かれていればカテゴリはこれだ”というパターンを学習します.そして見たことのない記事に出会った時も記事に書かれている内容から自動でその記事のカテゴリがなんなのか識別させることができるようになります.

一方で,教師なし学習の場合は,教師データ(この例で言えば記事のカテゴリ)は与えられません.教師なし学習を使ったアプローチの例としては,似た記事同士でグループ分けをすることが考えられます.

この際,コンピュータに与えられるのは大量の記事データのみになります.そして,その記事データから,どの記事とどの記事は内容が似ていて,どの記事とどの記事は違う内容が書いてあるかを学習しグループ分けを行います.

上で述べた教師あり学習を使ったカテゴリの識別を分類(Classification)といい,教師なし学習を使ったグループ分けをクラスタリング(Clustering)と呼びます.

教師あり学習

教師あり学習では,入力データから,それに対応する出力データをなるべく誤差なく予測することが目的となります.

学習の際にはコンピュータに入出力のペアデータ(例えばニュース記事(入力)とそのカテゴリ(出力))が与えられ,そのパターンを学習することでコンピュータが新しい入力データを与えられたときに正しい出力をできるようにすることができるようにします.

教師あり学習には,正解データの値が連続値を取る場合の回帰と,そのデータが属するクラスである場合の分類の二つがあります.

回帰(Regression)とその例

回帰は教師あり学習のうち,教師データが連続的な値を取るものです.

例えば,住宅の価格(出力)をその地域の犯罪率,住宅所有者の所得,人種の割合など(入力)から予測するという問題は回帰になります.この場合,出力は住宅の価格となり連続的な値(例えば1000万や1億円)を取ること明らかだと思います.

分類(Classification) とその例

分類は教師あり学習のうち,教師データが,そのデータが属するクラスである問題のことを言います.

機械学習の説明でよく出てくる犬と猫の画像の識別問題は,この分類問題にあたります.犬と猫の画像を識別したい場合,画像という入力が与えられたもとで,その画像に写っているのが犬か猫かという予測をすることが目的となります.この場合は出力が猫クラスなのか犬クラスなのかという,画像が属するクラスになることから,回帰ではなく分類問題であるということがわかるでしょう.

教師なし学習

教師なし学習は教師あり学習と違い正解データが与えられるわけではないので,教師あり学習と違い入力→出力を予測することが目的ではありません.

教師なし学習はデータを分析する際にデータの構造を抽出するために使われることが多いです.

教師なし学習は,その目的によっていくつか手法が存在しますが,この記事ではその中でもよく使われる「クラスタリング」について説明します.

クラスタリング (Clustering)とその例

クラスタリングは,与えられたデータから似ているデータを探し出しクラスタごとに分けるのが目的です.

分類と少し似ている気もしますが,上でも述べた通り,クラスタリングでは正解データは与えられません.ニュース記事のクラスタリングをするのであれば,使われるのはあくまで記事データのみで,カテゴリは与えられません.与えられた記事データからコンピュータが似ている記事データ同士をクラスタごとに分けることになります.

強化学習 VS 教師あり/なし学習

強化学習は,教師あり学習とは違い教師データが与えられるわけではなく,教師なし学習のように,ただデータだけが渡されるわけでもありません.

強化学習では教師あり/なし学習と違い,初めにデータが与えられるのではなく,機械がある環境に置かれなにか行動を取ることで自分からデータを集めていきます.そして強化学習では正解データの代わりに,機械が

  • どの状態(State)で
  • どんな行動(Action)をとり
  • それによって次はどの状態に移ったか

によって報酬(Reward)が与えられ,機械はこの報酬を最大化するために自分の行動を調整します.強化学習について詳しくは以下の章で説明します.

強化学習

強化学習での最終的な目的は,報酬を最大化するための方策(Policy)を見つけることです.

方策とは自分の置かれている状態において取るべき行動を示したものです.つまり,方策とは状態を入力として,行動を出力とする関数になります.

強化学習の典型的な応用先として,ロボティクスやゲームがありますが,ここでは例としてロボットが以下のグリッドワールドでスタート地点からゴール地点まで行くための方策を学習する過程を見てみましょう.

移動方向は上下左右に1マス,黒いマスは行き止まりで通れないとしましょう.

この例では状態はロボットがどのマスにいるか,行動は上下左右のどの方向に進むかになります.なので方策は,ロボットが,どのマスにいる(状態)ときに,どの方向に進めば(行動)よいかを記したものになります.

報酬の設定としては,このロボットがゴールに辿り着いたら100の報酬を得ることができますが,ゴール以外のマスに1マス進むごとに – 1の負の報酬を受け続けることになるとしましょう.

さて,ロボットは最初,このグリッドワールドのことを全く知りません.なので,少しでも何か情報を得ようとランダムに動き回ります.

赤ペンがロボットが通った軌跡です.ロボットはなかなかゴールにたどり着けませんが,このグリッドワールドからのシグナルとして一歩進むごとに- 1の負の報酬を受け取ります.負の報酬しか得られずロボットには地獄のような状況が続きます.

ロボットは報酬を最大化したいので,なるべく負の報酬を受け取るような行動(方策)は避けるようになります.

そして何度も試行錯誤を繰り返すうちになんとか,ゴールへ到達します.

そしてゴールへ到達したと同時に大きな報酬+100を受け取るのです.ロボットはこの報酬を最大化したいので,この正の報酬を受け取ることができたような行動を取るように方策を強化します.

そして,負の報酬はなるべく避けたいので,強化された方策にさらに試行錯誤を重ね最適な方策を見つけていきます.

厳密な説明ではありませんでしたが,強化学習のイメージをつかんで頂ければと思います.

その他の学習法

さて,以上では機械学習の学習法では基本中の基本である3つの学習法に説明しましたが,機械学習にはまだ他の学習法も存在します.

半教師あり学習(Semi-Supervised Learning)

教師あり学習と教師なし学習を組み合わせた手法です.

逆強化学習(Inverse Reinforcement Learning)

逆強化学習は文字通り強化学習の逆のことをします.

強化学習では報酬があたえられたもとで,それを最大化する方策を見つけますが,一方で逆強化学習では方策から報酬を推定します.

模倣学習(Imitation Learning)

強化学習の説明の時に出てきた方策を,エキスパートを真似る(模倣する)ことによって学習する方法です.

言い換えると,方策を教師あり学習で学習する方法です.

転移学習(Transfer Learning)

転移学習は,あるタスクで学習したスキル(モデル)を他のタスクに転移させることが目的になります.

メタ学習(Meta Learning)

メタ学習は転移学習と関連の深い学習方法です.

メタ学習では複数のタスクから「学習法を学習」します.新しいタスクに出会った時に,過去の経験を生かし効率よく学習が行えるようすることが目的です.

能動学習(Active Learning)

能動学習の目的は効率よく,少ないデータから学習することが目的です.学習データが限られているときなどに有効です.

まだ学習法はありますが,以上その他の学習法でした.

それぞれの学習法については,気が向いたらブログの記事にするなりYoutubeの動画にしたいと思います.

最新情報をチェックしよう!