22 |
Pongと強化学習 (66) |
前の質問において何がReplay MemoryからDQN lossにインタフェースするのかが曖昧でかつタプル全部を渡すと誤った説明をしたため、確認します。
確かに、その指摘は正確です。次の状態$s'$は直接DQN損失関数の計算には使われず、実際にはTarget Q-networkに渡されて、そこで次の状態におけるすべての可能な行動$a'$に対するQ値の最大値$\max_{a'} Q(s', a'; \theta^-)$を計算するために使用されます。この最大Q値は、DQN損失関数の計算において、未来の報酬の推定値として利用されます。
リプレイメモリからDQN損失計算への直接的な情報
リプレイメモリからDQN損失計算に直接渡される情報は、以下の通りです:
- 即時報酬$r$
- 終了フラグ$done$
これらの情報は、DQN損失関数の計算に直接使用されます。
損失関数の計算に関わるその他のプロセス
- 現在の状態$s$と行動$a$: これらはQ-networkを通じて、現在の行動価値$Q(s, a; \theta)$の計算に使用されます。
- 次の状態$s'$: $s'$はTarget Q-networkに渡され、次の状態における最大の行動価値$\max_{a'} Q(s', a'; \theta^-)$を計算するために使用されます。この値は、損失関数の計算において間接的に使用され、未来の報酬の推定値として機能します。
DQN損失関数の計算式
DQN損失関数は、これらの要素を基に以下のように計算されます:
$$L(\theta) = \mathbb{E}\left[\left(r + \gamma \max_{a'} Q(s', a'; \theta^-) \cdot (1 - done) - Q(s, a; \theta)\right)^2\right]$$
ここで、$\gamma$は割引率です。この式は、即時報酬$r$と、未来の報酬の推定値$\gamma \max_{a'} Q(s', a'; \theta^-)$(ただしエピソードが終了した場合は0となる)、および現在の行動価値$Q(s, a; \theta)$に基づいています。