【发布时间】:2021-01-08 19:33:03
【问题描述】:
开发者,
我找到了一堆 DQN 实现的例子,但是因为我不是 TensorFlow 专家,所以我有点困惑。
让我们看看here 就是其中之一。
我可以理解,在第 73 行,我们准确地切分了一批存储的数据 [{state, action, reward, newState, done}],然后我们得到 currentStates,即 [[s1, s2, ...]],然后在第 75 行我们使用模型得到 currentQs,这应该是,我如何理解,[[act1, act2, ...]],因为我们的模型用于从 env 的状态中获取操作。 newCurrentStates 和 futureQs 也是如此。
但是在 88 上,我们看到了let maxFutureQ = Math.max(futureQs);。这里发生了什么? futureQs 是一个数组,每个未来状态都有动作概率?然后maxFutureQ 应该是一个动作概率,为什么还要加上这个奖励呢?这部分让我很困惑。
我也无法理解为什么我们需要在 94 上做currentQ[action] = newQ;。
拜托,有人可以帮我理解这里发生了什么,然后让 cmets 去排队吗?
提前致谢。
编辑:
【问题讨论】:
标签: javascript tensorflow tensorflow.js q-learning dqn