DQN、PPO、GRPOの比較

Deep Q-Network (DQN)、Proximal Policy Optimization (PPO)、Group Relative Policy Optimization (GRPO)は強化学習における代表的なアルゴリズムですが、設計思想や適用シーンが異なります。以下の表で、それぞれの特徴と違いを比較します。

GRPOについては下記でも少し言及していました

https://qiita.com/yonaka15/items/b1f3b3133614a063c5c5

| 特性 | DQN (Deep Q-Network) | PPO (Proximal Policy Optimization) | GRPO (Group Relative Policy Optimization) |
|------|----------------------|-----------------------------------|------------------------------------------|
| **基本的なアプローチ** | 価値ベース（Value-based）：行動価値関数（Q関数）を学習 | 方策ベース（Policy-based）：方策（Policy）を直接最適化 | 方策ベース：グループ内の相対的な報酬に基づき方策を最適化 |
| **アルゴリズム分類** | オフポリシー型学習 | オンポリシー型学習 | オンポリシー型学習 |
| **行動空間** | 離散的な行動空間のみ対応 | 離散的・連続的な行動空間の両方に対応 | 主に言語モデル向けに設計（テキスト生成タスク） |
| **ネットワーク構造** | Q値を推定する単一ネットワーク（+ターゲットネットワーク） | Actor(方策)とCritic(価値関数)の2つのネットワーク | 方策ネットワークのみ（Critic不要） |
| **ネットワーク出力** | 各行動の価値（Q値）を出力 | 行動の確率分布（方策）と状態価値を出力 | 行動の確率分布（方策）を出力 |
| **価値関数の必要性** | 価値関数必須 | 価値関数（Critic）が必要 | 価値関数不要（グループ内の相対的比較を使用） |
| **安定性向上技術** | 経験リプレイ、ターゲットネットワーク、Double DQN | クリッピングによる制約、信頼領域の制限 | グループ内正規化とクリッピング、KL発散ペナルティ |
| **データ効率** | 経験リプレイによりデータを再利用（効率的） | オンポリシーのためデータ再利用性は低い | 同一プロンプトに対する複数出力を比較（中程度） |
| **計算リソース** | 比較的計算コストが低い | 計算コストが高い（Critic networkが必要） | PPOより計算コストが削減される（Criticが不要） |
| **探索戦略** | εグリーディ法などの明示的な探索戦略が必要 | 方策の確率分布に基づく自然な探索 | 同一プロンプトに対する複数回のサンプリングによる探索 |
| **実装の複雑さ** | 比較的シンプル | やや複雑（複数のネットワークや損失関数） | PPOよりシンプル（Critic networkが不要） |
| **適用例** | Atariゲーム、シンプルな制御問題 | ロボット制御、複雑な物理シミュレーション | 言語モデルの推論能力向上（DeepSeek-R1など） |
| **公開年** | 2013年（DeepMind） | 2017年（OpenAI） | 2024年（DeepSeek） |
| **優位性** | 単純な問題で効率的 | 連続行動空間で安定した学習が可能 | 言語モデル向けに最適化され、計算効率が高い |
| **主な用途** | ゲームAI、離散的な意思決定問題 | ロボティクス、自動制御、連続制御問題 | 言語モデルの推論能力と指示追従の向上 |
| **優位性のある問題** | 明確な報酬構造を持つ離散問題 | 複雑な連続制御問題、高次元行動空間 | 大規模言語モデルの複雑推論タスク |
| **メモリ要件** | 経験リプレイのためやや高い | 高い（2つのネットワークが必要） | PPOよりも低い |

## 主要な違いの詳細

### 1. 学習アプローチ
- **DQN**: 状態行動価値関数（Q関数）を学習し、最適な行動を選択します。「この状態でこの行動を取ると将来的にどれだけの報酬が得られるか」という価値をニューラルネットワークで近似します。Q値が最大の行動を選択する方式です。
- **PPO**: 方策関数を直接学習します。「この状態ではどの行動を取るべきか」という確率分布を出力します。方策勾配法を用いつつ、急激な変化を防ぐため更新幅に制限を設けています。
- **GRPO**: 同一プロンプトに対する複数の出力応答をグループとして扱い、グループ内での相対的な報酬に基づいて方策を更新します。グループ内での報酬の相対的な比較に基づいて方策を更新し、価値関数なしで学習を行います。

