假设我们在一个房间里,我们的代理可以沿着 xx 和 yy 轴移动。在每个点上,他都可以上下左右移动。所以我们的状态空间可以由 (x, y) 定义,我们在每个点的动作由 (up, down, right, left) 给出。让我们假设,无论我们的代理在哪里做了一个让他撞墙的动作,我们都会给他一个负奖励 -1,并让他回到之前的状态。如果他在房间中央找到一个木偶,他将获得+10 奖励。
当我们为给定的状态/动作对更新我们的 QValue 时,我们正在查看在新状态下可以执行哪些操作并计算可能到达那里的最大 QValue 是多少,因此我们可以更新我们的 Q(s, a)我们当前状态/动作的价值。这意味着如果我们在点 (10, 10) 有一个目标状态,那么它周围的所有状态都会随着距离的增加而变得越来越小。现在,就墙壁而言,在我看来,情况并非如此。
当智能体撞墙时(假设他处于 (0, 0) 位置并执行了 UP 动作),他将针对该状态/动作获得 -1 的奖励,从而获得 -1 的 QValue。
现在,如果稍后我处于状态 (0, 1),并假设状态 (0,0 0) 的所有其他动作为零,则在计算动作 LEFT 的 (0, 1) 的 QValue 时,它将计算它通过以下方式:
Q([0,1], LEFT) = 0 + gamma * (max { 0, 0, 0, -1 } ) = 0 + 0 = 0
也就是说,撞墙不会传播到附近的状态,这与当你有积极的奖励状态时发生的情况相反。
在我看来,这似乎很奇怪。起初我认为找到给予负奖励的状态/动作对在学习方面与正奖励一样好,但从我上面展示的例子来看,这种说法似乎并不成立。该算法似乎存在一种偏见,即更多地考虑积极奖励而不是消极奖励。
这是 QLearning 的预期行为吗?坏奖励不应该和积极奖励一样重要吗?什么是“解决方法”?