本系列文章主要参考UIUC姜楠老师开设的cs542
规划(Planning)问题是基于给定的已知的 MDP M = ( S , A , P , R , γ ) M=(\mathcal{S}, \mathcal{A}, P, R, \gamma) M=(S,A,P,R,γ),计算最优策略 π M ∗ \pi_M^* πM∗,这里讨论 Q ∗ Q^* Q∗ 的计算。本章将介绍用来求解规划问题的策略迭代算法、值迭代算法、以及线性规划算法。
策略迭代
策略迭代算法为从任意初始策略 π 0 \pi_0 π0 开始,不断重复下述步骤:
π k = π Q π k − 1 \pi_k = \pi_{Q^{\pi_{k-1}}} πk=πQπk−1
即在每次迭代中,先进行策略评估,即基于公式 V π = ( I ∣ S ∣ − γ P π ) − 1 R π V^\pi = (\bold{I}_{|\mathcal{S}|} - \gamma P^\pi)^{-1} R^\pi Vπ=(I∣S∣−γPπ)−1Rπ 计算策略 π k − 1 \pi_{k-1} πk−1 下的动作值函数,更一般地,是使用贝尔曼算子不断更新当前的动作值函数,直至收敛到不动点,并使用这个不动点来作为当前策略对应的动作值函数,即 lim N → ∞ ( T π ) N V = V π \lim_{N \rightarrow \infty} (\mathcal{T}^\pi)^N V = V^\pi limN→∞(Tπ)NV=Vπ;然后进行策略改进,即基于公式 π ( s ) = arg max a ∈ A Q ( s , a ) \pi(s) = \arg\max_{a \in \mathcal{A}} Q(s,a) π(s)=argmaxa∈AQ(s,a) 计算该动作值函数下的策略。
首先介绍策略改进定理(Policy improvement theorem),以证明策略迭代算法的收敛性:在策略迭代算法中,对于所有 k ≥ 1 k\ge1 k≥1 以及 s ∈ S s\in\mathcal{S} s∈S, a ∈ A a\in\mathcal{A} a∈A,都有 V π k ( s ) ≥ V π k − 1 ( s ) V^{\pi_k}(s) \ge V^{\pi_{k-1}}(s) Vπk(s)≥Vπk−1(s) 成立,并且直至 π ∗ \pi^* π∗ 被找到之前,每次迭代中都能保证有至少一个状态是严格大于的。
因此,策略迭代算法的终止条件为 Q π k = Q π k − 1 Q^{\pi_k}=Q^{\pi_{k-1}} Qπk=Qπk−1。另外,可以证明策略迭代算法最多只需要迭代 ∣ A ∣ ∣ S ∣ |\mathcal{A}|^{|\mathcal{S}|} ∣A∣∣S∣ 次:若前一次迭代的策略和后一次迭代的策略一样,那么迭代收敛,最优策略被找到;由于每次迭代值函数都不会变得更差,因此当前迭代中获取的策略与之前迭代过程中得到的策略都不同;因此,策略空间的大小即为最坏情况下的策略迭代算法收敛所需要的迭代次数。
下面将从两个角度来证明策略改进定理。对于第一个角度,这里先引入优势这个概念:给定策略 π \pi π,在状态 s s s 下动作 a a a 的优势定义为 A π ( s , a ) : = Q π ( s , a ) − V π ( s ) A^\pi(s,a):=Q^\pi(s,a)-V^\pi(s) Aπ(s,a):=Qπ(s,a)−Vπ(s)。因此策略 π ′ \pi' π′ 相比于策略 π \pi π 的优势为 A π ( s , π ′ ) : = A π ( s , π ′ ( s ) ) A^\pi(s,\pi'):=A^\pi(s,\pi'(s)) Aπ(s,π′):=Aπ(s,π′(s))。另外,优势函数还有一个性质是 A π ( s , π ( s ) ) = 0 A^\pi(s,\pi(s))=0 Aπ(s,π(s))=0。由于策略改进过程是将当前的动作值函数中值最大的动作来更新策略,所以迭代后策略相比于迭代前策略的优势函数是非负的。另一方面,由于迭代前后的策略值函数的差异可以通过优势函数线性组合表示,因此 V π k ( s ) − V π k − 1 ( s ) V^{\pi_k}(s) - V^{\pi_{k-1}}(s) Vπk(s)−Vπk−1(s) 就可以被分解成多个非负项之和,即策略迭代过程中值函数是只增不减的,从而证明了策略改进定理。下面证明值函数的差异能够用优势函数线性组合来表示。
这里引入引理 Performance Difference Lemma:对于任意 π \pi π 和 π ′ \pi' π′,以及任意状态 s ∈ S s\in\mathcal{S} s∈S,有:
V π ′ ( s ) − V π ( s ) = 1 1 − γ E s ′ ∼ d π ′ , s [ A π ( s ′ , π ′ ) ] V^{\pi'}(s) - V^\pi(s) = \frac{1}{1 - \gamma} \mathbb{E}_{s' \sim d^{\pi',s}}[A^\pi(s',\pi')] Vπ′(s)−Vπ(s)=1−γ1Es′∼dπ′,s[Aπ(s′,π′)]
其中 d π ′ , s d^{\pi',s} dπ′,s 表示给定策略 π ′ \pi' π′ 以及初始状态 s s s 下的 normalized discounted state occupancy。证明该引理的过程如下。考虑一个策略序列 { π i } i ≥ 0 \{\pi_i\}_{i\ge0} {
πi}i≥0,对于任意 i i i, π i \pi_i πi 表示在前 i i i 个时间步按策略 π ′ \pi' π′ 选择动作,之后就按策略 π \pi π 选择动作。有 π 0 = π \pi_0=\pi π0=π, π ∞ = π ′ \pi_\infty=\pi' π∞=π′。则上式可写成:
V π ′ ( s ) − V π ( s ) = ∑ i = 0 ∞ ( V π i + 1 ( s ) − V π i ( s ) ) V^{\pi'}(s) - V^\pi(s) = \sum_{i=0}^\infty (V^{\pi_{i+1}}(s) - V^{\pi_i}(s)) Vπ′(s)−Vπ(s)=i=0∑∞(Vπi+1(s)−Vπi(s))
此时,对于右式中的每一项, π i \pi_i πi 和 π i + 1 \pi_{i+1} πi+1 的前 i i i 步都是按策略 π ′ \pi' π′ 选择动作,所以在两个策略下轨迹的前 i + 1 i+1 i+1 步的状态都是一致的,在 i + 1 i+1 i+1 步的状态上才选择不同的动作,而此时不同的动作就导致后续转移到的状态的概率分布发生变化,因此有以下推导:
V π i + 1 ( s ) − V π i ( s ) = γ i ∑ s ′ P [ s i + 1 = s ′ ∣ s i = s , π ′ ] ( Q π ( s ′ , π ′ ) − Q π ( s ′ , π ) ) V^{\pi_{i+1}}(s) - V^{\pi_i}(s) = \gamma^i\sum_{s'}\mathbb{P}[s_{i+1}=s'|s_i=s,\pi'](Q^\pi(s',\pi')-Q^\pi(s',\pi)) Vπi+1(s)−Vπi(s)=γis′∑P[si+1=s′∣si=s,π′](Qπ(s′,π′)−Qπ(s′,π))
由于前 i i i 步的状态相同,所以可以消掉轨迹的前 i i i 步计算。而由于第 i + 1 i+1 i+1 步策略开始变化,所以将 s i + 1 s_{i+1} si+1 记为 s ′ s' s′,计算此步下不同状态转移情况的值。另外,由于此处离起始状态 s s s 相隔 i + 1 i+1 i+1 步,所以此处的值需要乘上 γ i \gamma^i γi 的折扣。遍历 i + 1 i+1 i+1 步下的所有状态 s ′ s' s′,到达每个 s ′ s' s′ 的概率为 P [ s i + 1 = s ′ ∣ s i = s , π ′ ] \mathbb{P}[s_{i+1}=s'|s_i=s,\pi'] P[si+1=s′∣si=s,π′],对于 π i + 1 \pi_{i+1} πi+1,在 i + 1 i+1 i+1 步下仍会根据 π ′ \pi' π′ 选择动作,所以后续轨迹的值为 Q π ( s ′ , π ′ ) Q^\pi(s',\pi') Qπ(s′,π′),表示在 s ′ s' s′ 下根据 π ′ \pi' π′ 执行动作,但是后续会根据 π \pi π 执行,所以后续的值可用 Q π Q^\pi Qπ 计算;同理,对于 π i \pi_i πi,在 i + 1 i+1 i+1 步下就转为根据 π \pi π 选择动作,所以可直接用 Q π ( s ′ , π ) Q^\pi(s',\pi) Qπ(s′,π) 表示轨迹后续的值。因此代入上式,得:
V π ′ ( s ) − V π ( s ) = ∑ i = 0 ∞ γ i ∑ s ′ ∈ S P [ s i + 1 = s ′ ∣ s 1 = s , π ′ ] ( Q π ( s ′ , π ′ ) − Q π ( s ′ , π ) ) = ∑ i = 0 ∞ γ i ∑ s ′ ∈ S P [ s i + 1 = s ′ ∣ s 1 = s , π ′ ] ( Q π ( s ′ , π ′ ) − V π ( s ′ ) ) = ∑ i = 0 ∞ γ i ∑ s ′ ∈ S P [ s i + 1 = s ′ ∣ s 1 = s , π ′ ] A π ( s ′ , π ′ ) \begin{aligned} \\ V^{\pi'}(s) - V^\pi(s) &= \sum_{i=0}^\infty \gamma^i \sum_{s'\in\mathcal{S}} \mathbb{P}[s_{i+1}=s'|s_1=s,\pi'] (Q^\pi(s',\pi')-Q^\pi(s',\pi)) \\ &= \sum_{i=0}^\infty \gamma^i \sum_{s'\in\mathcal{S}} \mathbb{P}[s_{i+1}=s'|s_1=s,\pi'] (Q^\pi(s',\pi')-V^\pi(s')) \\ &=\sum_{i=0}^\infty \gamma^i \sum_{s'\in\mathcal{S}} \mathbb{P}[s_{i+1}=s'|s_1=s,\pi'] A^\pi(s',\pi') \end{aligned} \\