### 2. 更新メカニズムと安定化技術
- **DQN**: ベルマン方程式に基づく時間差分学習（TD学習）を使用します。経験リプレイバッファを使って過去の経験を保存し、ランダムにサンプリングしたミニバッチで学習します。また、ターゲットネットワークを使用して学習の安定性を高めています。
- **PPO**: 方策勾配法をベースに、クリッピングによる更新幅の制限を採用しています。急激な方策変更を防ぎ、安定した学習を実現します。状態価値を推定するCriticネットワークが必要です。
- **GRPO**: PPOのクリッピングメカニズムを保持しながら、価値関数（Critic）を使わずに優位性を計算します。グループ内（同一プロンプトに対する複数の応答）で正規化した報酬を用いて相対的な優位性を計算します。これにより別個のCriticモデルが不要となり、計算効率が向上します。

### 3. 計算効率とリソース要件
- **DQN**: 主に2つのネットワーク（メインとターゲット）を使用し、経験リプレイバッファが必要ですが、比較的効率的に実装できます。ただし、高次元の観測空間では計算負荷が高くなる場合があります。
- **PPO**: Policy networkとCritic networkの2つが必要で、大規模モデルでは特に計算負荷とメモリ要件が高くなります。また、ハイパーパラメータの調整も重要になります。
- **GRPO**: PPOで必要だった別個のCriticモデルを排除し、メモリと計算オーバーヘッドを削減します。同一プロンプトに対する複数出力のグループ比較で優位性を計算するため、単一ネットワークで実装できます。

### 4. 適用シナリオと特化領域
- **DQN**: 離散的な行動空間を持つ問題（例：Atariゲーム）に適しています。明確な報酬構造を持ち、問題の状態空間が比較的小さい場合に効果的です。
- **PPO**: 連続的な行動空間を持つ複雑な制御問題（例：ロボット制御、物理シミュレーション）に適しています。環境の複雑さに対する堅牢性があり、様々な問題設定に適用できます。
- **GRPO**: 主に言語モデルの推論能力向上に特化しており、DeepSeek-R1のような推論特化モデルの訓練に効果的です。特に数学的推論や複雑な思考を要するタスクで優れた性能を発揮します。

## 参考リンク

### DQN (Deep Q-Network)
- [Playing Atari with Deep Reinforcement Learning](https://arxiv.org/abs/1312.5602) - DeepMindによる2013年の原論文
- [Human-level control through deep reinforcement learning](https://www.nature.com/articles/nature14236) - 2015年のNature論文
- [Deep Q-Networks Explained (LessWrong)](https://www.lesswrong.com/posts/kyvCNgx9oAwJCuevo/deep-q-networks-explained) - DQNの詳細解説
- [PyTorch DQNチュートリアル](https://pytorch.org/tutorials/intermediate/reinforcement_q_learning.html) - 実装方法の解説

### PPO (Proximal Policy Optimization)
- [Proximal Policy Optimization Algorithms](https://arxiv.org/abs/1707.06347) - OpenAIによる2017年の原論文
- [Proximal Policy Optimization - Wikipedia](https://en.wikipedia.org/wiki/Proximal_policy_optimization) - 基本概念の解説
- [OpenAI Spinning Up: PPO](https://spinningup.openai.com/en/latest/algorithms/ppo.html) - 詳細なアルゴリズム解説と実装

### GRPO (Group Relative Policy Optimization)
- [DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models](https://arxiv.org/abs/2402.03300) - GRPOを導入した論文
- [DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning](https://arxiv.org/abs/2501.12948) - GRPOを使った推論モデルの訓練
- [A vision researcher's guide to some RL stuff: PPO & GRPO](https://yugeten.github.io/posts/2025/01/ppogrpo/) - GRPOとPPOの比較解説
- [Hugging Face GRPO Trainer](https://huggingface.co/docs/trl/main/en/grpo_trainer) - GRPOの実装ガイド

### 一般的な強化学習リソース
- [Policy Gradient Algorithms | RLHF Book by Nathan Lambert](https://rlhfbook.com/c/11-policy-gradients.html) - 方策勾配アルゴリズムの包括的な解説
- [Hugging Face Deep RL Course](https://huggingface.co/learn/deep-rl-course/en/unit3/deep-q-algorithm) - 深層強化学習の基礎から応用まで
- [Reinforcement Learning: An Introduction](http://incompleteideas.net/book/the-book-2nd.html) - Richard S. Sutton and Andrew G. Bartoによる教科書