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