在Q-learning中,从当前状态开始,代理在每个离散时间步骤执行操作,并且在执行操作之后,代理会立即获得奖励以访问已执行操作的成功或失败。 让我们说我们想要使用Q-learning来控制车速,其中动作是目标速度,而代理的目标是到达停止线(距离起点1km)。可能。
1)因此,在此示例中,代理是否需要在每个离散时间步(1秒)采取操作,或者代理可以每100米而不是每个离散时间步执行操作。这是否必须在每个离散时间步骤采取行动?
2)Q学习中的延迟奖励是什么意思? 一旦代理人到达目标而不是在每个时间步骤采取每个动作后更新奖励,更新奖励是什么? 在此先感谢:)
答案 0 :(得分:2)
1)代理是否需要在每个离散时间步(1秒)采取行动,或者代理可以每100米而不是每个离散时间步进行动作。这是否必须在每个离散时间步骤采取行动?
我认为你可能会将Q学习中的时间步骤概念与我们物理实现的时间混淆。在Q-learning中,每个时间步都是代理人进行移动/采取行动的时间。因此,如果游戏是象棋,那么每一步都是玩家玩的时间。因此,您的代理人采取行动的频率取决于游戏规则。在你的例子中,我不太清楚游戏的规则是什么"是?如果规则说代理人每隔1"第二次选择一个动作,则代理人需要遵循该规则。如果你认为这种情况太频繁,你可以看看"无"是代理可以采取的行动选项。
Q学习中的延迟奖励是什么意思?一旦代理人到达目标而不是在每个时间步骤采取每个动作后更新奖励,更新奖励是什么?
要了解延迟奖励,或许请查看formula会有所帮助。 如您所见,时间步t的Q值不仅受到旧Q值和即时奖励的影响,还受到" 估计的最佳未来值"的影响。该估计的最佳值(具有要调整的超参数折扣因子)被设置为捕获"延迟的奖励"。
延迟奖励背后的直觉是,有时候一个动作似乎是一个不好的行动(在数学上通过采取这种行动,代理人获得的立即奖励甚至罚款),但不知何故,这个动作会导致长期利益。把它放在你的例子中,假设代理在P位置,有两条路线到达停止线。一条路线直线距离为1公里,另一条路线有一段绕行距离,距离为1.5公里。代理人需要1.5公里的路线,它可能会获得比选择1公里路线更少的即时奖励。让我们进一步假设1.5公里的路线具有比1公里路线更高的速度限制,这实际上导致代理人比乘坐1公里路线更快地到达停止线。这个"未来的奖励"是在时间步t计算Q值(位置P的状态,采取1.5 km路线的动作)时需要考虑的延迟奖励。
该公式可能有点令人困惑,因为它涉及未来的Q值。我这样做的方式只是在时间步t计算Q值而不用担心延迟奖励。
# @ time step t
Q(st, at) = Q(st, at) + alpha * immedate_reward - alpha*Q(st, at)
然后在到达时间步骤t + 1之后,我回到更新前一个Q值,在时间步骤t延迟奖励。
# @ 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))
我希望这有助于澄清和回答你的问题......