0

在 Q-learning 中,从当前状态开始,智能体在每个离散时间步采取行动,并且在执行动作后,智能体会立即获得奖励,以了解执行动作的成功或失败。假设我们想使用 Q-learning 控制车速,其中动作是目标速度,代理的目标是尽快到达停止线(距离起点 1 公里)。

1)所以在这个例子中,代理是否需要在每个离散时间步(1 秒)采取行动,或者代理可以在每 100 米而不是每个离散时间步采取行动。是否必须在每个离散时间步采取行动?

2)Q-learning中的延迟奖励是什么意思?是在代理到达目标后更新奖励,而不是在每个时间步采取每个动作后更新奖励吗?提前致谢 :)

4

1 回答 1

2

1) 代理是否需要在每个离散时间步(1 秒)采取行动,或者代理可以在每 100 米而不是每个离散时间步采取行动。是否必须在每个离散时间步采取行动?

我认为您可能会将 Q-learning 中时间步长的概念与我们对时间的物理实现相混淆。在 Q-learning 中,每个时间步都是轮到智能体采取行动/采取行动的时间。因此,如果游戏是国际象棋,那么每个时间步都是玩家下棋的时间。因此,您的代理采取行动的频率取决于游戏规则。在您的示例中,我不太清楚“游戏”的规则是什么?如果规则说代理每 1“秒”选择一个动作,那么代理将需要遵循这一点。如果您认为这过于频繁,您可以查看“无”是否是代理可以采取的可用操作选项。

Q-learning中的延迟奖励是什么意思?是在代理到达目标后更新奖励,而不是在每个时间步采取每个动作后更新奖励吗?

要了解延迟奖励,也许看看公式会有所帮助。Q-学习公式 如您所见,时间步 t 的 Q 值不仅受旧 Q 值和即时奖励的影响,还受“估计的最优未来值”的影响。这个估计的最佳值(带有要调整的超参数折扣因子)被设置为捕获“延迟奖励”。

延迟奖励背后的直觉是,有时一个动作在当时可能看起来是一个不好的动作(从数学上讲,通过采取这个动作,智能体收到了较低的即时奖励甚至惩罚),但不知何故,这个动作会带来长期的好处. 把它放在你的例子中,假设代理在位置 P,有两条路线可以到达停止线。一条路线的直线距离为1公里,另一条路线有点绕道,距离为1.5公里。代理选择 1.5 公里的路线,它可能会比选择 1 公里的路线获得更少的直接奖励。让我们进一步假设 1.5 公里的路线比 1 公里的路线有更高的限速,这实际上导致代理比 1 公里的路线更快地到达停止线。这个“未来的奖励”

该公式实施起来可能有点混乱,因为它涉及未来的 Q 值。我曾经这样做的方式是简单地计算时间步 t 的 Q 值,而不用担心延迟奖励。

# @ time step t
Q(st, at) = Q(st, at) + alpha * immedate_reward - alpha*Q(st, at)

然后在达到时间步 t+1 后,我返回以延迟奖励更新时间步 t 的前一个 Q 值。

# @ time step t+1
Q(st+1, at+1) = Q(st+1, at+1) + alpha * immedate_reward - alpha*Q(st+1, at+t)
Q(st, at) = Q(st, at) + alpha * gama * max(Q(st+1, a))

我希望这有助于澄清和回答你的问题......

于 2016-10-19T06:13:37.360 回答