马尔可夫决策过程(MDP)的重要组成部分和贝尔曼方程是强化学习中的必要内容。用于求解当模型(转移和奖励)已知时的MDP,存在两种基本动态规划算法:策略迭代和价值迭代。这些方法为许多在模型未知情况下运行的强化学习技术提供了根本依据。
策略迭代(PI)
策略迭代是一种通过重复执行两个步骤来寻找最优策略π∗的方法:评估当前策略,然后根据评估结果改进策略。它从任意初始策略π0开始,并在这两个阶段之间交替进行,直到策略不再发生变化。
1. 策略评估
在此步骤中,我们计算当前策略π的状态价值函数Vπ(s)。回想一下Vπ的贝尔曼期望方程:
Vπ(s)=a∑π(a∣s)s′∑P(s′∣s,a)[R(s,a,s′)+γVπ(s′)]
对于一个具有∣S∣个状态的有限MDP,这个方程定义了一个包含∣S∣个未知数(所有s∈S的Vπ(s))的∣S∣个线性方程组。这个系统可以直接求解。然而,一种常用的迭代方法是重复将贝尔曼期望备份算子应用于初始估计值Vk(s),直到这些值收敛:
Vk+1(s)←a∑π(a∣s)s′∑P(s′∣s,a)[R(s,a,s′)+γVk(s′)]
对所有状态s执行此迭代更新,直到价值函数在迭代之间的变化足够小(例如,maxs∣Vk+1(s)−Vk(s)∣<θ)。结果是对Vπ的精确估计。
2. 策略改进
一旦我们有了当前策略π的价值函数Vπ,我们就会检查是否可以对其进行改进。我们通过考虑对于每个状态s,是否采取与π规定不同的行动会产生更好的预期回报来做到这一点。这涉及使用计算出的Vπ来计算行动价值函数Qπ(s,a):
Qπ(s,a)=s′∑P(s′∣s,a)[R(s,a,s′)+γVπ(s′)]
然后,我们定义一个新的、可能已改进的策略π′,它相对于Qπ(s,a)采取贪婪行动:
π′(s)=argamaxQπ(s,a)
这意味着π′(s)选择能够最大化预期一步展望值的行动,假设之后我们遵循原始策略π(如Vπ所捕获)。策略改进定理保证这个新策略π′至少与π一样好,甚至可能更好。也就是说,对于所有s∈S,都有Vπ′(s)≥Vπ(s)。
策略迭代算法
整个算法在这两个步骤之间交替进行:
- 任意初始化策略π0。
- 重复:
a. 策略评估:计算Vπk(例如,使用迭代贝尔曼期望备份)。
b. 策略改进:使用Vπk计算Qπk(s,a)。为所有s定义一个新的贪婪策略πk+1(s)=argmaxaQπk(s,a)。
c. 停止条件:如果对于所有s,πk+1(s)=πk(s),则停止并返回πk+1和Vπk。否则,继续下一次迭代(k←k+1)。
因为有限MDP的策略数量是有限的,并且每个策略改进步骤都会产生一个严格更好或相等的策略,所以策略迭代保证在有限次迭代内收敛到最优策略π∗。
策略迭代过程在评估当前策略和根据评估结果贪婪地改进策略之间交替进行。
策略迭代的一个潜在缺点是策略评估步骤计算量较大,需要多次遍历状态空间,直到Vπ精确收敛。
价值迭代(VI)
价值迭代提供了一种不同的方式。与在完整策略评估和改进之间交替不同,价值迭代通过重复应用贝尔曼最优性备份算子来直接迭代计算最优价值函数V∗。
回想一下V∗的贝尔曼最优性方程:
V∗(s)=amaxs′∑P(s′∣s,a)[R(s,a,s′)+γV∗(s′)]
价值迭代将这个方程转化为一个更新规则。它从初始猜测V0(s)(通常全为零)开始,并迭代地对其进行修正:
Vk+1(s)←amaxs′∑P(s′∣s,a)[R(s,a,s′)+γVk(s′)]
此更新在每次迭代k中同步(或异步)应用于所有状态s。请注意,行动的最大化(策略改进方面)是如何直接纳入价值更新(策略评估方面)的。
价值迭代算法
- 为所有s∈S初始化V0(s)(例如,V0(s)=0)。
- 初始化阈值θ>0(一个小的正数)。
- 重复:
a. Δ←0
b. 对于每个状态s:
i. v←Vk(s)
ii. Vk+1(s)←maxa∑s′P(s′∣s,a)[R(s,a,s′)+γVk(s′)]
iii. Δ←max(Δ,∣v−Vk+1(s)∣)
c. k←k+1
d. 停止条件:直到Δ<θ。
- 输出:一个确定性策略π∗,使得π∗(s)=argmaxa∑s′P(s′∣s,a)[R(s,a,s′)+γVk(s′)]。
价值迭代保证收敛到最优价值函数V∗,因为贝尔曼最优性算子是一个收缩映射,确保价值估计在每次迭代中都逐渐接近真实的V∗。一旦找到V∗(或其近似值),可以通过执行单步策略改进来提取最优策略π∗,如最终输出步骤所说明。
价值迭代过程中特定状态的价值函数收敛示例。该价值在迭代过程中逐渐接近最优价值V∗(s)。
策略迭代与价值迭代的比较
- 策略迭代:在完整策略评估(可能需要多次遍历)和单步策略改进之间交替。保证在有限次策略更新中找到π∗,但评估过程可能较慢。
- 价值迭代:每次迭代执行一次贝尔曼最优性备份。每次迭代的计算比策略迭代中的完整策略评估更简单(无需等待Vπ收敛),但价值迭代可能需要更多的总迭代次数才能收敛到V∗。
实践中,价值迭代通常收敛更快,尤其当可能的策略数量非常大时。也存在一些变体,例如改进的策略迭代,它在评估阶段只执行固定次数的贝尔曼期望备份,而不是迭代直到完全收敛。
价值迭代和策略迭代都是在已知MDP中寻找最优策略的基本动态规划方法。它们阐明了使用贝尔曼备份来评估和改进策略的主要原理,这些是许多我们稍后将学习的无模型强化学习算法所采用的核心思想。