强化学习——值迭代和策略迭代

本篇博客内容源于课程《强化学习的数学原理》 赵世钰老师 西湖大学,旨在记录学习强化学习的过程。

文章脉络:给定模型的情况(即probability model p ( r ∣ s , a ) p(r|s, a) p(rs,a) p ( s ′ ∣ s , a ) p(s'|s, a) p(ss,a) 对于所有的 ( s , a ) (s, a) (s,a) 都是已知的)下如何求解贝尔曼最优方程?以下将介绍三个算法求解方程,即值迭代算法、策略迭代算法、截断策略迭代算法。实际上可以发现值迭代算法和策略迭代算法都是截断策略迭代算法的两种特殊情况。

值迭代算法

如何求解贝尔曼最优方程?在上一章证明贝尔曼最优方程 v = f ( v ) = max ⁡ π ( r π + γ P π v ) v=f(v)=\max_{\pi}(r_{\pi}+\gamma P_{\pi}v) v=f(v)=maxπ(rπ+γPπv)中的 f f f是压缩映射的过程中已经给出了一个迭代算法,并且我们已经证明了这个迭代算法是可以求解贝尔曼最优方程的,其实那个迭代算法就是值迭代算法。接下来将详细介绍值迭代算法。值迭代算法分为两步:Policy update和Value update。
在这里插入图片描述
Remark:应该注意迭代过程中的 v k v_{k} vk不是state value,因为它不满足贝尔曼方程。

Policy update

在给定初始估计 v k v_{k} vk,首先求解一个最优化问题,即找到使 r π + γ P π v k r_{\pi}+\gamma P_{\pi}v_{k} rπ+γPπvk达到最大的策略 π k + 1 \pi_{k+1} πk+1更新原有策略。
在这里插入图片描述
π k + 1 \pi_{k+1} πk+1长什么样呢?实际上在每一步策略迭代中,由于 ∑ a π ( a ∣ s ) = 1 \sum_{a}\pi(a|s)=1 aπ(as)=1,自然在最优化问题当中应当选择在状态 s s s下动作值函数 q ∗ ( s , a ) q^{*}(s,a) q(s,a)最大的所对应的动作 a a a,因此这样得到的策略也被叫做贪婪策略(Greed Plicy,不给其他动作一点机会),显然这样的策略是一种确定性策略。
在这里插入图片描述

Value update

得到新策略 π k + 1 \pi_{k+1} πk+1后,根据迭代算法就能更新 v k v_{k} vk得到 v k + 1 v_{k+1} vk+1。由于 π k + 1 \pi_{k+1} πk+1是贪婪策略,所以 v k + 1 = max ⁡ a q k ( a , s ) v_{k+1}=\max_{a}q_{k}(a,s) vk+1=maxaqk(a,s)
在这里插入图片描述

Value iteration algorithm - Pseudocode

在这里插入图片描述

策略迭代算法

和值迭代算法相同,策略迭代算法同样分为两步,分别是Policy evaluation和Policy improvement。

Policy evaluation

给定一个初始策略 π k \pi_{k} πk,通过迭代算法进行Policy evaluation(Policy evaluation在求解贝尔曼方程中已经介绍过了),并且已经证明过通过迭代得到的序列 { v π k j } j \{v_{\pi_{k}}^{j}\}_{j} {vπkj}j会收敛至 v π k v_{\pi_{k}} vπk。这意味着在整个大的策略迭代算法中的第一步包含一个小迭代算法。
在这里插入图片描述

Policy improvement

第二步的Policy improvement和值迭代算法的Policy improvement一样,只不过代入的 v π k v_{\pi_{k}} vπk是策略 π k \pi_{k} πk对应的state value,而值迭代算法中代入的 v k v_{k} vk不是。
在这里插入图片描述

Policy iteration algorithm - Pseudocode

在这里插入图片描述

理解策略迭代算法需要明白的几个问题

  1. 策略迭代算法中的Policy improvement中 π k + 1 \pi_{k+1} πk+1会替换 π k \pi_{k} πk,既然是improvement,如何证明 π k + 1 \pi_{k+1} πk+1好于 π k \pi_{k} πk
  2. 如何证明策略迭代算法具有收敛性?即如何说明迭代得到的 { π k } \{\pi_{k}\} {πk}会收敛到最优策略?

如何证明 π k + 1 \pi_{k+1} πk+1好于 π k \pi_{k} πk

证明状态值函数 v π k + 1 ≥ v π k v_{\pi_{k+1}}\ge v_{\pi_{k}} vπk+1vπk即可。
在这里插入图片描述
在这里插入图片描述

如何证明策略迭代算法具有收敛性?

我们已经说明了 π k + 1 \pi_{k+1} πk+1好于 π k \pi_{k} πk,那么一值迭代下去, { π k } \{\pi_{k}\} {πk}会收敛至最优策略 π ∗ \pi^{*} π吗?我们知道通过策略迭代实际上能得到两个序列 { π k } \{\pi_{k}\} {πk} { v π k } \{v_{\pi_{k}}\} {vπk},假定最优策略对应的state value为 v ∗ v^{*} v,结合上一个问题得到的结论有 v π 0 ≤ v π 1 ≤ v π 2 ≤ . . . ≤ v π k ≤ . . . ≤ v ∗ v_{\pi_{0}}\leq v_{\pi_{1}}\leq v_{\pi_{2}}\leq...\leq v_{\pi_{k}}\leq...\leq v^{*} vπ0vπ1vπ2...vπk...v即序列 { v π k } \{v_{\pi_{k}}\} {vπk}单调递增有上界,依据单调有界定理序列 { v π k } \{v_{\pi_{k}}\} {vπk}一定是收敛的,下面证明 { v π k } \{v_{\pi_{k}}\} {vπk}会收敛至 v ∗ v^{*} v,即 { π k } \{\pi_{k}\} {πk}会收敛至最优策略 π ∗ \pi^{*} π
思路就是证明策略迭代算法比值迭代算法收敛的快,即利用归纳法证明每一步迭代都有 v ∗ ≥ v π k ≥ v k v^{*}\ge v_{\pi_{k}}\ge v_{k} vvπkvk在贝尔曼方程那一章,我们已经证明 { v k } \{v_{k}\} {vk}会收敛至 v ∗ v^{*} v,那么根据夹逼定理, { v π k } \{v_{\pi_{k}}\} {vπk}也会收敛至 v ∗ v^{*} v
在这里插入图片描述

截断策略迭代算法

先比较一下值迭代算法和策略迭代算法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
实际情况下,不可能对 { v π k ( j ) } j \{v_{\pi_{k}}^{(j)}\}_{j} {vπk(j)}j进行无穷次迭代直至收敛到 v π k v_{\pi_{k}} vπk,现实的情况是在 v π k ( j ) v_{\pi_{k}}^{(j)} vπk(j)迭代至一个提前给定的步数后就停止迭代。所以说值迭代算法和策略迭代算法都是截断策略迭代算法的两种极端情况。
截断策略迭代算法的伪代码如下:
在这里插入图片描述
那么这种截断是否会给算法的收敛性带来问题呢?答案是不会(挖一个坑)
下图可以看到截断策略迭代算法收敛速度处于值迭代算法和策略迭代算法之间。
在这里插入图片描述

参考资料

课程《强化学习的数学原理》 赵世钰教授 西湖大学

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值