強化学習の枠組み:試行錯誤から学ぶ
報酬を手がかりに試行錯誤で行動を学ぶ、強化学習の枠組みを学びます。基礎層では、正解を教わらずに報酬から学ぶという大枠と、先々の報酬まで見すえる考え方をつかみます。深掘り層では、計算の爆発を防ぐマルコフ性の割り切りから、マルコフ決定過程と割引率、状態価値関数と行動価値関数、Q学習とSARSAまで説明できるようになります。
ねらい
このレッスンでは、報酬(ほうしゅう)を手がかりに試行錯誤で行動を学ぶ、強化学習(きょうかがくしゅう)の枠組みを学びます。
基礎
正解を教わらずに報酬から学ぶという大枠を身近な例でつかみます。
1. 正解ではなく報酬を手がかりに行動を学ぶしくみ
強化学習とは、行動の結果として返ってくる報酬を手がかりに、良い行動のしかたを試行錯誤で学ぶ方法です。学ぶ主体はエージェントと呼ばれます。
エージェントの相手は環境です。エージェントが環境の中で行動すると、環境がその結果を返します。良い行動には多くの報酬が、良くない行動には少ない報酬が返ってきます。
ここで大切なのは、正解の行動そのものは誰も教えてくれない、という点です。教師あり学習では、入力1つずつに正解が付いていました。強化学習に正解はなく、行動の結果としての報酬だけが返ってきます。
エージェントの目標は、この報酬をなるべく多く集められる行動のしかたを自分で探り当てることです。ゲームで例えるなら、高得点の取り方を誰かに教わるのではなく、何度もプレイして、点が伸びた操作を手がかりに勝ち筋を身につけていく学び方です。
ポイント
強化学習は、正解を教わるのではなく、行動の結果の報酬を手がかりに、良い行動を試行錯誤で学びます。
2. 目先の報酬と先々の報酬の兼ね合い
報酬を多く集めると言っても、今すぐ多くの報酬をくれる行動が、必ずしも良い行動とは限りません。
将棋を思い浮かべてください。目先で相手の駒を取れる一手が、数手先の不利を招くことがあります。逆に、いまは損に見える一手が、先々の勝ちにつながることもあります。
だから強化学習のエージェントは、その場の報酬だけでなく、これから先に得られる報酬の合計まで見すえて行動を選ぼうとします。強化学習の目標を正確に言えば、長い目で見て報酬をなるべく多く集めることです。
すると、次の疑問が生まれます。まだ起きていない先々の報酬は、どうすれば数として扱えるのでしょうか。この疑問への答えが、深掘り層の中心になります。
ここまでの要点
- 強化学習は、正解を教わる代わりに、行動の結果として返る報酬から良い行動を試行錯誤で学びます。
- 学ぶ主体がエージェント、行動を受け取って結果を返す相手が環境です。
- 良い行動かどうかは、目先の報酬ではなく、先々の報酬の合計まで見すえて決まります。
まずは全体像をつかめれば十分という人は、ここで区切って大丈夫です。「正解の代わりに報酬から学び、先々の報酬まで見すえる」と押さえられていれば、この先の深掘りに進む土台はできています。
発展
ここからは、先々の報酬の見積もりを計算できる形に整えるマルコフ決定過程と割引率、行動の良さを数ではかる2つの価値関数、そしてその見積もりをみがき上げるQ学習とSARSAまで掘り下げます。
3. エージェントと環境がやり取りする状態・行動・報酬のループ
先々の報酬を数として扱うには、まず、エージェントが置かれている場面そのものを計算できる形で書き表す必要があります。
出発点は状態です。状態とは、エージェントがいま置かれている状況のことです。将棋なら盤面の駒の配置が、ゲームなら画面に映っている場面が、それぞれ1つの状態にあたります。
エージェントは、現在の状態を見て行動を選びます。環境は、その行動を受けて次の状態へ移り、あわせて報酬を返します。エージェントは新しい状態を見て、また次の行動を選ぶ。強化学習の場面は、エージェントと環境をめぐるこのループのくり返しでできています。
4. 計算の爆発を防ぐマルコフ性という割り切り
では、エージェントは次の行動を何にもとづいて決めればよいのでしょうか。素直に考えれば、始まりからここまでの経緯をぜんぶ踏まえて決めるのが、いちばん確実に思えます。
ところが、この素直な方針はすぐに行き詰まります。過去の全履歴を考慮に入れようとすると、履歴の組み合わせが爆発的に増えるからです。1回の移り変わりに10通りの分かれ方しかなくても、10回分の履歴は100億通りにふくらみます。
履歴のパターン1つひとつについて行動の良し悪しを調べていては、計算がいつまでも終わりません。現実的な時間で答えを出すには、考える材料を思い切って減らす工夫が必要です。
そこで、強い割り切りを1つ置きます。次に何が起きるかは、過去の経緯にはよらず、現在の状態と次の行動だけで決まる、と決めてしまうのです。この性質はマルコフ性と呼ばれます。
将棋の盤面は、この割り切りがうまくいく典型です。対局の途中の盤面を1枚見せられれば、そこまでの手順を知らなくても、次の一手を考え始められます。それまでの経緯の結果は、すべて今の盤面に刻まれているからです。
この割り切りを土台に、状態・行動・状態の移り変わり・報酬の4つの要素で強化学習の場面を表す枠組みが、マルコフ決定過程です。エージェントが持ち歩く判断材料は現在の状態だけになり、先々の報酬の見積もりを見通しよく計算できるようになります。
5. 将来の報酬を少し軽く見積もる割引率
先々の報酬を合計するとき、もう1つだけ道具が要ります。10手先の報酬を次の一手の報酬と同じ重さで数えてよいか、という問題です。
将来は不確かです。遠い先の報酬ほど、見積もりどおりに手に入るとは限りません。そこで、遠い将来の報酬ほど少し軽く見積もってから合計します。
この軽く見る度合いを表す数値が割引率(わりびきりつ)です。割引率は0から1までの値を取ります。1に近いほど遠い将来まで重んじ、0に近いほど目先を重んじる設定になります。
式で書くと、先々の報酬の合計 = 次の報酬 + 割引率 × その次の報酬 + 割引率の二乗 × さらに次の報酬 + …(先へ行くほど割引率を掛ける回数が増える)となります。読み下すと、1つ先の報酬はそのまま、2つ先は割引率を1回掛けて、3つ先は2回掛けて、と重みを減らしながら足していく、という意味です。割引率が0.9なら、1つ先は0.9倍、2つ先は0.81倍、3つ先は0.729倍と軽くなっていきます。
将来の報酬を割り引きながら合計した値こそ、エージェントが本当に増やしたい量です。基礎層の終わりに置いた「まだ起きていない先々の報酬は、どうすれば数として扱えるのか」という疑問には、この合計が答えになります。
遠い先の報酬ほど、割引率を掛ける回数が増えて軽くなる。
割引率を動かすと、1〜5手先の報酬にかかる重みと割引累積報酬がどう変わるか確かめてください。
割引率0.90は、1に近く、遠い将来までしっかり重んじる設定です。
理解の確認
マルコフ性は、次に起きることが現在の状態と次の行動だけで決まるという、計算の爆発を防ぐための割り切りでした。割引率は、遠い将来の報酬をどれだけ軽く見積もるかを表す、0から1までの値でした。この2つで、先々の報酬の見積もりが計算できる形に整います。
6. 状態と行動の良さを数ではかる2つの価値関数
道具立てがそろったので、いよいよ先々まで含めた報酬の見積もりを数にします。この見積もりは価値と呼ばれます。価値には、何を指定してはかるかの違いで2種類あります。
状態価値関数は、ある状態にいることが、この先どれだけの報酬につながるかを表します。今のこの局面は、これから先どれくらい有利か、という見積もりです。
行動価値関数は、ある状態で、ある行動を取ることが、この先どれだけの報酬につながるかを表します。局面に加えて、そこで指す一手まで指定して良さをはかる点が違いです。
どちらの関数も、過去の経緯は受け取りません。現在の状態さえ渡せば価値を見積もれるのは、マルコフ性の割り切りがあるからです。割り切りの見返りが、ここで効いてきます。
行動価値関数が精度よく分かれば、行動選びは簡単です。今の状態で取れる行動のうち、行動価値関数の値が最も大きい行動を選べばよいからです。だから、行動価値関数を精度よく求めることが、価値をもとにした強化学習の目標になります。
7. 行動価値関数を試行錯誤でみがくQ学習とSARSA
行動価値関数の正確な値は、最初は誰にも分かりません。エージェントは試行錯誤を重ねながら、見積もりを少しずつ正確にしていきます。その代表的な手法がQ学習とSARSAです。
どちらの手法も、更新の骨組みは同じです。行動してみて実際に得た報酬と、次の状態での価値の見積もりを使って、今の見積もりを実際の結果に近づけます。
2つの違いは、更新に使う「次の行動」の取り方にあります。ここで1つ言葉を足します。エージェントが状態に応じてどの行動を選ぶかの方針は、方策(ほうさく)と呼ばれます。
Q学習は、次の状態で取れる行動のうち、価値の見積もりが最も大きい行動を使って更新します。実際に次へ取る行動が何であれ、最善の行動を想定して学ぶわけです。実際に従う方策とは切り離して学ぶこのやり方は、方策から離れた学習と呼ばれます。
SARSAは、次の状態で実際に取った行動を使って更新します。想定した最善ではなく、現に選んだ行動にもとづいて学びます。このやり方は方策に沿った学習と呼ばれます。SARSAという名前は、更新に使う状態・行動・報酬・次の状態・次の行動の英語の頭文字を並べたものです。
この違いから、Q学習は最善を仮定するぶん大胆に、SARSAは実際の行動に沿うぶん慎重になりやすい、という性格の差が生まれます。この差が行動の選び方にどう表れるかは、方策の学習とバンディットを扱うレッスンで、具体的な場面を使って掘り下げます。
最後に一歩だけ先を見ておきます。行動価値関数の見積もりをニューラルネットワークに置き換えると、画面の映像のような複雑な状態も扱える深層強化学習に発展します。その中身は、ディープラーニングの応用として深層強化学習を扱うレッスンで学びます。ここでは、価値をもとに行動を学ぶ土台を押さえてください。
理解度の確認
説明できる項目にチェックを入れましょう。すべて確認できたら、完了ボタンで記録します。
分からなかった点・気になった点
読み込み中です。