如何计算双 Q 学习更新步骤的目标?

人工智能 强化学习 q学习 dqn 深度学习 双dqn
2021-11-16 21:54:49

我已经阅读了关于双 DQN 的原始论文,但我没有找到关于目标如何实现的清晰实用的解释y是计算出来的,所以这就是我解释该方法的方式(假设我有 3 个可能的操作 (1,2,3)):

  1. 对于每一次体验ej=(sj,aj,rj,sj+1)小批量的(考虑一个经验,其中aj=2) 我在状态下通过主网络计算输出sj+1,所以我获得了 3 个值。

  2. 我看看这三个中哪一个是最高的,所以:a=argmaxaQ(sj+1,a), 假设a=1

  3. 我使用目标网络来计算中的值,所以 a=1Qtarget(sj+1,1)

  4. 我使用点 3 处的值来替换与已知动作关联的目标向量中的值,因此:,而,它们完成目标向量保持不变。aj=2Qtarget(sj+1,2)rj+γQtarget(sj+1,1)Qtarget(sj+1,1)Qtarget(sj+1,3)y

有什么问题吗?

1个回答

YtDoubleDQN Rt+1+γQ(St+1,argmaxaQ(St+1,a;θt),θt)

“原始” DQN 和这个 DQN 之间的唯一区别是您使用和下一个状态来获取您的操作(通过选择具有最高 Q 的操作)。Qest

之后,您只需通过从 target_network 中选择属于该动作QQ

关于公式

  • θt表示冻结权重,因此它代表目标 Q 网络

  • 另一个表示“可学习的权重”,因此估计 Q networkθt