PPO(Proximal Policy Optimization):強化学習コース(11/N)
はじめに
前回の記事では、LLMと強化学習の融合について学びました。テキスト生成をマルコフ決定過程として定式化し、RLHF(Reinforcement Learning from Human Feedback)により人間の価値観を学習する仕組みを理解しました。また、KL正則化がTrust Region Policy Optimization(TRPO)の考え方に基づいていることも確認しました。
本記事では、RLHFで最も広く使用されている**PPO(Proximal Policy Optimization)**アルゴリズムについて詳しく解説します。TRPOの理論的基盤から始め、PPOがどのようにその複雑さを実用的なレベルまで簡素化したかを見ていきます。
これまでのシリーズで学んだ内容は以下の通りです。
- 第1回 - 強化学習の全体像と問題設定
- 第2回 - 環境側の定式化(マルコフ決定過程)
- 第3回 - エージェント側の概念とプランニングアルゴリズム(価値反復法)
- 第4回 - モデルフリー学習とモンテカルロ法
- 第5回 - 時間差分学習とTD誤差
- 第6回 - 多段階TD学習とEligibility Trace
- 第7回 - 関数近似による価値関数学習
- 第8回 - 方策勾配法の基礎理論
- 第9回 - Actor-Critic法
- 第10回 - LLMと強化学習の融合
- 第11回(本記事)- PPO(Proximal Policy Optimization)
方策勾配法の課題
REINFORCEの復習
第8回で学んだREINFORCE法を振り返ってみましょう。方策勾配定理により、目的関数の勾配は以下のように表されます。
ここで、
ステップサイズの問題
REINFORCEの最大の問題は、適切な学習率の設定が困難という点です。
小さすぎる学習率:学習が非常に遅く、実用的な時間内で収束しません。
大きすぎる学習率:方策が急激に変化し、性能が破滅的に悪化する可能性があります。特に、一度悪い方策に更新されると、そこから回復することが困難になります。
この問題は、方策空間の非線形性に起因します。パラメータ空間での小さな変化が、方策空間では大きな変化を引き起こす可能性があるのです。
Trust Region Policy Optimization (TRPO)
問題設定:方策改善の定式化
TRPOを理解するには、まず「方策をどう改善するか」という問題を正確に定式化する必要があります。
方策の性能指標
方策
ここで、
価値関数の復習
第3回で学んだように、方策
状態価値関数は以下のように定義されます。
行動価値関数は以下のように定義されます。
Advantage関数(第8回で学習)は以下のように定義されます。
これは「状態
方策改善の基本定理の導出
2つの方策
まず、
ここで、
ここで巧妙なトリックを使います。任意の関数
これを
この再帰的な式を展開していくと、定常状態分布
これが方策改善の基本定理です。
実装上の困難
しかし、この式を直接最適化するには問題があります。
Trust Regionの基本概念
TRPOは、この問題を「局所近似」と「信頼領域」によって解決します。
局所近似による代理目的関数
方策が大きく変わらない場合、状態分布の変化を無視できると仮定します。つまり以下のような近似が可能です。
この近似の下で、性能改善量は以下のようになります。
さらに、重要度サンプリングを使って
これが代理目的関数です。
パラメータ表記にすると以下のようになります。
代理目的関数の利点 として以下が挙げられます。一度収集したデータ
KL制約
ただし、この近似は
この制約により、方策の変化を制限し、代理目的関数の近似が有効な範囲内で最適化を行います。
自然勾配法
パラメータ空間と方策空間の違い
通常の勾配降下法は、パラメータ空間での最急降下方向を使用します。しかし、方策最適化では方策空間での距離が重要です。
例えば、ニューラルネットワークの最終層のパラメータが少し変化しただけで、出力される確率分布は大きく変わる可能性があります。
フィッシャー情報行列
自然勾配法では、フィッシャー情報行列
フィッシャー情報行列は、KLダイバージェンスの2次近似と密接に関係しています。パラメータの微小変化
つまり、フィッシャー情報行列は確率分布の局所的な「曲率」を表し、パラメータ空間での距離を確率分布の変化に対応付けます。
自然勾配
自然勾配は、通常の勾配をフィッシャー情報行列で変換したものです。
これにより、方策空間での最急降下方向が得られます。
TRPOの実装上の課題
TRPOは理論的には優れていますが、実装が極めて困難です。
最も大きな問題は、KL制約を満たしながら目的関数を最適化する制約付き最適化問題を解く必要があることです。これは単純な勾配法では解けず、専用の最適化アルゴリズムが必要になります。
さらに、自然勾配法を実装するためにはフィッシャー情報行列
また、適切なKL制約の閾値
これらの理由により、TRPOは理論的な基盤としては重要ですが、実用的なシステムではほとんど使用されていません。
PPOの核心的アイデア
クリッピングによる近似
PPOの画期的な発見は、TRPOの複雑な制約付き最適化(自然勾配法やフィッシャー情報行列の計算を含む)を単純なクリッピング操作で近似できるということです。
これにより、TRPOの理論的利点を保持しながら、実装を劇的に簡素化することに成功しました。
PPOの目的関数
ここで
-
:重要度比r_t(\theta) = \frac{\pi_\theta(a_t|s_t)}{\pi_{\theta_{old}}(a_t|s_t)} -
:クリッピングパラメータ(通常0.1〜0.2)\epsilon -
:Advantage推定値A_t
クリッピングの直感的理解
クリッピング機構は、Advantageの符号に応じて異なる動作をします。
正のAdvantage(
- この行動は良いので、確率を増やしたい
- しかし、
になったら、それ以上の増加を止めるr_t(\theta) > 1 + \epsilon - 過度な楽観的更新を防ぐ
負のAdvantage(
- この行動は悪いので、確率を減らしたい
- しかし、
になったら、それ以上の減少を止めるr_t(\theta) < 1 - \epsilon - 過度な悲観的更新を防ぐ
数学的な効果
勾配の挙動
PPOの目的関数の勾配を考えてみましょう。
重要度比がクリッピング範囲内にある場合は通常の方策勾配として動作します。範囲外では勾配がゼロになります。
TRPOとの関係
PPOのクリッピングは、TRPOのKL制約を近似的に実現しています。
TRPOの制約:
PPOの効果:
KLダイバージェンスと確率比には関係があります。確率比を制限することで間接的にKLダイバージェンスも制限されます。
PPOの実装詳細
Actor-Critic構造
PPOは通常、Actor-Critic構造で実装されます(第9回で学んだ内容の応用)。
Actor(方策ネットワーク) は状態
多くの実装では、ActorとCriticは下位層を共有し、計算効率を向上させています。
Advantage推定
第8回で学んだAdvantage関数を、実際にどう推定するかが重要です。
Generalized Advantage Estimation (GAE)
PPOでは通常、GAE(Generalized Advantage Estimation)を使用してAdvantageを推定します。これは第6回で学んだTD(λ)の考え方をAdvantage関数の推定に応用したものです。
TD(λ)では、1ステップのTD誤差から無限ステップのモンテカルロ推定まで、λパラメータで連続的に補間しました。GAEも同様に、短期的なバイアスと長期的な分散のトレードオフをλで制御します。
ここで、
この式は、TD(λ)のEligibility Traceと同じ構造を持っています。各時点のTD誤差を、
-
λ = 0のとき:
となり、1ステップのTD誤差のみを使用(高バイアス、低分散)\hat{A}_t = \delta_t - λ = 1のとき:実際のリターンから価値関数を引いた値に収束(低バイアス、高分散)
- 0 < λ < 1のとき:バイアスと分散のバランスを調整
LLMでの簡略化
LLMのRLHFでは、エピソード終了時のみに報酬が与えられます。そのため、以下の簡略化がよく使われます。
ここで、
学習アルゴリズム
PPOの学習手順は以下の通りです。
- 現在の方策
を使って、\pi_{\theta_{old}} 個の軌道をサンプリングN - 各軌道に対してAdvantage
を計算\hat{A}_t -
エポックにわたって以下を繰り返す:K - ミニバッチをサンプリング
- PPO目的関数
を計算L^{CLIP} - 勾配上昇法でパラメータを更新
-
として、ステップ1に戻る\theta_{old} \leftarrow \theta
実装上の工夫
価値関数のクリッピング
Actorだけでなく、Criticの更新にもクリッピングを適用することがあります。
これにより、価値関数の推定も安定化されます。
エントロピー正則化
探索を促進するため、エントロピー項を追加することがよくあります。
ここで、
LLMへの応用
RLHFにおけるPPO
第10回で学んだRLHFにおいて、PPOは以下のように使用されます。
-
SFT済みモデルを初期方策
とする\pi_{\theta_{old}} - 報酬モデルから報酬を取得
- PPOで方策を最適化
- KL正則化により、SFTモデルから大きく逸脱しないよう制御
TRPOのKL制約とRLHFのKL正則化の違い
ここで注意すべきは、TRPOで問題となったKL制約と、RLHFで使用されるKL正則化は性質が異なるという点です。
TRPOのKL制約(ハード制約)
-
という厳密な制約D_{KL}(\pi_{\theta_{old}} || \pi_\theta) \leq \delta - 各更新ステップで、現在の方策と更新後の方策の間のKL距離を制限
- 制約付き最適化問題として解く必要があり、計算が複雑
RLHFのKL正則化(ソフト制約)
- 報酬関数に
という項を追加-\beta D_{KL}(\pi_\theta || \pi_{SFT}) - SFT(教師あり学習)済みモデルからの逸脱をペナルティとして扱う
- 通常の最適化問題として解けるため、実装が容易
つまり、PPOはTRPOの「更新ごとのハードなKL制約」を「クリッピング」に置き換えて計算を簡素化しました。一方、RLHFでは「SFTモデルからの逸脱に対するソフトなペナルティ」として別の形でKLダイバージェンスを活用しています。この組み合わせにより、PPOの計算効率性を維持しながら、LLMが完全に逸脱することを防いでいます。
PPOの理論的性質
収束性
PPOは、適切な条件下で局所最適解への収束が保証されています。
PPOの重要な特性として、クリッピング機構により各更新ステップで性能が大幅に悪化することを防ぐ、単調改善の近似的保証があります。TRPOは厳密な単調改善を保証しますが、PPOはクリッピングによってこれを近似的に実現しています。完全な保証ではありませんが、実践的には十分な安定性を提供します。
サンプル効率の面でも、PPOはTRPOと比較してより少ないサンプルで良好な性能を達成できることが経験的に示されています。これは、PPOがより積極的な更新を可能にしながらも、クリッピングによって破滅的な失敗を防いでいるためです。
限界と課題
サンプル効率
PPOはon-policy手法であるため、古いデータを再利用できません。これは、特に大規模なLLMでは計算コストの問題となります。
ハイパーパラメータ感度
クリッピングパラメータ
報酬ハッキング
LLMの文脈では、モデルが報酬モデルの弱点を突いて、実際には低品質な出力で高い報酬を得る現象が観察されています。
まとめ
PPOの重要性
PPOは、TRPOの理論的洞察を実用的なアルゴリズムに落とし込んだ画期的な手法です。特にPPOは複雑な制約付き最適化を単純なクリッピングで近似することで、実装の容易さと性能を両立しました。
今後の展望
PPOの成功を受けて、さらなる改良手法が提案されています。
計算効率の面では、より少ない計算量で同等の性能を達成する手法の開発が進んでいます。特に大規模言語モデルの学習において、PPOの計算コストは依然として高く、これを削減する研究が活発に行われています。
理論的な面では、なぜクリッピングがこれほど効果的なのか、より深い理解が求められています。PPOの成功は経験的には明らかですが、その理論的な正当性については完全には解明されていません。この理解が深まることで、さらに優れたアルゴリズムの開発につながると期待されています。
次回予告:最新の方策最適化の手法
次回の記事では、PPOの課題を克服するために開発された最新の手法について解説します。
特に注目すべきは、DPO(Direct Preference Optimization)です。この手法は報酬モデルを介さない直接的な最適化を実現し、RLHFのプロセスを大幅に簡素化しました。また、GRPO(Group Relative Policy Optimization)は価値関数を使わない効率的な学習を可能にし、計算コストをさらに削減しています。
PPOが築いた基盤の上に、どのような革新が生まれているのか、詳しく見ていきましょう。
Discussion