我已经阅读了关于双 DQN 的原始论文,但我没有找到关于目标如何实现的清晰实用的解释是计算出来的,所以这就是我解释该方法的方式(假设我有 3 个可能的操作 (1,2,3)):
对于每一次体验小批量的(考虑一个经验,其中) 我在状态下通过主网络计算输出,所以我获得了 3 个值。
我看看这三个中哪一个是最高的,所以:, 假设
我使用目标网络来计算中的值,所以
我使用点 3 处的值来替换与已知动作关联的目标向量中的值,因此:,而和,它们完成目标向量保持不变。
有什么问题吗?
我已经阅读了关于双 DQN 的原始论文,但我没有找到关于目标如何实现的清晰实用的解释是计算出来的,所以这就是我解释该方法的方式(假设我有 3 个可能的操作 (1,2,3)):
对于每一次体验小批量的(考虑一个经验,其中) 我在状态下通过主网络计算输出,所以我获得了 3 个值。
我看看这三个中哪一个是最高的,所以:, 假设
我使用目标网络来计算中的值,所以
我使用点 3 处的值来替换与已知动作关联的目标向量中的值,因此:,而和,它们完成目标向量保持不变。
有什么问题吗?
“原始” DQN 和这个 DQN 之间的唯一区别是您使用和下一个状态来获取您的操作(通过选择具有最高 Q 的操作)。
之后,您只需通过从 target_network 中选择属于该动作
关于公式
表示冻结权重,因此它代表目标 Q 网络。
另一个表示“可学习的权重”,因此估计 Q network。