Q 学习更新频率
Q-learning Updating Frequency
在 Q-learning 中,智能体从其当前状态开始在每个离散时间步采取行动,并且在执行操作后,智能体会立即收到奖励以了解执行操作的成功或失败。
假设我们想使用 Q 学习来控制车速,其中动作是目标速度,代理的目标是尽快到达停止线(距离起点 1 公里)。
1) 因此,在此示例中,代理是否需要在每个离散时间步长(1 秒)采取行动,或者代理可以在每 100 米而不是每个离散时间步长采取行动。是否必须在每个离散时间步采取行动?
2) Q-learning 中延迟奖励是什么意思?
是在代理人达到目标后更新奖励,而不是在每个时间步采取每个动作后更新奖励?
提前致谢:)
1) does agent need to take action at every discrete time step (1sec) or agent can get an action at every 100m instead of every discrete time step. Is that a must to take action at every discrete time step?
我认为您可能混淆了 Q-learning 中时间步长的概念与我们对时间的物理实现。在 Q-learning 中,每个时间步都是轮到代理执行 move/take 动作的时间。因此,如果游戏是国际象棋,那么每个时间步都是玩家下棋的时间。因此,您的代理采取行动的频率取决于游戏规则。在您的示例中,我不太清楚 "game" 的规则是什么?如果规则说代理人每 1 "second" 就可以选择一个动作,那么代理人将需要遵循该规则。如果您认为这太频繁了,您可以查看 "None" 是否是代理可以采取的可用操作选项。
what is mean by delayed reward in Q-learning? is that updating reward once agent reaches to the target instead of updating reward after taking each action at every time step?
要了解延迟奖励,或许可以看看 formula would help.
如您所见,时间步长 t 的 Q 值不仅受到旧 Q 值和即时奖励的影响,还受到“估计的最优未来价值”的影响。这个估计的最优值(具有要调整的超参数折扣因子)被设置为捕获 "delayed reward"。
延迟奖励背后的直觉是,有时一个动作在当时可能看起来是一个糟糕的动作(从数学上讲,通过采取这个动作,代理人立即获得了较低的奖励甚至惩罚),但不知何故这个动作导致以取得长期利益。把它放在你的例子中,假设代理人在位置 P,有两条路线可以到达停止线。一条路线的直线距离为 1 公里,另一条路线稍微绕行,距离为 1.5 公里。智能体选择 1.5 公里的路线,它可能会比选择 1 公里的路线获得更少的即时奖励。让我们进一步假设 1.5 公里的路线比 1 公里的路线有更高的速度限制,这实际上导致代理比走 1 公里的路线更快到达停止线。这个"future reward"是延迟奖励,在计算时间步长t的(位置P的状态,走1.5公里路线的动作)的Q值时需要考虑。
该公式可能难以实施,因为它涉及未来的 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))
我希望这有助于澄清和回答您的问题...
在 Q-learning 中,智能体从其当前状态开始在每个离散时间步采取行动,并且在执行操作后,智能体会立即收到奖励以了解执行操作的成功或失败。 假设我们想使用 Q 学习来控制车速,其中动作是目标速度,代理的目标是尽快到达停止线(距离起点 1 公里)。
1) 因此,在此示例中,代理是否需要在每个离散时间步长(1 秒)采取行动,或者代理可以在每 100 米而不是每个离散时间步长采取行动。是否必须在每个离散时间步采取行动?
2) Q-learning 中延迟奖励是什么意思? 是在代理人达到目标后更新奖励,而不是在每个时间步采取每个动作后更新奖励? 提前致谢:)
1) does agent need to take action at every discrete time step (1sec) or agent can get an action at every 100m instead of every discrete time step. Is that a must to take action at every discrete time step?
我认为您可能混淆了 Q-learning 中时间步长的概念与我们对时间的物理实现。在 Q-learning 中,每个时间步都是轮到代理执行 move/take 动作的时间。因此,如果游戏是国际象棋,那么每个时间步都是玩家下棋的时间。因此,您的代理采取行动的频率取决于游戏规则。在您的示例中,我不太清楚 "game" 的规则是什么?如果规则说代理人每 1 "second" 就可以选择一个动作,那么代理人将需要遵循该规则。如果您认为这太频繁了,您可以查看 "None" 是否是代理可以采取的可用操作选项。
what is mean by delayed reward in Q-learning? is that updating reward once agent reaches to the target instead of updating reward after taking each action at every time step?
要了解延迟奖励,或许可以看看 formula would help.
延迟奖励背后的直觉是,有时一个动作在当时可能看起来是一个糟糕的动作(从数学上讲,通过采取这个动作,代理人立即获得了较低的奖励甚至惩罚),但不知何故这个动作导致以取得长期利益。把它放在你的例子中,假设代理人在位置 P,有两条路线可以到达停止线。一条路线的直线距离为 1 公里,另一条路线稍微绕行,距离为 1.5 公里。智能体选择 1.5 公里的路线,它可能会比选择 1 公里的路线获得更少的即时奖励。让我们进一步假设 1.5 公里的路线比 1 公里的路线有更高的速度限制,这实际上导致代理比走 1 公里的路线更快到达停止线。这个"future reward"是延迟奖励,在计算时间步长t的(位置P的状态,走1.5公里路线的动作)的Q值时需要考虑。
该公式可能难以实施,因为它涉及未来的 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))
我希望这有助于澄清和回答您的问题...