強化学習

強化学習とは

人間にも言えることですが、何事にも最初からすべての情報を持っているということはなく、時間をかけて学習を行うことで様々な情報を習得していきます。
コンピューターにおいても、同じように学習を行わせ、自分で情報を取得するという機械学習ですが、現実的には人間が与えた情報をもとに理想に近づけるものが多く存在します。
未知の情報に対しても、人間のように自力で解決する方法として、エージェントが行動を選択することで環境から報酬を得るという考え方を用い、この報酬を最大限に得られる方策を学習すること強化学習と呼びます。
教師あり学習と大きく異なる点は、教師あり学習では、「教師データ」という明確な「答え」が提示されるのに対し、
強化学習では、問題の解決時に付与される「報酬」が選択結果によって変動するということを通じて、よりよい行動選択を見つけようと学習するところにあります。
強化学習で扱う対象は、動的計画法などのバッチ処理的な最適化法を確定システムというのに対し、
不確実性があることを前提としている為、確率システムと呼ばれます。
強化学習で扱う対象は、マルコフ決定過程(Markov decision process; MDP)といい、以下の条件の中で学習していく方法です。

  • 環境は状態を持ち、それは完全に正確に観測可能であること。
  • エージェントが行動を行うと、環境が確率的に状態遷移し、環境から確率的に報酬が得られる。その遷移確率と報酬が得られる確率は事前には与えられず、学習過程で学習していくこと。
  • 報酬の指数移動平均を最大化するように行動すること。

※環境が完全・正確には観測可能でない場合は、部分観測マルコフ決定過程 (POMDP) といいます。


強化学習について

  • 報酬と価値観数

最初の状態から最後の状態までに得られる報酬の総和を累積報酬と呼びますが、最終的に報酬の和が無限大に発散する可能性を考慮し、遠い未来であればあるほど割引換算されるようにしたものを割引累積報酬といいます。割引累積報酬の考え方は、投資の世界でも利用されており、正味現在価値とも言われます。

また、よりよい方策を導き出すための指標となる関数を価値関数と呼び、状態価値関数と、行動価値関数があります。前者はある方策で得られる割引累積報酬の期待値で、後者はある方策の過程にある中である行動をとった後に得られる報酬の期待値を算出するものです。

マルコフ決定過程における状態価値関数は、再帰的に表現できるとされ、これをベルマン方程式と呼びます。ベルマン方程式を解く方法として、アフタークリティック法や、次項のQ学習などがあります。


  • Q学習

ある環境状態の下で、行動を選択する価値(行動の価値)Q値を推定する方法で、計算上のQ値と実際のQ値の差をTD誤差と呼び、この差を0に近づけていき推定していきます。どれくらいで最適なQ値になるかは手法によって異なりますが、基本的には何度も繰り返していけばそのうち最適値にたどり着くと思われます。この際の方策として様々な手法があり、グリーディー法、ランダム法、ε-グリーディー法、ボルツマン法などがあります。様々な研究がなされる中で、最近では、ニューラルネットワークを用いたDeep Q-learningと呼ばれるものも出てきました。

Q学習における理論的保証は値の収束性のみである為、収束途中では近似解としての利用が難しかったり、パラメーターの変化に敏感に反応するなどの問題点も指摘されています。


強化学習が利用できる場面

様々な手法がある中で、強化学習が教師あり学習より優れているというわけではない点に注意する必要があります。
強化学習は明確な指示がない状態で、自分自身で評価していく必要がありとても時間がかかります。
結局のところ、コンピュータが速いとは言いつつも、膨大な時間をかけて答えを出したとしても、その答えが正解という保証はありません。
更にどんな用途で使用するための情報なのかも、結局は人間が判断することになります。
人間が持っている情報に沿わせた形の結果がよければ、教師学習を選ぶべきでしょうし、そんな母数の多くない情報に対しての整理は、人間で判断する方が速いと思われますので、扱う問題については考慮する必要があります。

強化学習の実例

それでは実際強化学習はどんなことに使われているのでしょうか?
強化学習を採用している企業のサービスなどは下記になります。

自動運転

自動運転の技術は、強化学習にて良い行動をAIに学ばせ続けています。
日本はまだまだ試運転段階ですが、トヨタなどが先陣を切って開発している強化学習の機能になります。

ゲーム

ゲームにも強化学習が使われている場合があります。
強化学習を使ったゲームだと、AIが主人公を動かし勝手にゲームを進めてくれるものが多いです。
その場合、どのようなルートを辿ったら最短でゴールできるかや、一番ポイントが高くゴールできるかなどを強化学習で覚えさせます。

ロボット制御

ロボット制御にも強化学習が使用されています。
こちらも自動運転やゲームと似ていますが、ロボットの用途によりどういう行動をしたら一番良いかを覚えさせます。
例えば、食べ物の工場で仕分けをロボットに頼み、出荷できる食べ物と出荷できない食べ物を覚えさせます。
そして出荷できない食べ物は置き場所を決めてそこに置くように指示し、強化学習でどんどんその性能を高めていきます。