強化学習、深層学習って何?
こんにちは! ウシジです。
強化学習、深層学習に関するブログを書き始めるにあたり、 まずはそれぞれがどのようなものなのか、一度まとめておきたいと思います。
人工知能とは?
人工知能に関して、明確に決まっている定義は無いらしく、日本国内の研究者でも定義が微妙に異なり、研究者ごとに、”人工的につくった知的な振る舞いをするためのもの(システム)である”とか、”「知能を持つメカ」ないしは「心を持つメカ」である”、”人工的につくられた人間のような知能、ないしはそれをつくる技術”といった定義をされているようです。 (参考:松尾豊「人工知能は人間を超えるか」(KADOKAWA))
意味合いとしてはかなり広い「人工知能」と言う言葉ですが、最近流行っている人工知能は、機械学習、特に、強化学習、深層学習の技術を活用したもののようです。
強化学習(Reinforcement Learning)とは?
機械学習は、大きくは次の3つに分類することができます。
- 教師あり学習
- 教師なし学習
- 強化学習
(参考: UCL Course on RL, Lecture 1: Introduction to Reinforcement Learning)
教師あり学習
教師あり学習とは、名前の通り、教師が存在する(答えが明確となっている)学習のことです。
例えば、手書き文字認識の学習が教師あり学習です。
手書き文字認識の学習では、MNISTというデータセットが有名で、これは、手書きの数字「0~9」に正解ラベルが与えられているデータセットです。 各数字の手書き画像からどの数字かを判断させ、その結果と正解ラベル(教師)を比較、フィードバックすることで学習の精度を高めていきます。
教師なし学習
教師なし学習とは、先ほどの教師あり学習とは逆で、教師がいない(答えが明確になっていない)学習のことです。
答えが無いために、何か基準となる量を定義し、その量を最大もしくは最小化するよう学習します。
例えば、クラスタリング分析が教師なし学習にあたります。
強化学習
強化学習は、教師あり学習と教師なし学習の中間にあるような学習です。(文献によっては、教師なし学習に分類しているものもあると思います。)
強化学習では、教師あり学習のように明確な答えが与えられるわけではなく、また、教師なし学習のように指標が全く与えられていないというわけでもありません。強化学習では、答えの代わりに報酬が与えられ、その報酬を最大化するように学習を行います。特定の環境において、どのように行動をすればどのくらいの報酬を得ることができて、その報酬を最大化するにはどうすれば良いかを学んでいきます。
下図のように、エージェント(AI)とそれが動く環境があり、エージェントは、観測した状態と報酬を基に、次の行動を取ります。
具体的には、サッカーの試合を行うAIエージェントを想像すると分かりやすいかもしれません。 サッカーのフィールド全体(各選手やボール、地面の状態、天候等)が環境であり、AIエージェントは、その環境ないで観測可能な状態(各選手やボールの位置等)と状態によって生じる報酬を得ます。報酬としては、試合に勝つと100点、点数を入れると10点、ボールを奪うと1点、試合に負けると-100点、点数を入れられると-10点、ボールを奪われると-1点というように事前に決めておきます。AIエージェントは、状態とそれに応じて得られる報酬を見ながら、試行錯誤的にどのような行動を取れば、報酬を最大化できるのかを学んでいきます。
ちなみに、GoogleのAlphaGoもこの強化学習を行なっています。
深層学習(Deep Learning)とは?
深層学習は、上記の教師あり学習/教師なし学習/強化学習とは別の切り口で、多層のニューラルネットワークを用いる機械学習の一種です。 従来の機械学習では、学習を行う際に、形や色等、判断に必要となる特徴を人が定義する必要がありました。深層学習では、人間の脳神経回路をモデルとした多層のニューラルネットワークを用い、特徴量をAIが自ら抽出します。
例えば、先ほど教師あり学習で例にあげた手書き文字認識の学習では、0~9までの数字をどのように見分けるかを定義して、学習させようとすると、条件が多岐に渡り、かなり難しくなってしまうと思われます。それを多層のニューラルネットワークを用いることにより、判断に必要となる特徴量を定義することなく、データから学習させることができるようになります。
深層学習のイメージとしては、下記の動画が分かりやすいと思います。