強化学習には「価値を学んで間接的に行動を決める」道と、「行動の選び方そのものを直接鍛える」道があります。方策勾配法は後者の代表で、ロボット制御のように選択肢が無数にある問題で真価を発揮します。価値ベースとの対比で理解していきましょう。
📖 ひと言でいうと
方策勾配法とは、方策(状態を見て行動を選ぶルール)をパラメータ付きの関数として表現し、累積報酬の期待値が最大になるようにそのパラメータを勾配で少しずつ調整して、方策を直接学習していくアプローチです。料理に例えると、レシピ(方策)の調味料の分量(パラメータ)を少し変えて作り、試食の評価(報酬)が上がる方向へ分量を微調整し続けるイメージです。「どの料理が何点か」という採点表を作らず、レシピそのものを直接改良していくのが特徴です。
🖼 1枚でわかる方策勾配法
📘 公式テキストの説明
方策をあるパラメータで表される関数とし、累積報酬の期待値が最大となるようにそのパラメータを学習することで、直接方策を学習していくアプローチを方策勾配法という。方策反復法の1つの手法であり、方策勾配定理に基づき実装される。ロボット制御など、特に行動の選択肢が大量にあるような課題で用いられる。方策勾配法の利点は、連続的な行動空間や大規模な行動空間においても適用可能であることで、これによりロボット制御や自動運転車のような実世界の問題に対処することができる。また、方策勾配法は、適切な方策関数を選択することで、学習が効率的に進行し、最適な方策に収束する可能性が高まる。この方法では、状態空間や行動空間が大きくなるにつれて計算量が増加するため、高次元の問題に対しては計算負荷が高くなることが欠点である。
キーフレーズは「直接方策を学習」です。価値関数という中間物を経由せず、方策そのものをパラメータの調整で改善します。「方策反復法の1つ」「方策勾配定理に基づく」という理論上の位置づけ、「ロボット制御・自動運転=連続的で大量の行動選択肢」という得意分野、「計算負荷の高さ」という欠点が、それぞれ試験の選択肢になり得ます。
🔍 しっかり理解する
「勾配」でパラメータを登らせる
方策を、パラメータθを持つ関数π(a|s;θ)(状態sで行動aを選ぶ確率)として表します。学習の目標は、この方策に従ったときの累積報酬の期待値J(θ)を最大にすることです。プレーンテキストで書くと、更新は次の形になります。
θ ← θ + α × ∇J(θ)
∇J(θ)は「θをどちらに動かせば累積報酬の期待値が増えるか」を示す勾配、αは学習率です。誤差を最小化する通常のディープラーニング(勾配降下)とは逆に、報酬を最大化する方向へ登る勾配上昇である点に注意してください。この勾配を実際に計算可能な形に変形できることを保証するのが方策勾配定理で、その具体的な実装の代表がREINFORCEです。
価値関数ベースとの対比
- 行動の価値(Q値)を学び、価値最大の行動を選ぶ
- 方策は価値から間接的に決まる
- 行動が離散で少ない問題に向く
- 連続行動では最大値探しが困難
- 方策のパラメータを直接学習する
- 行動の確率分布をそのまま出力できる
- 連続的・大規模な行動空間に適用可能
- 勾配推定のばらつきと計算負荷が課題
価値関数ベースは「全行動の価値を比べて最大を選ぶ」処理が前提のため、行動が連続値(ハンドルの角度、関節のトルクなど)だと最大値探し自体が難しくなります。方策勾配法は「状態を入れると行動(の確率分布)が出てくる関数」を直接持つので、連続値の行動もそのまま出力できます。これが「連続的な行動空間や大規模な行動空間においても適用可能」という利点の中身です。
代表手法とActor-Criticへの発展
方策勾配法の代表的な実装がREINFORCEで、AlphaGoの方策ネットワークの強化にも活用されました。ただし方策勾配法は、報酬のばらつきが勾配の推定に乗りやすいという弱点があります。そこで、価値関数を採点役(Critic)として併用し、方策担当(Actor)の更新を安定させるActor-Criticという折衷アプローチが生まれました。「方策勾配ベース+価値関数ベース=Actor-Critic」という系譜で覚えると、3つのキーワードが一本の線でつながります。
💡 具体例で考える
ロボットアームにコップを持ち上げさせる課題を考えます。各関節のモーターに与えるトルクは連続値で、しかも関節が複数あるため、行動の選択肢は事実上無限です。Q学習で扱うにはトルクを細かく離散化する必要があり、関節数が増えると組み合わせが爆発します。方策勾配法なら、「関節角度などの状態を入力すると各モーターのトルクを出力するニューラルネットワーク」を方策として用意し、持ち上げに成功したら報酬を与えてパラメータを勾配で調整する、という自然な形で学習できます。
自動運転も同様です。ハンドル角・アクセル・ブレーキという連続値の組み合わせを毎瞬選び続ける問題は、まさに「行動の選択肢が大量にある課題」であり、方策を直接学習するアプローチが適合します。
⚠️ よくある誤解・紛らわしい用語
- REINFORCEとの関係 — 方策勾配法は「アプローチ(考え方の枠組み)」、REINFORCEはそれを実装した「具体的な一手法」です。同格に並べるのは不正確です。
- 価値関数を絶対に使わないわけではない — 基本形は方策のみを学習しますが、Actor-Criticのように価値関数を併用して安定化させる発展形もあります。「方策を直接学習する」ことが本質で、「価値関数の使用禁止」ではありません。
- 勾配降下ではなく勾配上昇 — 損失の最小化(降下)ではなく、累積報酬の期待値の最大化(上昇)です。更新の向きの取り違えに注意しましょう。
- Q学習との違い — Q学習は行動価値を学ぶ価値関数ベース、方策勾配法は方策を直接学ぶアプローチです。「直接/間接」の対比で整理しましょう。
📝 試験でのポイント
- 「方策をパラメータで表される関数とし、累積報酬の期待値が最大となるように学習」「直接方策を学習」というフレーズから方策勾配法を選ばせる定義問題が基本形です。
- 「連続的な行動空間・大規模な行動空間に適用可能」「ロボット制御や自動運転」という利点・応用例の組み合わせが問われます。
- 欠点として「状態空間・行動空間が大きくなると計算負荷が高くなる」ことの正誤判定に備えましょう。
- REINFORCEが方策勾配法の一種であること、Actor-Criticが価値関数ベースとの組み合わせであることを問う系譜問題も想定されます。
📚 まとめ
方策勾配法は、方策をパラメータ付き関数で表し、累積報酬の期待値を最大化するようパラメータを勾配で調整して、方策を直接学習するアプローチです。方策勾配定理に基づき、代表的な実装にREINFORCEがあります。連続的・大規模な行動空間に適用できるためロボット制御や自動運転と相性が良い一方、高次元問題では計算負荷が高くなります。価値関数ベースとの「間接/直接」の対比と、Actor-Criticへつながる系譜を押さえておきましょう。
