当前位置: 首页 > news >正文

《强化学习数学原理》学习笔记11——阶段策略迭代算法

前期知识:
1、值迭代算法;
2、策略迭代算法。

在强化学习的策略优化领域,价值迭代(Value Iteration)和策略迭代(Policy Iteration)是两种经典算法,但它们各有特点与局限。阶段策略迭代算法作为二者的“中间态”,巧妙融合优势,在计算效率与收敛速度间取得平衡。本文将深入剖析该算法。

一、价值迭代与策略迭代回顾

(一)策略迭代(Policy Iteration)

  1. 核心步骤(从 π0\pi_0π0 开始):
    • 策略评估(Policy Evaluation, PE):给定策略 πk\pi_kπk,求解该策略下的状态价值 vπkv_{\pi_k}vπk,满足方程 vπk=rπk+γPπkvπkv_{\pi_k} = r_{\pi_k} + \gamma P_{\pi_k} v_{\pi_k}vπk=rπk+γPπkvπk
    • 策略改进(Policy Improvement, PI):基于上一步得到的状态价值 vπkv_{\pi_k}vπk,求解更优策略 πk+1=arg⁡max⁡π(rπ+γPπvπk)\pi_{k + 1} = \arg\max_{\pi} (r_{\pi} + \gamma P_{\pi} v_{\pi_k})πk+1=argmaxπ(rπ+γPπvπk)
  2. 特点:在策略评估阶段,求解状态价值 vπkv_{\pi_k}vπk 时也使用迭代求解的方式,相当于迭代算法中嵌套了一个迭代算法(理论上迭代了无限次),保证了价值的准确性,但计算成本高。

(二)价值迭代(Value Iteration)

  1. 核心步骤(从 v0v_0v0 开始):
    • 策略更新(Policy Update, PU):给定当前状态价值vkv_kvk,求解策略πk+1=arg⁡max⁡π(rπ+γPπvk)\pi_{k + 1} = \arg\max_{\pi} (r_{\pi} + \gamma P_{\pi} v_k)πk+1=argmaxπ(rπ+γPπvk)
    • 价值更新(Value Update, VU):用新策略πk+1\pi_{k + 1}πk+1计算新状态价值vk+1=rπk+1+γPπk+1vkv_{k + 1} = r_{\pi_{k + 1}} + \gamma P_{\pi_{k + 1}} v_kvk+1=rπk+1+γPπk+1vk
  2. 特点:策略更新时,状态价值 vkv_kvk 的计算在一次迭代中仅进行一步,计算高效,但因价值更新“粗糙”,收敛速度较慢。

二、阶段策略迭代的提出

上面两种算法的执行步骤如下所示:
策略迭代: π0⟶PEvπ0⟶PIπ1⟶PEvπ1⟶PIπ2⟶PEvπ2⟶PI…价值迭代: v0⟶PUπ1′⟶VUv1⟶PUπ2′⟶VUv2⟶PU…\begin{align*} \text{策略迭代: } &\pi_0 \stackrel{PE}{\longrightarrow} v_{\pi_0} \stackrel{PI}{\longrightarrow} \pi_1 \stackrel{PE}{\longrightarrow} v_{\pi_1} \stackrel{PI}{\longrightarrow} \pi_2 \stackrel{PE}{\longrightarrow} v_{\pi_2} \stackrel{PI}{\longrightarrow} \dots \\ \text{价值迭代: } &v_0 \stackrel{PU}{\longrightarrow} \pi_1' \stackrel{VU}{\longrightarrow} v_1 \stackrel{PU}{\longrightarrow} \pi_2' \stackrel{VU}{\longrightarrow} v_2 \stackrel{PU}{\longrightarrow} \dots \end{align*} 策略迭代价值迭代π0PEvπ0PIπ1PEvπ1PIπ2PEvπ2PIv0PUπ1VUv1PUπ2VUv2PU
通过对比价值迭代和策略迭代的执行步骤,发现二者流程相似,但在价值更新的深度上有差异:

步骤策略迭代算法价值迭代算法说明
1)策略π0\pi_0π0-
2)价值vπ0=rπ0+γPπ0vπ0v_{\pi_0} = r_{\pi_0} + \gamma P_{\pi_0} v_{\pi_0}vπ0=rπ0+γPπ0vπ0v0≐vπ0v_0 \doteq v_{\pi_0}v0vπ0-
3)策略π1=arg⁡max⁡π(rπ+γPπvπ0)\pi_1 = \arg\max_{\pi}(r_{\pi} + \gamma P_{\pi} v_{\pi_0})π1=argmaxπ(rπ+γPπvπ0)π1=arg⁡max⁡π(rπ+γPπv0)\pi_1 = \arg\max_{\pi}(r_{\pi} + \gamma P_{\pi} v_0)π1=argmaxπ(rπ+γPπv0)两种策略相同
4)价值vπ1=rπ1+γPπ1vπ1v_{\pi_1} = r_{\pi_1} + \gamma P_{\pi_1} v_{\pi_1}vπ1=rπ1+γPπ1vπ1v1=rπ1+γPπ1v0v_1 = r_{\pi_1} + \gamma P_{\pi_1} v_0v1=rπ1+γPπ1v0vπ1≥v1v_{\pi_1} \geq v_1vπ1v1,因vπ1≥vπ0v_{\pi_1} \geq v_{\pi_0}vπ1vπ0
3)策略π2=arg⁡max⁡π(rπ+γPπvπ0)\pi_2 = \arg\max_{\pi}(r_{\pi} + \gamma P_{\pi} v_{\pi_0})π2=argmaxπ(rπ+γPπvπ0)π2=arg⁡max⁡π(rπ+γPπv1)\pi_2 = \arg\max_{\pi}(r_{\pi} + \gamma P_{\pi} v_1)π2=argmaxπ(rπ+γPπv1)-

