假设我们有一个机器人可以在 (x,y) 平面上移动。现在我们将世界的中心定义为目标状态,这意味着一旦机器人到达该状态,我们将给予它 100 的奖励。
现在,假设有 4 个状态(我将称之为 A、B、C、D)可以引导到目标状态。
第一次我们处于 A 状态并进入目标状态时,我们将按如下方式更新我们的 Q 值表:
Q(state = A, action = going to goal state) = 100 + 0
可能会发生两种情况。我可以在这里结束回合,并开始另一个不同的回合,让机器人再次找到目标状态,或者我可以在找到目标状态后继续探索世界。但如果我尝试这样做,我会发现一个问题。如果我处于目标状态并返回到 A 状态,它的 Q 值将如下所示:
Q(state = goalState, action = going to A) = 0 + gamma * 100
现在,如果我尝试再次从 A 状态到目标状态:
Q(state = A, action = going to goal state) = 100 + gamma * (gamma * 100)
这意味着如果我一直这样做,因为 0 <= gamma <= 0,两个 q 值都会永远上升。
这是 QLearning 的预期行为吗?我做错什么了吗?如果这是预期的行为,这不会导致问题吗?我知道概率上,所有 4 个状态(A、B、C 和 D)都会以相同的速度增长,但即便如此,它们永远增长还是让我有点困扰。
允许 agent 在找到目标后继续探索的想法与 agent 离目标状态越近,就越有可能处于可以立即更新的状态有关。
回答:
这是预期的,因为 Q 估计不是预期的奖励,而是预期的回报,也就是如果我从该状态/行动开始并按照我的策略直到回合结束或永远,我期望获得的(可能通过 gamma 折扣的)奖励金额。
如果你给我一些按钮,其中一个按钮总是会在按下时产生 1 美元,那么按下该按钮的真正预期奖励是 1 美元。但假设我有无限次按下按钮的机会,那么按下按钮的真正预期回报是无限美元。