1

我阅读了一些关于深度 Q 学习的材料,但我不确定我是否完全理解它。从我了解到的情况来看,深度 Q 学习似乎更快地计算 Q 值,而不是通过使用 NN 执行回归、计算损失和反向传播误差以更新权重将它们放在表上。然后,在测试场景中,它需要一个状态,NN 将为该状态可能的每个动作返回几个 Q 值。然后,将选择具有最高 Q 值的动作在该状态下完成。

我唯一的问题是如何更新权重。根据这个网站,权重更新如下:

在此处输入图像描述

我知道权重是随机初始化的,R 由环境返回,gamma 和 alpha 是手动设置的,但我不明白 Q(s',a,w) 和 Q(s,a,w) 是如何初始化和计算的. 似乎我们应该建立一个 Q 值表并像使用 Q-learning 一样更新它们,还是在每个 NN 训练时期自动计算它们?我在这里不明白什么?有人可以更好地向我解释这样的等式吗?

4

1 回答 1

1

在 Q-Learning 中,我们关注的是学习 Q(s, a) 函数,它是状态到所有动作之间的映射。假设您有一个任意状态空间和一个包含 3 个动作的动作空间,每个状态将计算三个不同的值,每个值一个动作。在表格 Q-Learning 中,这是通过物理表完成的。考虑以下情况: 在此处输入图像描述

在这里,我们为游戏中的每个状态都有一个 Q 表(左上角)。在每个时间步之后,该特定动作的 Q 值会根据一些奖励信号进行更新。奖励信号可以通过 0 到 1 之间的某个值进行折扣。

在深度 Q 学习中,我们忽略了表格的使用并创建了一个参数化的“表格”,如下所示: 前馈网 在这里,所有的权重将形成输入给定的组合,这些组合应该与表格案例中看到的值匹配(仍然积极研究)。

您提出的方程式是梯度更新规则中的 Q-learning 更新规则集。

  • alpha 是步长
  • R是奖励
  • Gamma 是贴现因子您对网络进行推断以检索“贴现未来状态”的值,然后用“当前”状态减去它。如果不清楚,我建议您查看 boostrapping,这基本上就是这里发生的事情。
于 2019-06-26T16:57:35.127 回答