强化学习中价值迭代的基本案例

Base cases for value iteration in reinforcement learning

我正在尝试为“3x4 windy gridworld”MDP 实现值迭代,但在理解 Bellman 方程及其实现方面遇到了问题。

我正在使用的贝尔曼方程的形式是这样的

假设这是我正在使用的网格词,我想找到标记为 X 的图块的值 (U(s))。

(来自 this 视频的图像快照)

除了终端板块之外的所有板块的奖励都被定义为零,并且还假设如果一个人试图在特定方向上移动,那么实际移动的可能性很小与预期移动成直角放置。 (如果您尝试从 x 向下移动,您将以 0.8 的概率向下移动,但将分别以 0.1 的概率向左或向右移动)

现在,当您尝试解开位置 x 的贝尔曼方程时,有三个邻居 (U(s')) 用于操作 'UP'。原始位置本身(因为它不能向上移动)有 0.8 的概率,它右边的 +1 状态有 0.1 的概率,它左边的瓦片也有 0.1 的概率。这些构成了 s' 个状态。

因此,查找状态 X 的值的函数将递归调用所有状态 s'。其中的 +1 状态不是问题,因为它是终端磁贴,构成了基本情况。但是其中一个状态是原始状态 X 本身,我不明白这种情况将如何在递归调用中终止。第三块瓷砖也有同样的问题;在对 它的 邻居等的所有调用之后它会终止吗?

值迭代不会自行终止;只要 γ < 1 并且奖励不是无限的,它就会逐渐收敛到正确的值。

在实践中,只要折扣项(在每个递归级别用 γ 取幂)变得太小以至于继续计算下一个 U(s') 不会对您已有的值产生影响,您就可以终止累积.