价值迭代在第四步仅做一步价值更新(v1=rπ1+γPπ1v0v_1 = r_{\pi_1} + \gamma P_{\pi_1} v_0v1=rπ1+γPπ1v0),而策略迭代要精确求解vπ1=rπ1+γPπ1vπ1v_{\pi_1} = r_{\pi_1} + \gamma P_{\pi_1} v_{\pi_1}vπ1=rπ1+γPπ1vπ1(理论上需无限次迭代)。若把策略迭代中策略评估的迭代次数限制为有限次,就得到了阶段策略迭代

三、阶段策略迭代算法

(一)算法流程

阶段策略迭代与策略迭代类似,只是在策略评估步骤仅执行有限次迭代(记为jtruncatej_{\text{truncate}}jtruncate)。具体步骤如下:

  1. 初始化:已知所有(s,a)(s, a)(s,a)对应的概率模型p(r∣s,a)p(r|s, a)p(rs,a)p(s′∣s,a)p(s'|s, a)p(ss,a),设定初始策略π0\pi_0π0
  2. 策略评估
    • 初始化:选择vk(0)=vk−1v_k^{(0)} = v_{k - 1}vk(0)=vk1作为初始猜测,设置最大迭代次数jtruncatej_{\text{truncate}}jtruncate
    • 迭代更新:对于每个状态s∈Ss \in \mathcal{S}sS,执行vk(j+1)(s)=∑aπk(a∣s)[∑rp(r∣s,a)r+γ∑s′p(s′∣s,a)vk(j)(s′)]v_k^{(j + 1)}(s) = \sum_a \pi_k(a|s) \left[ \sum_r p(r|s, a)r + \gamma \sum_{s'} p(s'|s, a)v_k^{(j)}(s') \right]vk(j+1)(s)=aπk(as)[rp(rs,a)r+γsp(ss,a)vk(j)(s)],直到迭代次数达到jtruncatej_{\text{truncate}}jtruncate,然后令vk=vk(jtruncate)v_k = v_k^{(j_{\text{truncate}})}vk=vk(jtruncate)
  3. 策略改进
    • 对每个状态s∈Ss \in \mathcal{S}sS和动作a∈A(s)a \in \mathcal{A}(s)aA(s),计算qk(s,a)=∑rp(r∣s,a)r+γ∑s′p(s′∣s,a)vk(s′)q_k(s, a) = \sum_r p(r|s, a)r + \gamma \sum_{s'} p(s'|s, a)v_k(s')qk(s,a)=rp(rs,a)r+γsp(ss,a)vk(s)
    • 找到使qk(s,a)q_k(s, a)qk(s,a)最大的动作a∗(s)=arg⁡max⁡aqk(s,a)a^*(s) = \arg\max_a q_k(s, a)a(s)=argmaxaqk(s,a),更新策略πk+1(a∣s)=1\pi_{k + 1}(a|s) = 1πk+1(as)=1(若a=ak∗a = a^*_ka=ak),否则πk+1(a∣s)=0\pi_{k + 1}(a|s) = 0πk+1(as)=0
  4. 收敛判断:若vkv_kvk未收敛,重复上述步骤;否则停止,得到最优状态价值和最优策略。

(二)算法特点

  1. 与价值迭代、策略迭代的关系
    • jtruncate=1j_{\text{truncate}} = 1jtruncate=1时,阶段策略迭代退化为价值迭代,因为策略评估仅做一步更新。
    • jtruncate→∞j_{\text{truncate}} \to \inftyjtruncate时,阶段策略迭代退化为策略迭代,因为策略评估要精确求解。
  2. 优势
    • 相较于策略迭代,阶段策略迭代在策略评估步骤只需有限次迭代,计算效率更高。
    • 相较于价值迭代,阶段策略迭代通过在策略评估步骤多进行几次迭代,能加快收敛速度。

四、收敛性分析

(一)价值改进性质

考虑策略评估步骤的迭代算法:vπk(j+1)=rπk+γPπkvπk(j),j=0,1,2,…v_{\pi_k}^{(j + 1)} = r_{\pi_k} + \gamma P_{\pi_k} v_{\pi_k}^{(j)}, \ j = 0,1,2,\dotsvπk(j+1)=rπk+γPπkvπk(j), j=0,1,2,。若初始猜测vπk(0)=vπk−1v_{\pi_k}^{(0)} = v_{\pi_{k - 1}}vπk(0)=vπk1,则有vπk(j+1)≥vπk(j)v_{\pi_k}^{(j + 1)} \geq v_{\pi_k}^{(j)}vπk(j+1)vπk(j)j=0,1,2,…j = 0,1,2,\dotsj=0,1,2,成立。

(二)证明(简要)

  1. 由迭代公式可得vπk(j+1)−vπk(j)=γPπk(vπk(j)−vπk(j−1))=⋯=γjPπkj(vπk(1)−vπk(0))v_{\pi_k}^{(j + 1)} - v_{\pi_k}^{(j)} = \gamma P_{\pi_k} (v_{\pi_k}^{(j)} - v_{\pi_k}^{(j - 1)}) = \dots = \gamma^j P_{\pi_k}^j (v_{\pi_k}^{(1)} - v_{\pi_k}^{(0)})vπk(j+1)vπk(j)=γPπk(vπk(j)vπk(j1))==γjPπkj(vπk(1)vπk(0))
  2. 因为vπk(0)=vπk−1v_{\pi_k}^{(0)} = v_{\pi_{k - 1}}vπk(0)=vπk1,且πk=arg⁡max⁡π(rπ+γPπvπk−1)\pi_k = \arg\max_{\pi}(r_{\pi} + \gamma P_{\pi} v_{\pi_{k - 1}})πk=argmaxπ(rπ+γPπvπk1),所以vπk(1)=rπk+γPπkvπk−1≥rπk−1+γPπk−1vπk−1=vπk−1=vπk(0)v_{\pi_k}^{(1)} = r_{\pi_k} + \gamma P_{\pi_k} v_{\pi_{k - 1}} \geq r_{\pi_{k - 1}} + \gamma P_{\pi_{k - 1}} v_{\pi_{k - 1}} = v_{\pi_{k - 1}} = v_{\pi_k}^{(0)}vπk(1)=rπk+γPπkvπk1rπk1+γPπk1vπk1=vπk1=vπk(0)
  3. 代入上式可推出vπk(j+1)≥vπk(j)v_{\pi_k}^{(j + 1)} \geq v_{\pi_k}^{(j)}vπk(j+1)vπk(j)

尽管实际中vπk−1v_{\pi_{k - 1}}vπk1不可直接获取,只有vk−1v_{k - 1}vk1可用,但该性质仍为阶段策略迭代的收敛性提供了理论支撑。

五、总结

阶段策略迭代算法是强化学习中一种灵活的策略优化方法,它处于价值迭代和策略迭代之间,既避免了策略迭代中策略评估的高计算成本,又弥补了价值迭代收敛速度慢的不足,在计算效率与收敛速度间取得了良好平衡,为解决强化学习中的策略优化问题提供了更高效的途径。三种算法的收敛速度对比示意图如下:
在这里插入图片描述

http://www.dtcms.com/a/460965.html

相关文章:

  • Qt QtConcurrent使用入门浅解
  • C语言字符串与内存操作函数完全指南
  • 【第五章:计算机视觉-项目实战之生成式算法实战:扩散模型】2.CV黑科技:生成式算法理论-(5)Stable Diffusion模型讲解
  • Cookie和Seeion在客户端和服务端的角色作用
  • Linux 远程Ubuntu服务器本地部署大模型 EmoLLM 中常见的问题及解决方案 万字详解
  • 如何建设公司网站信息灯塔网站seo
  • Java 中 `equals()`、`==` 和 `hashCode()` 的区别
  • 成像系统(十四-1:《工业级ISP流水线:ISP前端处理 - 从原始数据到可用图像》):从LED冬奥会、奥运会及春晚等大屏,到手机小屏,快来挖一挖里面都有什么
  • vue-router(vue 路由)基本使用指南(二)
  • 深入理解 Java中的 异常和泛型(指南十二)
  • 草莓植物(plant)【高精度-->array高级!!!】
  • 3D 图表、堆叠饼图为什么是灾难?
  • Nacos 全解析:从注册中心到配置管理的实战指南
  • 微信小程序开发从零基础到项目发布的全流程实战教程(四)
  • wordpress 全站静态二次开发小程序
  • linux命令--后端项目部署
  • 网页版云手机 梦幻西游手游
  • HTML5 与 HTTPS,页面能力、必要性、常见问题与实战排查
  • 网站检索功能怎么做建设宣传网站的必要性
  • 做网站维护需要懂什么网站建设洽谈问题
  • 17、Linux 文件压缩与解压
  • IDEA编译时报错OOM的解决方案
  • .NET驾驭Word之力:基于规则自动生成及排版Word文档
  • 本地web测试服务器快速域名映射工具
  • 自己搭建远程桌面服务器——私有化部署RustDesk
  • 机器人强化学习原理讲解二:关于机器人重置
  • 目标检测YOLO实战应用案例100讲-相机 ISP(三)
  • 网站无障碍建设标准we建站
  • Linux系统为普通用户设置sudo权限
  • 网络流量分析工具