3

所以我正在尝试实现由谷歌 DeepMind 创建的深度 Q 学习算法,我想我现在已经掌握了它。然而,还有一件(非常重要的)事情我不太明白,我希望你能提供帮助。

yj 不会导致双精度数(Java),而后半部分不会导致矩阵,该矩阵包含下一行(算法中的倒数第 4 行)中当前状态下每个动作的 Q 值:


1


那么我怎样才能将它们彼此相减。

我是否应该使 yj 成为包含此处所有数据的矩阵,2但将当前选择的操作替换为

在此处输入图像描述

这似乎不是正确的答案,如您所见,我在这里有点迷路。


在此处输入图像描述

4

1 回答 1

6

其实是自己找的。(从一开始就明白了:D)

  1. 对当前状态 s 进行前馈传递,以获得所有动作的预测 Q 值。
  2. 对下一个状态 s' 进行前馈传递并计算最大整体网络输出 max a' Q(s', a')。
  3. 将动作的 Q 值目标设置为 r + γmax a' Q(s', a')(使用步骤 2 中计算的最大值)。对于所有其他操作,将 Q 值目标设置为与最初从步骤 1 返回的相同,使这些输出的错误为 0。
  4. 使用反向传播更新权重。
于 2016-10-08T15:51:25.997 回答