オンポリシー vs オフポリシー - Shinichi0713/RL-study GitHub Wiki
ご質問ありがとうございます。
まず、「DQNの方策勾配法を使う場合、オフポリシー学習にはならない」という認識についてですが、
これは正確ではありません。
以下、詳しく解説します。
1. DQNと方策勾配法の違い
-
DQN(Deep Q-Network)
- Q値(状態-行動価値)を近似する値関数型強化学習です。
- 行動選択にはε-greedyなどの行動方策を使いますが、学習自体はQ関数を更新します。
- **経験再生(Replay Buffer)**を使い、過去の遷移からランダムサンプリングして学習します。
- オフポリシー学習です(行動方策と学習方策が異なる)。
-
方策勾配法(Policy Gradient)
- エージェントの**方策(policy)**自体をパラメータ化して直接最適化します。
- 通常、オンポリシー学習です(現在の方策で得たサンプルのみ使う)。
- 代表例:REINFORCE、A2C、PPOなど。
-
DQNの方策勾配法という表現は、一般的にはDQNと方策勾配法は別物なので混同しないよう注意が必要です。
2. オンポリシー vs オフポリシー
オンポリシー(on-policy)
- 定義:
学習に使うデータ(遷移)は、現在の方策で得られたもののみ。 - 例:
REINFORCE, A2C, PPO など - メリット:
- 理論的に安定しやすい(方策の一貫性が保たれる)
- 方策の最新情報で学習できる
- デメリット:
- サンプル効率が悪い(過去データを再利用できない)
- 経験再生が使いづらい
オフポリシー(off-policy)
- 定義:
学習に使うデータは、過去の方策や他の方策で得られたものも使える。 - 例:
Q-learning, DQN, DDPG, SAC など - メリット:
- 経験再生が使えるためサンプル効率が高い
- 行動と学習を分離できる(探索・活用のバランスがとりやすい)
- デメリット:
- 方策の不一致によるバイアスや不安定性が生じやすい
- 理論的な解析がやや難しい
3. まとめ
- DQNはオフポリシーです。
方策勾配法は通常オンポリシーですが、**オフポリシー方策勾配法(例:DPG, DDPG, Off-policy Actor-Critic)**も存在します。 - 「DQNの方策勾配法」という表現は一般的ではありません。
DQNは値関数型、方策勾配法は方策型です。 - オンポリシーは「新しいデータだけ」、オフポリシーは「古いデータも再利用できる」という違いがあります。
もし「DQNで方策勾配法を使いたい」という意図であれば、
- それは「アクター・クリティック型」や「オフポリシー方策勾配法」を指すことが多いです。
ご質問の答えまとめ:
- 「DQNの方策勾配法はオフポリシーにならない」→誤り。DQNはもともとオフポリシーです。
- オンポリシー/オフポリシーのメリット・デメリットは上記の通りです。
以上です。