Double DQN、Dueling DQN、Prioritized Experience Replay

以下に、強化学習における先進的アルゴリズム「Double DQN」「Dueling DQN」「Prioritized Experience Replay」について、それぞれ詳しく解説します。


1. Double DQN(Double Deep Q-Network)

背景と問題点

標準的なDQNでは、Q値の更新に以下のような最大値を用います:

y=r+γmaxaQ(s,a;θ)y = r + \gamma \max_{a’} Q(s’, a’; \theta^-)

しかしこの「最大値」は、過大評価(overestimation bias)を引き起こすことがあります。これは、Q関数の近似誤差によって、実際よりも高い価値を推定してしまう現象です。

解決策

Double DQNは、アクションの選択と評価を分離することで過大評価を緩和します。

y=r+γQ(s,argmaxaQ(s,a;θ);θ)y = r + \gamma Q(s’, \arg\max_{a’} Q(s’, a’; \theta); \theta^-)

  • 行動選択:最新のネットワーク Q(s,a;θ)Q(s’, a’; \theta) を用いてアクションを選ぶ

  • 価値評価:ターゲットネットワーク Q(s,a;θ)Q(s’, a’; \theta^-) を用いて価値を評価

これにより、より安定かつ正確な学習が可能になります。


2. Dueling DQN(Dueling Deep Q-Network)

背景と目的

状態によっては、どの行動を選んでも報酬が変わらないことがあります(例:壁に向かって進んでいる状態)。こうした場合、状態の価値行動による利得を分離することで、効率的な学習が可能になります。

構造

Dueling DQNは、Q値を以下の2つのネットワークで分けて出力します:

  • Value関数V(s)V(s) (状態の価値)

  • Advantage関数A(s,a)A(s, a)(各行動の優位性)

これらを合成して Q値を算出します:

Q(s,a)=V(s)+(A(s,a)1AaA(s,a))Q(s, a) = V(s) + \left(A(s, a) – \frac{1}{|\mathcal{A}|} \sum_{a’} A(s, a’)\right)

この方法により、行動の影響が小さい状態でも効率よく状態価値を学習でき、方策の最適化が加速します。


3. Prioritized Experience Replay(優先度付き経験再生)

背景と課題

通常のExperience Replayでは、過去の経験を一様にランダムサンプリングします。しかし、全ての経験が等しく有用とは限りません。特に、**TD誤差(Temporal-Difference Error)**の大きい経験は学習への貢献度が高い可能性があります。

方法

Prioritized Experience Replayでは、TD誤差を基準に経験に優先度を付与し、高い優先度の経験をより頻繁に再利用します。

優先度の定義

pi=(δi+ϵ)αp_i = (|\delta_i| + \epsilon)^\alpha

  • δi\delta_i:TD誤差

  • ϵ\epsilon:スモールバイアス(0除算防止)

  • α\alpha:優先度の影響度(0で通常の一様分布)

サンプリング確率

P(i)=pikpkP(i) = \frac{p_i}{\sum_k p_k}

バイアス補正(重要度サンプリング)

優先的に選ばれるサンプルに偏りが生じるため、重要度サンプリング係数を用いて誤差の更新を補正します:

wi=(1NP(i))βw_i = \left( \frac{1}{N \cdot P(i)} \right)^\beta

  • β\beta:補正強度(学習とともに1に近づける)

この手法により、学習効率と安定性を向上させることができます。


まとめ

手法 目的 特徴
Double DQN Q値の過大評価を抑制 アクション選択と評価を分離
Dueling DQN 状態と行動の価値を分離 状態価値と利得を別々に学習
Prioritized Experience Replay 有益な経験に重点を置く TD誤差によるサンプリングと補正

これらの手法は、DQNをベースとした強化学習の性能と収束速度を大きく向上させる重要な改良です。

生成日:2025/06/01