价值迭代
价值迭代
价值迭代 (Value Iteration) 是一种经典的动态规划算法,用于在已知的马尔可夫决策过程中,计算所有状态的最优价值函数 。其核心思想是通过迭代的方式,不断更新每个状态的价值,直到价值收敛为止。
1. 核心思想
算法通过引入“时间限制”的概念,从一个有限的未来开始,逐步扩展到无限的未来,最终得到最优价值。
时间限制价值
我们定义 为在状态 出发,且还剩下 步时所能获得的最大期望效用。
- 当 时,意味着游戏立即结束,不能采取任何行动,也无法获得任何奖励。因此,对于所有状态 ,初始值 。
- 随着 的增加, 的计算会考虑更长远的未来,从而越来越接近真正的最优价值 。
迭代更新规则
价值迭代通过重复应用以下更新规则,从 计算 ,直到价值收敛(即 对所有状态 成立)。
对于每一个状态 ,更新规则如下:
这个公式的含义是:
- 在状态 尝试所有可能的行动 。
- 对于每个行动 ,计算其期望效用。这个期望效用是所有可能的后继状态 的(即时奖励 + 未来折扣奖励)的加权平均,权重是转移概率 。
- 未来的奖励 需要用折扣因子 (gamma) 进行折算。
- 选择那个能够带来最大期望效用的行动 ,并将其结果作为状态 的新价值 。
这个更新规则与贝尔曼方程非常相似,但它们有本质区别。贝尔曼方程描述的是最优性条件(即 应该满足的等式),而价值迭代的更新规则是一种 计算方法,通过迭代使其最终满足贝尔曼方程。
贝尔曼算子
为了简化表达,我们经常使用贝尔曼算子 来表示上述更新过程:
其中,算子 的定义就是更新规则的右半部分。可以证明,贝尔曼算子是一个以 为系数的收缩映射。这意味着,每次应用贝尔曼算子,不同价值函数之间的差距都会以 的比例缩小。
因为 ,所以反复应用该算子最终必然会收敛到一个唯一的不动点 (Fixed Point),这个不动点就是最优价值函数 ,此时 。
2. 策略提取
当我们通过价值迭代计算出最优价值函数 后,我们的最终目标是找到最优策略 。策略提取的过程非常直观:在任何状态 ,我们应该选择那个能够导向最大期望效用的行动。
最优策略 的计算公式如下:
这本质上是在对所有可能的行动进行一次“向前看一步”的计算,然后选择最好的那个。
3. Q-价值迭代
除了直接计算状态价值 ,我们也可以直接迭代计算Q值 。其更新规则如下:
这个公式与价值迭代非常相似,关键区别在于 操作的位置。因为Q值本身就与特定动作 绑定,所以在计算后继状态 的未来价值时,我们需要从 出发,选择能使其Q值最大的动作 。
使用Q-价值迭代的好处是,一旦收敛得到最优Q值 ,策略提取会变得非常简单,无需再考虑转移概率 和奖励 :
值迭代的 在最外面。意思是:“为了评估 这个格子,我先试一下从这里出发的所有动作,分别计算出每个动作的平均回报,然后选那个最好的动作所对应的回报,作为这个格子的最终价值。”
Q值迭代的 在里面。意思是:“我正在评估在 格子执行 这个特定动作的价值。我不用在当前比较哪个动作好,因为动作 已经定了。我只需要计算执行 之后,可能会落到哪些点 ,并假设我到了那些点之后,总能做出最明智的下一步选择 (), 然后把这些乐观的未来价值加权平均,就是我当前这个动作 a 的价值。”