如何实现深度Q学习梯度下降

时间:2016-10-08 12:54:58

标签: java algorithm neural-network deep-learning q-learning

所以我正在尝试实施由Google DeepMind创建的Deep Q-learning算法,我想我现在已经有了很好的解决方案。然而,还有一个(非常重要的)我不太懂的东西,我希望你能提供帮助。

不是yj导致双重(Java),后者是否包含一个矩阵,其中包含以下行中当前状态的每个动作的Q值(算法中的第4行):

1

那么我该如何相互减去它们呢?

我是否应该将yj作为包含此处2所有数据的矩阵,除非用

替换当前选定的操作

enter image description here

这似乎不是正确答案,我在这里有点迷失,你可以看到。

enter image description here

1 个答案:

答案 0 :(得分:3)

实际上是我自己找到的。 (从一开始就做对了:D)

  1. 为当前状态执行前馈传递以获取所有操作的预测Q值。
  2. 为下一个状态s'执行前馈传递并计算最大总网络输出最大值'Q(s',a')。
  3. 将动作的Q值目标设置为r +γmax'Q(s',a')(使用步骤2中计算的最大值)。 对于所有其他操作,请将Q值目标设置为与步骤1中最初返回的相同,使这些输出的错误为0.
  4. 使用backpropagation更新权重。