本系列文章主要参考UIUC姜楠老师开设的cs542
策略迭代算法为从任意初始策略 π 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} \\ Vπ′(s)−Vπ(s)=i=0∑∞γis′∈S∑P[si+1=s′∣s1=s,π′](Qπ(s′,π′)−Qπ(s′,π))=i=0∑∞γis′∈S∑P[si+1=s′∣s1=s,π′](Qπ(s′,π′)−Vπ(s′))=i=0∑∞γis′∈S∑P[si+1=s′∣s1=s,π′]Aπ(s′,π′)
最后,由 normalized discounted state occupancy 定义有:
∑ i = 0 ∞ γ i P [ s i + 1 = s ′ ∣ s 1 = s , π ′ ] = 1 1 − γ d π ′ , s ( s ′ ) \sum_{i=0}^\infty \gamma^i \mathbb{P}[s_{i+1}=s'|s_1=s,\pi'] = \frac{1}{1-\gamma} d^{\pi',s}(s') i=0∑∞γiP[si+1=s′∣s1=s,π′]=1−γ1dπ′,s(s′)
此时即可证明引理 Performance Difference Lemma 成立。
基于该引理,令 π ′ = π k + 1 \pi'=\pi_{k+1} π′=πk+1, π = π k \pi=\pi_k π=πk,则由于 A π k ( s , π k + 1 ) A^{\pi_k}(s,\pi_{k+1}) Aπk(s,πk+1) 非负(因为 π k + 1 \pi_{k+1} πk+1 是选择 Q π k Q^{\pi_k} Qπk 最大的动作),所以 V π k + 1 ≥ V π k V^{\pi_{k+1}} \ge V^{\pi_k} Vπk+1≥Vπk 成立。同时,由于 A π k ( s , π k + 1 ) A^{\pi_k}(s,\pi_{k+1}) Aπk(s,πk+1) 必定会在某些状态下严格大于 0,否则则表示 π k = π ∗ \pi_k=\pi^* πk=π∗。因此即可证明策略改进定理。
下面再从算子角度再次证明策略改进定理。首先,可知有 Q π k = T π k Q π k Q^{\pi_k}=\mathcal{T}^{\pi_k}Q^{\pi_k} Qπk=TπkQπk, T π Q ≤ T ∗ Q \mathcal{T}^\pi Q \le \mathcal{T}^* Q TπQ≤T∗Q,以及 T ∗ Q π k = T π k + 1 Q π k \mathcal{T}^* Q^{\pi_k} = \mathcal{T}^{\pi_{k+1}}Q^{\pi_k} T∗Qπk=Tπk+1Qπk(由于基于当前动作值函数选择值最大的动作,即为下一个要更新的策略)。将上述结果拼起来,有:
Q π k = T π k Q π k ≤ T ∗ Q π k = T π k + 1 Q π k Q^{\pi_k} = \mathcal{T}^{\pi_k} Q^{\pi_k} \le \mathcal{T}^* Q^{\pi_k} = \mathcal{T}^{\pi_{k+1}}Q^{\pi_k} Qπk=TπkQπk≤T∗Qπk=Tπk+1Qπk
重复上述不等式,有:
Q π k ≤ T π k + 1 Q π k ≤ T π k + 1 ( T π k + 1 Q π k ) ≤ ⋯ ≤ ( T π k + 1 ) ∞ Q π k = Q π k + 1 Q^{\pi_k} \le \mathcal{T}^{\pi_{k+1}} Q^{\pi_k} \le \mathcal{T}^{\pi_{k+1}} (\mathcal{T}^{\pi_{k+1}} Q^{\pi_k}) \le \cdots \le (\mathcal{T}^{\pi_{k+1}})^\infty Q^{\pi_k} = Q^{\pi_{k+1}} Qπk≤Tπk+1Qπk≤Tπk+1(Tπk+1Qπk)≤⋯≤(Tπk+1)∞Qπk=Qπk+1
至此,由于每次迭代策略会有所改进,并且策略空间大小确定,则表示策略迭代算法是收敛的。
接下来介绍关于策略迭代收敛速度的定理,以证明策略迭代算法是指数级收敛的,即: ∥ Q ∗ − Q π k + 1 ∥ ∞ ≤ γ ∥ Q ∗ − Q π k ∥ ∞ \parallel Q^* - Q^{\pi_{k+1}} \parallel_\infty \le \gamma \parallel Q^* - Q^{\pi_k} \parallel_\infty ∥Q∗−Qπk+1∥∞≤γ∥Q∗−Qπk∥∞。
证明过程如下。首先证明两个性质:
首先对于第一个性质,由于贝尔曼最优算子是选择 Q π k Q^{\pi_k} Qπk 最大的动作来更新,即 π k + 1 ( s ) = arg max a Q π k ( s , a ) \pi_{k+1}(s)=\arg\max_aQ^{\pi_k}(s,a) πk+1(s)=argmaxaQπk(s,a),所以更新后的动作值函数必定比使用任意其他策略 π \pi π 选择其他动作来更新得到的动作值函数要大。即:
T ∗ Q π k = r + γ E s ′ [ max a ′ Q π k ( s ′ , a ′ ) ] ≥ r + γ E s ′ [ Q π k ( s ′ , π k ( s ′ ) ) ] = T π Q π k \mathcal{T}^*Q^{\pi_k} = r + \gamma \mathbb{E}_{s'}[\max_{a'}Q^{\pi_k}(s',a')] \ge r + \gamma \mathbb{E}_{s'}[Q^{\pi_k}(s',\pi_k(s'))] = \mathcal{T}^\pi Q^{\pi_k} T∗Qπk=r+γEs′[a′maxQπk(s′,a′)]≥r+γEs′[Qπk(s′,πk(s′))]=TπQπk
接着是第二个性质。大致上,不等式左边表示对当前动作值函数进行一次算子操作,而不等式右边表示对当前动作值函数进行多次算子操作,并且结果已经收敛到新策略的动作值函数。从这个角度理解,显然性质二成立。更严谨地,不等式左边由于是只使用算子计算一次,所以计算轨迹的动作值时表示第二步(因为第一步就是要求的动作)用策略 π k + 1 \pi_{k+1} πk+1 选择动作获得的奖励,加上后续使用策略 π k \pi_k πk 选择动作时轨迹的值,因此左式可表示为:
( T ∗ Q π k ) ( s , a ) = E [ ∑ t = 1 ∞ γ t − 1 r t ∣ s 1 = s , a 1 = a , a 2 ∼ π k + 1 , a 3 : ∞ ∼ π k ] (\mathcal{T}^*Q^{\pi_k})(s,a) = \mathbb{E}[\sum_{t=1}^\infty \gamma^{t-1} r_t | s_1=s,a_1=a, a_2\sim\pi_{k+1}, a_{3:\infty} \sim \pi_k] (T∗Qπk)(s,a)=E[t=1∑∞γt−1rt∣s1=s,a1=a,a2∼πk+1,a3:∞∼πk]
而右式则表示从第二步动作开始都按照策略 π k + 1 \pi_{k+1} πk+1 选择动作,即:
Q π k + 1 ( s , a ) = E [ ∑ t = 1 ∞ γ t − 1 r t ∣ s 1 = s , a 1 = a , a 2 ∼ π k + 1 , a 3 : ∞ ∼ π k + 1 ] Q^{\pi_{k+1}}(s,a) = \mathbb{E}[\sum_{t=1}^\infty \gamma^{t-1}r_t|s_1=s,a_1=a,a_2\sim\pi_{k+1},a_{3:\infty}\sim\pi_{k+1}] Qπk+1(s,a)=E[t=1∑∞γt−1rt∣s1=s,a1=a,a2∼πk+1,a3:∞∼πk+1]
由策略改进定理可知 V π k + 1 ≥ V π k V^{\pi_{k+1}} \ge V^{\pi_k} Vπk+1≥Vπk 恒成立,因此右式较大。在证明两条性质后,有:
∥ Q ∗ − Q π k + 1 ∥ ∞ = ∥ ( Q ∗ − T ∗ Q π k ) + ( T ∗ Q π k − Q π k + 1 ) ∥ ∞ ≤ ∥ Q ∗ − T ∗ Q π k ∥ ∞ ≤ ∥ Q ∗ − T π ∗ Q π k ∥ ∞ ≤ ∥ T π ∗ Q ∗ − T π ∗ Q π k ∥ ∞ ≤ γ ∥ Q ∗ − Q π k ∥ ∞ \begin{aligned} \\ \parallel Q^* - Q^{\pi_{k+1}} \parallel_\infty &= \parallel (Q^* - \mathcal{T}^* Q^{\pi_k}) + (\mathcal{T}^* Q^{\pi_k} - Q^{\pi_{k+1}}) \parallel_\infty \\ &\le \parallel Q^* - \mathcal{T}^* Q^{\pi_k} \parallel_\infty \\ &\le \parallel Q^* - \mathcal{T}^{\pi^*} Q^{\pi_k} \parallel_\infty \\ &\le \parallel \mathcal{T}^{\pi^*} Q^* - \mathcal{T}^{\pi^*} Q^{\pi_k} \parallel_\infty \\ &\le \gamma \parallel Q^* - Q^{\pi_k} \parallel_\infty \end{aligned} \\ ∥Q∗−Qπk+1∥∞=∥(Q∗−T∗Qπk)+(T∗Qπk−Qπk+1)∥∞≤∥Q∗−T∗Qπk∥∞≤∥Q∗−Tπ∗Qπk∥∞≤∥Tπ∗Q∗−Tπ∗Qπk∥∞≤γ∥Q∗−Qπk∥∞
其中,由性质二可知上式中的第二项小于等于零。而由性质一,可知对任意策略 π \pi π 都有 T ∗ Q π k ≥ T π Q π k \mathcal{T}^*Q^{\pi_k}\ge\mathcal{T}^\pi Q^{\pi_k} T∗Qπk≥TπQπk,因此有 T ∗ Q π k ≥ T π ∗ Q π k \mathcal{T}^*Q^{\pi_k}\ge\mathcal{T}^{\pi^*} Q^{\pi_k} T∗Qπk≥Tπ∗Qπk。最后,再由 Q ∗ = T π ∗ Q ∗ Q^*=\mathcal{T}^{\pi^*} Q^* Q∗=Tπ∗Q∗,以及贝尔曼最优算子的 γ \gamma γ-压缩性质,则可证明每次迭代后动作值函数与最优动作值函数的距离都是呈指数级减小。
不同于策略迭代算法需要不断重复策略评估和策略迭代两个步骤,值迭代算法只需要迭代计算一系列 Q Q Q 函数来不断逼近 Q ∗ Q^* Q∗。令 Q 0 Q^0 Q0 为初始动作值函数(通常将其设为 0 ∣ S × A ∣ \bold{0}_{|\mathcal{S}\times\mathcal{A}|} 0∣S×A∣)。值迭代算法为从 Q 0 Q^0 Q0 开始,不断重复下述步骤:
Q h = T ∗ Q h − 1 Q^h = \mathcal{T}^* Q^{h-1} Qh=T∗Qh−1
这里先介绍一个引理: ∥ V ∗ − V π f ∥ ∞ ≤ 2 ∥ f − Q ∗ ∥ ∞ 1 − γ \parallel V^* - V^{\pi_f} \parallel_\infty \le \dfrac{2 \parallel f - Q^* \parallel_\infty}{1 - \gamma} ∥V∗−Vπf∥∞≤1−γ2∥f−Q∗∥∞。其中 f f f 表示迭代过程中的动作值函数,该引理表明最优值函数和迭代过程中的(或次优策略的)值函数之间的 bound。证明过程如下:
V ∗ ( s ) − V π f ( s ) = Q ∗ ( s , π ∗ ( s ) ) − Q ∗ ( s , π f ( s ) ) + Q ∗ ( s , π f ( s ) ) − Q π f ( s , π f ( s ) ) ≤ Q ∗ ( s , π ∗ ( s ) ) − f ( s , π ∗ ( s ) ) + f ( s , π f ( s ) ) − Q ∗ ( s , π f ( s ) ) + γ E s ′ ∼ P ( s , π f ( s ) ) [ V ∗ ( s ′ ) − V π f ( s ′ ) ] ≤ 2 ∥ f − Q ∗ ∥ ∞ + γ ∥ V ∗ − V π f ∥ ∞ \begin{aligned} \\ V^*(s) - V^{\pi_f}(s) &= Q^*(s,\pi^*(s)) - Q^*(s,\pi_f(s)) + Q^*(s,\pi_f(s)) - Q^{\pi_f}(s,\pi_f(s)) \\ &\le Q^*(s,\pi^*(s)) - f(s,\pi^*(s)) + f(s,\pi_f(s)) - Q^*(s,\pi_f(s)) \\ &\ \ \ \ + \gamma \mathbb{E}_{s' \sim P(s,\pi_f(s))}[V^*(s') - V^{\pi_f}(s')] \\ &\le 2 \parallel f - Q^* \parallel_\infty + \gamma \parallel V^* - V^{\pi_f} \parallel_\infty \end{aligned} \\ V∗(s)−Vπf(s)=Q∗(s,π∗(s))−Q∗(s,πf(s))+Q∗(s,πf(s))−Qπf(s,πf(s))≤Q∗(s,π∗(s))−f(s,π∗(s))+f(s,πf(s))−Q∗(s,πf(s)) +γEs′∼P(s,πf(s))[V∗(s′)−Vπf(s′)]≤2∥f−Q∗∥∞+γ∥V∗−Vπf∥∞
其中,第一行为在中间增加和减去相同的两项 Q ∗ ( s , π f ( s ) ) Q^*(s,\pi_f(s)) Q∗(s,πf(s))。第二行中,由于 f ( s , π ∗ ( s ) ) f(s,\pi^*(s)) f(s,π∗(s)) 表示在当前动作值函数下按最优策略选择动作的值,而 f ( s , π f ( s ) ) f(s,\pi_f(s)) f(s,πf(s)) 表示在当前动作值函数下按当前策略选择动作的值,因为在当前动作值函数下按当前策略选择动作的值必定不小于按其他策略选择,所以有 f ( s , π f ( s ) ) ≥ f ( s , π ∗ ( s ) ) f(s,\pi_f(s))\ge f(s,\pi^*(s)) f(s,πf(s))≥f(s,π∗(s)),加上 − f ( s , π ∗ ( s ) ) + f ( s , π f ( s ) ) -f(s,\pi^*(s))+f(s,\pi_f(s)) −f(s,π∗(s))+f(s,πf(s)) 后式子放大了。第三行中,由于第一行的最后两项中的 Q ∗ ( s , π f ( s ) ) Q^*(s,\pi_f(s)) Q∗(s,πf(s)) 表示在 Q ∗ Q^* Q∗ 下按照策略 π f \pi_f πf 选择一个动作,而 Q π f ( s , π f ( s ) ) Q^{\pi_f}(s,\pi_f(s)) Qπf(s,πf(s)) 表示在 Q π f Q^{\pi_f} Qπf 下按照策略 π f \pi_f πf 选择一个动作,因为两者在当前状态 s s s 下都会选择同一个动作,得到相同的奖励,因此用贝尔曼方程展开后两项相减得 γ E s ′ ∼ P ( s , π f ( s ) ) [ V ∗ ( s ′ ) − V π f ( s ′ ) ] \gamma \mathbb{E}_{s' \sim P(s,\pi_f(s))}[V^*(s') - V^{\pi_f}(s')] γEs′∼P(s,πf(s))[V∗(s′)−Vπf(s′)]。最后一行中的第一项是由第二行转化而来,将第二行中的 f − Q ∗ f-Q^* f−Q∗ 看作是一个函数,因此第二行即可看作是将 π f ( s ) \pi_f(s) πf(s) 作为动作输入该函数得到的值,减去将 π ∗ ( s ) \pi^*(s) π∗(s) 作为动作输入该函数的值,而该函数上两点之间的差值可放大为函数上最大值的两倍,即 2 ∥ f − Q ∗ ∥ ∞ 2 \parallel f - Q^* \parallel_\infty 2∥f−Q∗∥∞。而最后一行中的第二项,可知最大值要比期望值要大,所以可得 γ ∥ V ∗ − V π f ∥ ∞ \gamma \parallel V^* - V^{\pi_f} \parallel_\infty γ∥V∗−Vπf∥∞。至此,即可证明该引理。
基于该引理,下面证明值迭代算法的收敛性,具体证明在迭代足够多次数,如 H H H 次后, ∥ Q H − Q ∗ ∥ ∞ \parallel Q^H-Q^* \parallel_\infty ∥QH−Q∗∥∞ 之间的 bound。这里从两个角度来证明。
首先从不动点的角度来证明。因为值迭代算法可以抽象成不断对动作值函数使用贝尔曼最优算子进行运算,因此值迭代算法可以看作是求解贝尔曼最优算子的不动点,即 Q ∗ = T ∗ Q ∗ Q^*=\mathcal{T}^*Q^* Q∗=T∗Q∗。此前已经证明了贝尔曼最优算子在无穷范数下是 γ \gamma γ-压缩的。因此可知随着迭代次数 h h h 增加,在无穷范数下 Q h Q^h Qh 指数级接近 Q ∗ Q^* Q∗,即:
∥ Q h − Q ∗ ∥ ∞ = ∥ T ∗ Q h − 1 − T ∗ Q ∗ ∥ ∞ ≤ γ ∥ Q h − 1 − Q ∗ ∥ ∞ \parallel Q^h - Q^* \parallel_\infty = \parallel \mathcal{T}^* Q^{h-1} - \mathcal{T}^* Q^* \parallel_\infty \le \gamma \parallel Q^{h-1} - Q^* \parallel_\infty ∥Qh−Q∗∥∞=∥T∗Qh−1−T∗Q∗∥∞≤γ∥Qh−1−Q∗∥∞
可以轨迹的积累折扣奖励具有上界 R max 1 − γ \dfrac{R_{\text{max}}}{1-\gamma} 1−γRmax,所以对于 Q 0 = 0 ∣ S × A ∣ Q^0=\bold{0}_{|\mathcal{S}\times\mathcal{A}|} Q0=0∣S×A∣,有 ∥ Q 0 − Q ∗ ∥ ∞ ≤ R max 1 − γ \parallel Q^0 - Q^* \parallel_\infty \le \dfrac{R_{\text{max}}}{1-\gamma} ∥Q0−Q∗∥∞≤1−γRmax。在经过 H H H 次迭代后,则有:
∥ Q H − Q ∗ ∥ ∞ ≤ γ H R max 1 − γ \parallel Q^H - Q^* \parallel_\infty \le \gamma^H \dfrac{R_{\text{max}}}{1-\gamma} ∥QH−Q∗∥∞≤γH1−γRmax
可知当迭代次数满足 H ≥ log R max ϵ ( 1 − γ ) 1 − γ H \ge \dfrac{\log\dfrac{R_{\text{max}}}{\epsilon(1-\gamma)}}{1-\gamma} H≥1−γlogϵ(1−γ)Rmax 时,则可保证动作值函数是 ϵ \epsilon ϵ-接近 Q ∗ Q^* Q∗ 的,证明如下:
γ H R max 1 − γ = ( 1 − ( 1 − γ ) ) 1 1 − γ ⋅ H ( 1 − γ ) R max 1 − γ ≤ ( 1 e ) log R max ϵ ( 1 − γ ) R max 1 − γ = ϵ \gamma^H\frac{R_{\text{max}}}{1-\gamma} = (1 - (1-\gamma))^{\frac{1}{1-\gamma} \cdot H (1-\gamma)}\frac{R_{\text{max}}}{1-\gamma} \le (\frac{1}{e})^{\log \frac{R_{\text{max}}}{\epsilon(1-\gamma)}}\frac{R_{\text{max}}}{1-\gamma} = \epsilon γH1−γRmax=(1−(1−γ))1−γ1⋅H(1−γ)1−γRmax≤(e1)logϵ(1−γ)Rmax1−γRmax=ϵ
其中,迭代次数 H H H 满足的条件也被称为 effective horizon。这个 bound 通常被记为 H = O ( 1 1 − γ ) H=O(\frac{1}{1-\gamma}) H=O(1−γ1),并且将 O ( 1 1 − γ ) O(\frac{1}{1-\gamma}) O(1−γ1) 称为 horizon。Horizon 不仅可以用来表示迭代次数的 bound,还可以用来表示计算奖励的范围,即往前看多少步的奖励,因为每迭代一次,就相当于往前多看一步。
下面从另一个角度证明值迭代算法的收敛性。为了简洁起见,这里只证明不等式 ∥ Q H − Q ∗ ∥ ∞ ≤ γ H R max 1 − γ \parallel Q^H - Q^* \parallel_\infty \le \gamma^H \dfrac{R_{\text{max}}}{1-\gamma} ∥QH−Q∗∥∞≤γH1−γRmax。首先区分两个概念: π ∗ \pi^* π∗ 表示考虑无限步长远(即 infinite horizon)的情况下得到的最优策略,即考虑 ∑ t = 1 ∞ γ t − 1 r t \sum_{t=1}^\infty\gamma^{t-1}r_t ∑t=1∞γt−1rt;而 π ∗ , H \pi^{*,H} π∗,H 表示考虑有限步长远(即 finite horizon)的情况下得到的最优策略,即考虑 ∑ t = 1 H γ t − 1 r t \sum_{t=1}^H\gamma^{t-1}r_t ∑t=1Hγt−1rt。此时,由于只考虑非负有界奖励,所以可知从 H + 1 H+1 H+1 步之后的奖励也都为非负的,所以有 Q ∗ , H ≤ Q ∗ Q^{*,H} \le Q^* Q∗,H≤Q∗。同时,对于任意策略 π \pi π,可知有 Q π , H ≤ Q ∗ , H Q^{\pi,H} \le Q^{*,H} Qπ,H≤Q∗,H,特别地,有 Q π ∗ , H ≤ Q ∗ , H Q^{\pi^*,H} \le Q^{*,H} Qπ∗,H≤Q∗,H。表示在只考虑 H H H 步长的最优值函数下,使用考虑无限步长时得到的策略获得的值会低一些。综合这两点性质,有:
0 ≤ Q ∗ − Q ∗ , H ≤ Q ∗ − Q π ∗ , H = Q π ∗ − Q π ∗ , H 0 \le Q^* - Q^{*,H} \le Q^* - Q^{\pi^*,H} = Q^{\pi^*} - Q^{\pi^*,H} 0≤Q∗−Q∗,H≤Q∗−Qπ∗,H=Qπ∗−Qπ∗,H
此时,有:
Q ∗ ( s , a ) − Q ∗ , H ( s , a ) ≤ Q π ∗ ( s , a ) − Q π ∗ , H ( s , a ) = E [ ( ∑ t = 1 ∞ γ t − 1 r t ) − ( ∑ t = 1 H γ t − 1 r t ) ∣ s 1 = s , a 1 = a , π ∗ ] = E [ ( ∑ t = H + 1 ∞ γ t − 1 r t ) ∣ s 1 = s , a 1 = a , π ∗ ] ≤ γ H ⋅ E [ ∑ t = 1 ∞ γ t − 1 R max ] = γ H R max 1 − γ \begin{aligned} \\ Q^*(s,a) - Q^{*,H}(s,a) &\le Q^{\pi^*}(s,a) - Q^{\pi^*,H}(s,a) \\ &= \mathbb{E} \left[ (\sum_{t=1}^\infty \gamma^{t-1}r_t) - (\sum_{t=1}^H \gamma^{t-1}r_t) | s_1=s, a_1=a, \pi^* \right] \\ &= \mathbb{E} \left[ (\sum_{t=H+1}^\infty \gamma^{t-1}r_t) | s_1=s, a_1=a, \pi^* \right] \\ &\le \gamma^H \cdot \mathbb{E} \left[ \sum_{t=1}^\infty \gamma^{t-1} R_{\text{max}} \right] \\ &= \frac{\gamma^H R_{\text{max}}}{1-\gamma} \end{aligned} \\ Q∗(s,a)−Q∗,H(s,a)≤Qπ∗(s,a)−Qπ∗,H(s,a)=E[(t=1∑∞γt−1rt)−(t=1∑Hγt−1rt)∣s1=s,a1=a,π∗]=E[(t=H+1∑∞γt−1rt)∣s1=s,a1=a,π∗]≤γH⋅E[t=1∑∞γt−1Rmax]=1−γγHRmax
至此,同样证明了值迭代算法的收敛性。
最后再介绍将规划问题转换成线性规划问题,然后就可以使用现成的线性规划求解器来进行规划了。
线性规划的朴素形式为:
min V ∈ R S d 0 ⊤ V s.t. V ≥ T ∗ V \min_{V \in \mathbb{R}^\mathcal{S}} d^\top_0V \\ \text{s.t. } V \ge \mathcal{T}^* V V∈RSmind0⊤Vs.t. V≥T∗V
其中, d 0 ⊤ ∈ R S d^\top_0 \in \mathbb{R}^\mathcal{S} d0⊤∈RS 表示初始状态分布,有 d 0 ( s ) ≥ 0 d_0(s)\ge0 d0(s)≥0, ∑ s d 0 ( s ) = 1 \sum_sd_0(s)=1 ∑sd0(s)=1。要理解上式,首先推导问题约束的性质。首先对于贝尔曼最优算子,在任意 V ≥ V ′ V \ge V' V≥V′ 下,都有 T ∗ V ≥ T ∗ V ′ \mathcal{T}^* V \ge \mathcal{T}^* V' T∗V≥T∗V′(虽然因为贝尔曼算子只是选择动作最大的值来更新,但是 V V V 的所有状态的值都大于 V ′ V' V′)。因此,若有 V ≥ T ∗ V V \ge \mathcal{T}^* V V≥T∗V,则 T ∗ V ≥ T ∗ ( T ∗ V ) = ( T ∗ ) 2 V \mathcal{T}^* V \ge \mathcal{T}^* (\mathcal{T}^* V) = (\mathcal{T}^*)^2V T∗V≥T∗(T∗V)=(T∗)2V。显然迭代下去就有 V ≥ ( T ∗ ) ∞ V = V ∗ V \ge (\mathcal{T}^*)^\infty V = V^* V≥(T∗)∞V=V∗。所以,当问题解满足约束时,其中最小的解就是最优值函数,即要求 min 而非 max。另外,可知贝尔曼最优算子并非线性操作,即对于任意 s ∈ S s \in \mathcal{S} s∈S:
V ( s ) ≥ max a ∈ A ( R ( s , a ) + γ E s ′ ∼ P ( s , a ) [ V ( s ′ ) ] ) V(s) \ge \max_{a \in \mathcal{A}}(R(s,a) + \gamma \mathbb{E}_{s' \sim P(s,a)}[V(s')]) V(s)≥a∈Amax(R(s,a)+γEs′∼P(s,a)[V(s′)])
是非线性的。因此,需要先改成线性约束,加入对每个动作的约束,即:
V ( s ) ≥ R ( s , a ) + γ E s ′ ∼ P ( s , a ) [ V ( s ′ ) ] , ∀ a ∈ A V(s) \ge R(s,a) + \gamma \mathbb{E}_{s' \sim P(s,a)}[V(s')],\ \forall a \in \mathcal{A} V(s)≥R(s,a)+γEs′∼P(s,a)[V(s′)], ∀a∈A
此时,约束的数量就从 ∣ S ∣ |\mathcal{S}| ∣S∣ 变为 ∣ S × A ∣ |\mathcal{S} \times \mathcal{A}| ∣S×A∣。
下面再给出该线性规划问题的对偶形式:
max d ∈ R S × A , d ≥ 0 d ⊤ R s.t. [ ∑ a ∈ A d ( s , a ) ] s ∈ S = γ P ⊤ d + ( 1 − γ ) d 0 \max_{d \in \mathbb{R}^{\mathcal{S} \times \mathcal{A}}, d \ge 0} d^\top R \\ \text{s.t. } [\sum_{a \in \mathcal{A}} d(s,a)]_{s \in \mathcal{S}} = \gamma P^\top d + (1 - \gamma) d_0 d∈RS×A,d≥0maxd⊤Rs.t. [a∈A∑d(s,a)]s∈S=γP⊤d+(1−γ)d0
上一个线性规划问题中求解的是最优值函数,以此来获得最优策略。而在这个表述中,要求解的是 discounted state-action occupancy,并且其起始状态分布为 d 0 d_0 d0。跟第一种线性规划问题表述一样, d ⊤ R d^\top R d⊤R 内积也表示折扣积累奖励,而这里采用的是最大化这个折扣积累奖励。对于约束的理解,首先这里用 d = d π d=d^\pi d=dπ 来表示 state-action occupancy,并用 d ~ π \tilde{d}^\pi d~π 来表示 state occupancy,有 π : [ ∑ a ∈ A d π ( s , a ) ] s ∈ S = d ~ π \pi: [\sum_{a\in\mathcal{A}}d^\pi(s,a)]_{s\in\mathcal{S}}=\tilde{d}^\pi π:[∑a∈Adπ(s,a)]s∈S=d~π。对于约束中的右式, P ∈ R ∣ S × A ∣ × ∣ S ∣ P\in\mathbb{R}^{|\mathcal{S}\times\mathcal{A}|\times|\mathcal{S}|} P∈R∣S×A∣×∣S∣ 为状态转移矩阵,对于任意状态-动作对分布 q ∈ Δ ( S × A ) q\in\Delta(\mathcal{S}\times\mathcal{A}) q∈Δ(S×A), P ⊤ q P^\top q P⊤q 表示:
s ′ ∼ P ⊤ q ⇔ ( s , a ) ∼ q , s ′ ∼ P ( ⋅ ∣ s , a ) s' \sim P^\top q \Leftrightarrow (s,a) \sim q, s' \sim P(\cdot|s,a) s′∼P⊤q⇔(s,a)∼q,s′∼P(⋅∣s,a)
即将 q q q 的状态-动作分布经过状态转移矩阵往前走一步。因此,有 P ⊤ d t π = d ~ t + 1 π P^\top d^\pi_t = \tilde{d}_{t+1}^\pi P⊤dtπ=d~t+1π。所以线性规划问题的解需要满足一下约束:
γ P ⊤ d = γ ( 1 − γ ) P ⊤ ∑ t = 1 ∞ γ t − 1 d t π = γ ( 1 − γ ) ∑ t = 1 ∞ γ t − 1 P ⊤ d t π = γ ( 1 − γ ) ∑ t = 1 ∞ γ t − 1 d ~ t + 1 π = ( 1 − γ ) ∑ t = 2 ∞ γ t − 1 d ~ t π = ( 1 − γ ) ∑ t = 1 ∞ γ t − 1 d ~ t π − ( 1 − γ ) d 0 = d ~ π − ( 1 − γ ) d 0 \begin{aligned} \\ \gamma P^\top d &= \gamma (1 - \gamma) P^\top \sum_{t=1}^\infty \gamma^{t-1} d^\pi_t \\ &= \gamma (1 - \gamma) \sum_{t=1}^\infty \gamma^{t-1} P^\top d^\pi_t \\ &= \gamma (1 - \gamma) \sum_{t=1}^\infty \gamma^{t-1} \tilde{d}^\pi_{t+1} \\ &= (1 - \gamma) \sum_{t=2}^\infty \gamma^{t-1} \tilde{d}^\pi_t \\ &= (1 - \gamma) \sum_{t=1}^\infty \gamma^{t-1} \tilde{d}^\pi_t - (1-\gamma) d_0 \\ &= \tilde{d}^\pi - (1-\gamma) d_0 \end{aligned} \\ γP⊤d=γ(1−γ)P⊤t=1∑∞γt−1dtπ=γ(1−γ)t=1∑∞γt−1P⊤dtπ=γ(1−γ)t=1∑∞γt−1d~t+1π=(1−γ)t=2∑∞γt−1d~tπ=(1−γ)t=1∑∞γt−1d~tπ−(1−γ)d0=d~π−(1−γ)d0
最后,在求解到 d d d 后,最优策略为:
π ( a ∣ s ) = d ( s , a ) ∑ a ′ ∈ A d ( s , a ′ ) \pi(a|s) = \frac{d(s,a)}{\sum_{a'\in\mathcal{A}}d(s,a')} π(a∣s)=∑a′∈Ad(s,a′)d(s,a)