動的計画法 — 環境を知っているなら「計算」で解ける
前章のベルマン方程式を、今度は実際に解きます。環境のモデル(遷移 P と報酬 R)が完全に分かっているとき、エージェントは一歩も動かずに最適方策を計算だけで導けます。その2大アルゴリズム — 方策反復と価値反復 — をグリッドワールドで回しながら理解します。
1. 前提 — モデル P と R を「知っている」
マルコフ決定過程(MDP)は(S, A, P, R, γ)の5点セットでした。この章では、そのうち遷移確率 P(s′|s,a) と報酬 R がすべて既知という強い仮定を置きます。すると価値の計算は「試行錯誤」ではなく「連立方程式を解く」問題になります。これが動的計画法(DP: Dynamic Programming)によるプランニングです。
以下の3つのデモは全部同じ環境を使います。
- 6×6 のグリッド。右上の G に入ると +10 で終了、灰色のマスは壁
- 1回の移動ごとに報酬 −1(壁や外にぶつかるとその場に留まり、やはり −1)
- 割引率 γ = 0.9(viz3 ではスライダーで変更可)
2. 方策評価 — 固定した方策の価値を求める
まずは一番の基礎、方策評価。方策 π を固定して(下のデモでは矢印で表示。わざと下手な方策にしてあります)、その価値関数 Vπ(s) を求めます。やり方は単純で、ベルマン期待方程式の右辺を計算して左辺に代入する操作を、全マスに対して繰り返すだけ。全マス1周ぶんの更新を1スイープと呼びます。
3. 方策反復 — 「評価」と「改善」のキャッチボール
評価しただけでは方策は1ミリも良くなりません。そこで第2の操作、方策改善。求めた Vπ を使って、各状態で「R + γV(s′) が最大になる行動」を選び直します(貪欲化)。方策改善定理により、こうして作った新方策は元の方策より必ず「同等以上」になることが保証されています。
すると自然な戦略が生まれます。評価 → 改善 → 評価 → 改善 → … を繰り返すのです。これが方策反復。有限MDPでは方策の総数が有限なので、「改善しても方策が変わらない」=最適方策 π* に、必ず有限回で到達します。
4. 価値反復 — max を取り込んで一直線
方策反復には無駄があります。どうせ改善で方策を作り直すのに、評価を毎回「収束するまで」やるのはやり過ぎでは? — 実はその通りで、評価を1スイープで打ち切り、そのまま max を更新に組み込んだのが価値反復です。方策を持ち歩かず、V だけを直接、最適価値 V* へ向けて更新します。
このデモだけは床が滑る確率的な環境にしてあります:意図した方向へ 80%、左右いずれかへ 10% ずつそれる。遷移確率 P(s′|s,a) が自明でなくなるので、式の中の期待値 Σs′ P(s′|s,a)[…] がようやく本領を発揮します(決定的な環境だと数スイープで「厳密に」収束してしまい、γ の効果が見えないため、という事情もあります)。
5. まとめ
- 方策評価:ベルマン期待方程式を代入の反復で解く。誤差は γ 倍ずつ縮み、必ず収束する。
- 方策改善:V に対して貪欲化。改善定理により方策は決して悪化しない。
- 方策反復:評価⇄改善の交互反復。少ないサイクル数で最適方策に到達(ただし1サイクルの評価が重い)。
- 価値反復:評価を1スイープに打ち切って max を直接適用。実装が最も簡単。γ が大きいほど反復回数は増える。
- どちらも「モデル既知」前提のプランニング。モデルなしで学ぶのが次章のTD学習。