动态规划(Dynamic Programming,DP)是解决强化学习问题的一类方法,它通常假设环境的动态能够完全被马尔可夫决策过程(MDP)所建模。同时,它要求能精确获取状态转移模型和奖励函数(即假设给定 MDP 的参数)。在动态规划框架内,主要有两种经典的强化学习算法:策略迭代(Policy Iteration)和价值迭代(Value Iteration)。以下是两者的详细介绍:

1. 策略迭代 (Policy Iteration)

策略迭代是一种逐步优化策略的方法,它交替执行两个关键步骤:策略评估策略改进

过程

1. 策略评估 (Policy Evaluation):
- 在给定当前策略 π 的情况下,计算该策略的状态价值函数 V^{\pi}(s) ,或动作价值函数 Q^{\pi}(s, a)
- 通过迭代的方式求解贝尔曼方程,使得价值估计逐渐收敛。
- 公式如下:
V^{\pi}(s) = \sum_{a} \pi(a|s) \sum_{s'} P(s'|s, a) \left[ R(s, a, s') + \gamma V^{\pi}(s') \right] 其中 R(s, a, s') 是即时奖励, \gamma 是折扣因子。

2. 策略改进 (Policy Improvement):
- 使用最新的状态价值函数 V^{\pi}(s) 来改进策略,使得新策略在所有状态下选择的动作能够最大化期望价值。
- 新策略更新为:
\pi'(s) = \arg\max_{a} \sum_{s'} P(s'|s, a) \left[ R(s, a, s') + \gamma V^{\pi}(s') \right]

3. 迭代执行上述过程:
- 不断交替执行策略评估和策略改进,直到策略不再发生变化(即到达最优策略 \pi^* )。

优缺点

- 优点: 分离了价值评估和策略改进,逻辑清晰,容易理解。
- 缺点: 策略评估阶段可能需要多次迭代才能收敛,会增加计算开销。

2. 价值迭代 (Value Iteration)

价值迭代是一种将策略评估和策略改进合并的算法。该方法直接通过状态价值函数进行优化,从而得到最优策略。

过程

1. 直接迭代更新:
- 使用贝尔曼最优方程迭代更新状态价值 V(s)
- 公式如下:
V(s) = \max_{a} \sum_{s'} P(s'|s, a) \left[ R(s, a, s') + \gamma V(s') \right] - 每次迭代都直接逼近最终的最优策略。

2. 策略提取:
- 在价值迭代完成后,利用最终的状态价值函数 V^*(s) 提取最优策略。
- 最优策略对应于选择能够使 V(s) 最大的动作:
\pi^*(s) = \arg\max_{a} \sum_{s'} P(s'|s, a) \left[ R(s, a, s') + \gamma V^*(s') \right]

优缺点

- 优点: 不需要独立的策略评估步骤,利用贝尔曼最优方程一次性更新状态价值,收敛速度更快。
- 缺点: 如果状态空间和动作空间非常大,可能导致计算代价较高(即所谓的“维度灾难”)。

策略迭代 vs. 价值迭代

算法 策略迭代 价值迭代
迭代过程 交替执行策略评估和策略改进 直接更新价值函数,通过价值迭代完成策略提取
计算效率 可能需要多轮策略评估后才能进行策略改进 每次迭代都直接逼近最优策略,收敛速度较快
易于理解 分步骤设计更容易理解 整体逻辑简洁,但需要直接操作贝尔曼最优方程
适合场景 对精确性要求较高,甚至需要完全收敛的场景 更快得到近似最优策略,适合快速求解问题的场景

总结

- 策略迭代适用于需要一步步改进策略的场景,具有清晰的步骤划分。
- 价值迭代是一种更高效的求解方法,它直接更新价值函数的同时逼近最优策略,更适合计算资源受限的场景。
- 两种方法都依赖于动态规划,因此一般在小规模问题或给定确切的环境模型时使用。如果环境模型未知,通常采用基于采样的强化学习方法(如 Q-learning 或策略梯度方法)。

基于动态规划的这两种强化学习算法要求事先知道环境的状态转移函数和奖励函数,也就是需要知道整个马尔可夫决策过程。在这样一个白盒环境中,不需要通过智能体和环境的大量交互来学习,可以直接用动态规划求解状态价值函数。但是,现实中的白盒环境很少,这也是动态规划算法的局限之处,我们无法将其运用到很多实际场景中。另外,策略迭代和价值迭代通常只适用于有限马尔可夫决策过程,即状态空间和动作空间是离散且有限的。