2021年5月10日月曜日

状態価値関数(ベルマン方程式に基づく)に親しむ(その1)

  【what is this】現代AI技術において、強化学習(Reinforcement Learning)は重要です。これをご存じ無い方、または、(実は私もこれに該当しますが)少しは知っているがもっと明確にしたい方のために、ベルマン方程式に基づく「状態価値関数」とは何かをビジュアルに観察して、親しみを持ちましょう。さらに先をめざす手掛かりとして。

ベルマン方程式にもとづく状態価値関数
 詳細を把握するには、例えば中井悦司著の強化学習に関する書籍[1]を読んでいただく必要がありますが、ここでは、状態価値関数の一面に親しむことにします。実際、以下の内容は、この書籍の第2章(pp.45-100)を学んで得られる成果(結論)なのです。

例題:2次元Grid Worldに対する状態価値関数
 強化学習の定番例題のひとつに、2次元GridWorldがあります。そのバリエーションは多様ですが、ここでは図1のような設定にします。すなわち、2次元の特定のマスからひとマスづつ進めて、右下隅のゴールをめざします。ただし、進行方向は右か下かに限定され、それぞれ1/2の確率で選択されます。どのマスから開始すれば少ない移動回数でゴールできるでしょうか。(この例ではそれは自明かも知れませんが、一般的な解決手法を得たいのです。)

 ここで「状態価値関数」とは、各マスからゴールへ到達するという観点から、そのマスの価値(有利性)を示すものと言えます。統計の言葉で言えば「期待値」です。本例では、移動する毎に報酬(-1という負値)を与えることにします。従って、報酬の合計が大きいほど、少ない回数でゴールできます。この報酬と上記の移動確率などから「ベルマン方程式」というのが導出され、その解が「状態価値関数」に相当します。

 詳細理論はおいておき、本例に対する状態価値関数をみてみます。図1(a)では、予想どおり、左上隅から右下隅方向へ向かって、「価値」が高くなっています。マスの上の数値が状態価値関数の値であり、それが大きいほど価値が高いです。グラフでは、赤が濃いほど大きな数値で、青が濃いほど小さな数値を示しています。


 一方、図1(b)では、中央に「落とし穴」を設定しました。移動先がこの穴Pとなる場合は、直ちに、左上隅へ戻るか(確率=0.9で)、右下隅ゴールへ(確率=0.1で)移動してしまいます。したがって、これは確率的に不都合な落とし穴です。実際、この落とし穴の上、左、左上方向のマスの価値は低くなっています。図1(c)は、これとは逆に好都合の落とし穴です。落とし穴の上、左のマスの価値は高くなっており、この場合も納得できる結果が得られています。

 さらに、以下の図2は、グリッドを19x19に拡大した場合です。図1に比べて、より鮮明な結果をみることができます。


まとめ
 ここでは、マスの右と下へある確率で移動する、という特定の行動ポリシーのもとで状態価値関数をみました。別の行動ポリシー(例えば、右と下へ移動する確率が均等でなかったり、斜め方向にも移動するなど)の場合は、当然、この状態価値関数は変わります。また、どのマスから開始しても、いつもこの関数値が一番大きくなる行動ポリシーを見つけることや、大規模なworldに対する状態価値関数の効率的な計算法も大きなテーマになります。

[参考文献]
[1] 中井悦司:ITエンジニアのための強化学習理論入門、技術評論社、2020年7月

0 件のコメント:

コメントを投稿