はじめに
DeepSeek-R1で提案された強化学習方法 GRPO(Group Relative Policy Optimization)を理解するための前提となる手法、John Schulman (OpenAI)のTRPO (Trust Region Policy Optimization)やPPO (Proximal Policy Optimization)についてのメモです。
TRPOとPPOは、どちらも強化学習における方策勾配法のアルゴリズムで、方策(Policy)を直接最適化することで、良い行動戦略を学習することを目的としています。
参考資料
John Schulman
https://arxiv.org/pdf/1502.05477
https://arxiv.org/pdf/1707.06347
TRPO (Trust Region Policy Optimization)
-
概要:
- 方策の更新時に、新しい方策が古い方策から離れすぎないように、信頼領域(Trust Region)と呼ばれる制約を設けます。
- 具体的には、KLダイバージェンスを用いて、新旧の方策間の距離を測り、この距離が一定値以下になるように制約します。
- この制約により、方策の更新が安定し、性能の急激な悪化を防ぐことができます。
- 目的関数(期待収益)の改善が理論的に保証されている点が大きな特徴です。
-
仕組み:
- 目的関数の設定: 通常の方策勾配法では、方策の期待収益を最大化するように目的関数を設定します。TRPOでは、この目的関数に加えて、新旧方策間のKLダイバージェンスに関する制約項を追加します。
- 制約付き最適化: この制約付き最適化問題を解くことで、方策を更新します。この際、共役勾配法などの手法を用いて、近似的に解を求めます。
- 信頼領域の調整: KLダイバージェンスの制約の厳しさを調整することで、信頼領域の大きさを制御します。
-
メリット:
- 性能の安定性: 方策の更新が安定し、性能の急激な悪化を防ぐことができます。
- 理論的保証: 目的関数の改善が理論的に保証されています。
-
デメリット:
- 計算コスト: 制約付き最適化問題を解く必要があるため、計算コストが高くなります。
- 実装の複雑さ: 実装が比較的複雑です。
PPO (Proximal Policy Optimization)
-
概要:
- TRPOの考え方を基に、よりシンプルで計算効率の良いアルゴリズムとして提案されました。
- TRPOと同様に、方策の更新時に新しい方策が古い方策から離れすぎないようにしますが、その方法が異なります。
- 具体的には、目的関数にクリップされた確率比を導入することで、方策の更新が大きくなりすぎるのを防ぎます。
-
仕組み:
-
目的関数の設定: PPOでは、TRPOの目的関数を簡略化したものを使用します。具体的には、以下の2つの要素を組み合わせた目的関数を用います。
- クリップされた確率比: 新旧方策の確率比を、ある範囲内にクリップすることで、方策の更新が大きくなりすぎるのを防ぎます。
- KLペナルティ: 新旧方策間のKLダイバージェンスにペナルティ項を設けることで、方策が離れすぎるのを防ぎます(オプション)。
- 最適化: この目的関数を、確率的勾配降下法(SGD)などの一般的な最適化手法を用いて最大化します。
- 複数回の更新: 同じデータサンプルを用いて、複数回の更新を行うことで、より効率的な学習を可能にします。
-
目的関数の設定: PPOでは、TRPOの目的関数を簡略化したものを使用します。具体的には、以下の2つの要素を組み合わせた目的関数を用います。
-
メリット:
- 計算効率: TRPOに比べて計算コストが低く、高速に学習できます。
- 実装の容易さ: 実装が比較的簡単です。
- 性能: TRPOと同等、あるいはそれ以上の性能を示すことがあります。
-
デメリット:
- 理論的保証: TRPOのような厳密な理論的保証はありません。
- ハイパーパラメータ: クリップの範囲やKLペナルティの係数など、調整が必要なハイパーパラメータがあります。
まとめ
- TRPOは、信頼領域の概念を用いて方策更新の安定性を高め、理論的な保証も持つアルゴリズムです。
- PPOは、TRPOの考え方を基に、よりシンプルで計算効率の良いアルゴリズムとして提案されました。
- どちらのアルゴリズムも、方策勾配法の代表的な手法として、様々な強化学習タスクで高い性能を示しています。
どちらを選択するかは、タスクの複雑さ、計算リソース、実装の容易さなどを考慮して決定する必要があります。一般的に、PPOの方が実装が簡単で計算コストも低いため、最初に試してみるのに適しています。