方策勾配法 — 価値を経由せず、方策を直接磨く
DQN は「価値を学び、行動は価値から導く」路線でした。この章はもうひとつの大きな路線 — 行動の出やすさそのものをパラメータにして、良かった行動が出やすくなる方向へ直接勾配を登る方策勾配法。REINFORCE と、その泣きどころ「高分散」を抑えるベースラインまで動かして理解します。
1. 方策を直接パラメータ化する
価値ベースの手法では、方策は Q値の「おまけ」でした(Q が決まれば argmax で行動が決まる)。方策勾配法では、方策 π(a|s; θ) をそれ自体パラメータ θ を持つ確率分布として持ちます。離散行動なら定番はソフトマックス方策:各行動に「選好」h(a) という数値を持たせ、指数を取って正規化するだけです。
下のデモで、「良い結果だった」と思う行動のバーをクリックしてみてください。その行動の選好が上がり、確率が押し上げられます。学習の正体は「これを報酬に応じて自動でやる」ことに過ぎません。
| 価値ベース(Q学習・DQN) | 方策勾配法 | |
|---|---|---|
| 学ぶもの | 行動価値 Q(s, a) | 方策 π(a|s; θ) を直接 |
| 行動の決め方 | argmax Q(+ε-greedy) | π からサンプル |
| 行動空間 | 離散が得意 | 連続もそのまま扱える |
| 方策の性質 | 決定的になりがち | 確率的方策が自然 |
| 弱点 | max による過大評価・不安定さ | 高分散・サンプル効率の低さ |
2. REINFORCE — 良かった行動を、もっと出やすく
目的ははっきりしています:期待リターン J(θ) = E[G] を最大化する θ を見つけたい。勾配で登るには ∇J が要りますが、これが驚くほど素直な形になることが知られています(方策勾配定理)。
読み方はこうです。∇θ log π(At|St) は「いま取った行動 At をもっと出やすくする θ の動かし方」。それに係数 Gt(実際に得たリターン)を掛ける — 結果が良かった行動ほど強く「もっとやれ」、悪かった行動は「控えろ」。REINFORCE はこの期待値を、実際に走らせた1エピソードのサンプルで置き換えて θ ← θ + α Gt ∇ log π と更新するだけのアルゴリズムです。
下のデモは1状態・3行動の課題です。各行動の真の期待報酬は隠されています(報酬には大きなノイズが乗っています)。エージェントが 行動→報酬→確率の増減 を繰り返す様子を見てください。
3. 高分散 — REINFORCE の泣きどころ
なぜこれほどブレるのでしょうか。REINFORCE の更新係数 Gt はたった1エピソードのサンプルで、環境の運(ノイズ)を丸ごと含みます。さらに報酬が全部プラスの課題では、どの行動を取っても「もっとやれ」方向に更新されるため、たまたま多くサンプルされた行動がそれだけで伸びてしまう — 相対的な良し悪しの情報が、大きな共通オフセットに埋もれるのです。
分散を下げる定番がベースラインです。リターンから基準値 b(たとえば平均リターン)を引き、「平均よりどれだけ良かったか」を係数にします。
4. まとめと次への伏線
- 方策勾配法:π(a|s; θ) を直接パラメータ化し、期待リターン J(θ) を勾配で登る。連続行動・確率的方策に強い。
- REINFORCE:θ ← θ + α G ∇log π。「良かった行動をもっと出やすく」をそのまま数式にした形。
- 高分散:1エピソードのリターンをそのまま使うため更新が激しくブレ、サンプル効率も低い。
- ベースライン:G から平均を引いても不偏のまま、分散だけが下がる。