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

深度强化学习 | 详解从信赖域策略优化(TRPO)到近端策略优化(PPO)算法原理

目录

  • 0 专栏介绍
  • 1 信赖域策略优化
  • 2 近端策略优化

0 专栏介绍

本专栏以贝尔曼最优方程等数学原理为根基,结合PyTorch框架逐层拆解DRL的核心算法(如DQN、PPO、SAC)逻辑。针对机器人运动规划场景,深入探讨如何将DRL与路径规划、动态避障等任务结合,包含仿真环境搭建、状态空间设计、奖励函数工程化调优等技术细节,旨在帮助读者掌握深度强化学习技术在机器人运动规划中的实战应用

🚀详情:《运动规划实战精讲:深度强化学习篇》


1 信赖域策略优化

在深度强化学习 | 图文详细推导深度确定性策略梯度DDPG算法中,我们介绍了​​演员-评论家(Actor-Critic, AC)框架​​,其中

  • Actor网络表征策略,通常用神经网络表示为πθ(a∣s)\pi_\theta(a|s)πθ(as)(随机策略,输出动作概率分布)或 μθ(s)\mu_\theta(s)μθ(s)(确定性策略,直接输出动作),其参数θ\thetaθ决定了智能体在不同状态下倾向于选择哪些动作;
  • Critic网络表征策略优劣,通常用神经网络表示为Vϕ(s)V_\phi(s)Vϕ(s)(状态值函数,估计状态sss的长期价值)或Qϕ(s,a)Q_\phi(s,a)Qϕ(s,a)(状态-动作值函数,估计状态 sss 下执行动作 aaa 的长期价值),其参数 ϕ\phiϕ 量化了当前策略下这个状态/动作的回报;

Actor通过与环境交互积累经验,Critic则基于这些经验更新对价值的估计,反过来为Actor的策略优化提供方向。

在标准Actor-Critic框架中,采样的行动策略和待改进的目标策略相同,属于在线策略方法。为了增强采样数据的利用率,信赖域策略优化(Trust Region Policy Optimization, TRPO)通过重要性采样技术使Actor-Critic框架具有离线策略方法的特点。形式化地,设目标策略为πθ\pi _{\boldsymbol{\theta }}πθ,行为策略为πθ′\pi _{\boldsymbol{\theta }'}πθ,则策略梯度

∇θVπθ(s)∝E(s,a)πθ[Aπθ(s,a)∇θln⁡πθ(s,a)]=∑s,a(πθ(s,a)Aπθ(s,a)∇θln⁡πθ(s,a))=∑s,a(πθ′(s,a)πθ(s,a)πθ′(s,a)Aπθ(s,a)∇θln⁡πθ(s,a))=E(s,a)πθ′[πθ(s,a)πθ′(s,a)Aπθ′(s,a)∇θln⁡πθ(s,a)]\begin{aligned}\nabla _{\boldsymbol{\theta }}V^{\pi _{\boldsymbol{\theta }}}\left( \boldsymbol{s} \right)& \propto \mathbb{E} _{\left( \boldsymbol{s},\boldsymbol{a} \right) ~\pi _{\boldsymbol{\theta }}}\left[ A^{\pi _{\boldsymbol{\theta }}}\left( \boldsymbol{s},\boldsymbol{a} \right) \nabla _{\boldsymbol{\theta }}\ln \pi _{\boldsymbol{\theta }}\left( \boldsymbol{s},\boldsymbol{a} \right) \right] \\&=\sum_{\boldsymbol{s},\boldsymbol{a}}{\left( \pi _{\boldsymbol{\theta }}\left( \boldsymbol{s},\boldsymbol{a} \right) A^{\pi _{\boldsymbol{\theta }}}\left( \boldsymbol{s},\boldsymbol{a} \right) \nabla _{\boldsymbol{\theta }}\ln \pi _{\boldsymbol{\theta }}\left( \boldsymbol{s},\boldsymbol{a} \right) \right)}\\&=\sum_{\boldsymbol{s},\boldsymbol{a}}{\left( \pi _{\boldsymbol{\theta }'}\left( \boldsymbol{s},\boldsymbol{a} \right) \frac{\pi _{\boldsymbol{\theta }}\left( \boldsymbol{s},\boldsymbol{a} \right)}{\pi _{\boldsymbol{\theta }'}\left( \boldsymbol{s},\boldsymbol{a} \right)}A^{\pi _{\boldsymbol{\theta }}}\left( \boldsymbol{s},\boldsymbol{a} \right) \nabla _{\boldsymbol{\theta }}\ln \pi _{\boldsymbol{\theta }}\left( \boldsymbol{s},\boldsymbol{a} \right) \right)}\\&=\mathbb{E} _{\left( \boldsymbol{s},\boldsymbol{a} \right) ~\pi _{\boldsymbol{\theta }'}}\left[ \frac{\pi _{\boldsymbol{\theta }}\left( \boldsymbol{s},\boldsymbol{a} \right)}{\pi _{\boldsymbol{\theta }'}\left( \boldsymbol{s},\boldsymbol{a} \right)}A^{\pi _{\boldsymbol{\theta }'}}\left( \boldsymbol{s},\boldsymbol{a} \right) \nabla _{\boldsymbol{\theta }}\ln \pi _{\boldsymbol{\theta }}\left( \boldsymbol{s},\boldsymbol{a} \right) \right]\end{aligned} θVπθ(s)E(s,a) πθ[Aπθ(s,a)θlnπθ(s,a)]=s,a(πθ(s,a)Aπθ(s,a)θlnπθ(s,a))=s,a(πθ(s,a)πθ(s,a)πθ(s,a)Aπθ(s,a)θlnπθ(s,a))=E(s,a) πθ[πθ(s,a)πθ(s,a)Aπθ(s,a)θlnπθ(s,a)]

在重要性采样下,设计由行为策略诱导的代理目标函数(surrogate objective function)

J(θ)=E(s,a)πθ′[πθ(s,a)πθ′(s,a)Aπθ′(s,a)]J\left( \boldsymbol{\theta } \right) =\mathbb{E} _{\left( \boldsymbol{s},\boldsymbol{a} \right) ~\pi _{\boldsymbol{\theta }'}}\left[ \frac{\pi _{\boldsymbol{\theta }}\left( \boldsymbol{s},\boldsymbol{a} \right)}{\pi _{\boldsymbol{\theta }'}\left( \boldsymbol{s},\boldsymbol{a} \right)}A^{\pi _{\boldsymbol{\theta }'}}\left( \boldsymbol{s},\boldsymbol{a} \right) \right] J(θ)=E(s,a) πθ[πθ(s,a)πθ(s,a)Aπθ(s,a)]

基于代理目标函数,采用相邻两次迭代的策略参数θk\boldsymbol{\theta }_kθkθk+1\boldsymbol{\theta }_{k+1}θk+1构造有约束优化问题

θk+1=argmax⁡θk+1E(s,a)πθk[πθk+1(s,a)πθk(s,a)Aπθk(s,a)]s.t.πθk+1≈πθk\boldsymbol{\theta }_{k+1}=\underset{\boldsymbol{\theta }_{k+1}}{\mathrm{arg}\max}\mathbb{E} _{\left( \boldsymbol{s},\boldsymbol{a} \right) ~\pi _{\boldsymbol{\theta }_k}}\left[ \frac{\pi _{\boldsymbol{\theta }_{k+1}}\left( \boldsymbol{s},\boldsymbol{a} \right)}{\pi _{\boldsymbol{\theta }_k}\left( \boldsymbol{s},\boldsymbol{a} \right)}A^{\pi _{\boldsymbol{\theta }_k}}\left( \boldsymbol{s},\boldsymbol{a} \right) \right] \,\, \mathrm{s}.\mathrm{t}. \pi _{\boldsymbol{\theta }_{k+1}}\approx \pi _{\boldsymbol{\theta }_k}θk+1=θk+1argmaxE(s,a) πθk[πθk(s,a)πθk+1(s,a)Aπθk(s,a)]s.t.πθk+1πθk

即在旧策略πθk\pi _{\boldsymbol{\theta }_k}πθk及其采样样本估计的优势值AπθkA^{\pi _{\boldsymbol{\theta }_k}}Aπθk下,最大化新策略πθk+1\pi _{\boldsymbol{\theta }_{k+1}}πθk+1带来的价值提升

约束条件限制了策略更新幅度太大,防止重要性采样中辅助分布不能近似表示目标分布,导致方差过大训练不稳定。在TRPO算法中,用KL散度衡量相邻迭代步策略的近似性

DKL(πθk∣∣πθk+1)=∫sπθkπθk(s,a)log⁡(πθk(s,a)πθk+1(s,a))dsD_{KL}\left( \pi _{\boldsymbol{\theta }_k}||\pi _{\boldsymbol{\theta }_{k+1}} \right) =\int_{\boldsymbol{s}~\pi _{\boldsymbol{\theta }_k}}{\pi _{\boldsymbol{\theta }_k}\left( \boldsymbol{s},\boldsymbol{a} \right) \log \left( \frac{\pi _{\boldsymbol{\theta }_k}\left( \boldsymbol{s},\boldsymbol{a} \right)}{\pi _{\boldsymbol{\theta }_{k+1}}\left( \boldsymbol{s},\boldsymbol{a} \right)} \right)}\mathrm{d}\boldsymbol{s}DKL(πθk∣∣πθk+1)=s πθkπθk(s,a)log(πθk+1(s,a)πθk(s,a))ds

结合信赖域方法设置信赖域半径约束KL散度,即

θk+1=argmax⁡θk+1E(s,a)πθk[πθk+1(s,a)πθk(s,a)Aπθk(s,a)]s.t.DKL(πθk∣∣πθk+1)<Δ\boldsymbol{\theta }_{k+1}=\underset{\boldsymbol{\theta }_{k+1}}{\mathrm{arg}\max}\mathbb{E} _{\left( \boldsymbol{s},\boldsymbol{a} \right) ~\pi _{\boldsymbol{\theta }_k}}\left[ \frac{\pi _{\boldsymbol{\theta }_{k+1}}\left( \boldsymbol{s},\boldsymbol{a} \right)}{\pi _{\boldsymbol{\theta }_k}\left( \boldsymbol{s},\boldsymbol{a} \right)}A^{\pi _{\boldsymbol{\theta }_k}}\left( \boldsymbol{s},\boldsymbol{a} \right) \right] \,\, \mathrm{s}.\mathrm{t}. D_{KL}\left( \pi _{\boldsymbol{\theta }_k}||\pi _{\boldsymbol{\theta }_{k+1}} \right) <\Delta θk+1=θk+1argmaxE(s,a) πθk[πθk(s,a)πθk+1(s,a)Aπθk(s,a)]s.t.DKL(πθk∣∣πθk+1)<Δ

在实际应用中,为了简化上述优化问题的求解,对目标函数进行一阶泰勒展开

J(θk+1)=J(θk)+gT(θk+1−θk)J\left( \boldsymbol{\theta }_{k+1} \right) =J\left( \boldsymbol{\theta }_k \right) +\boldsymbol{g}^T\left( \boldsymbol{\theta }_{k+1}-\boldsymbol{\theta }_k \right) J(θk+1)=J(θk)+gT(θk+1θk)

根据KKT条件的定常方程式和互补松弛条件可得

θk+1=θk+αk2ΔxTHxx\boldsymbol{\theta }_{k+1}=\boldsymbol{\theta }_k+\alpha _k\sqrt{\frac{2\Delta}{\boldsymbol{x}^T\boldsymbol{Hx}}}\boldsymbol{x}θk+1=θk+αkxTHxx

在这里插入图片描述

2 近端策略优化

TRPO的求解是带KL散度约束的优化问题,涉及泰勒展开线性化、KKT条件、共轭梯度算法、线搜索法、广义优势估计等,使TRPO的计算复杂度较高。近端策略优化(Proximal Policy Optimization, PPO)的核心思想与TRPO一致,但更轻量有效,成为OpenAI推荐的首选深度强化学习算法之一。

对于有约束优化问题

θk+1=argmax⁡θk+1E(s,a)πθk[πθk+1(s,a)πθk(s,a)Aπθk(s,a)]s.t.πθk+1≈πθk\boldsymbol{\theta }_{k+1}=\underset{\boldsymbol{\theta }_{k+1}}{\mathrm{arg}\max}\mathbb{E} _{\left( \boldsymbol{s},\boldsymbol{a} \right) ~\pi _{\boldsymbol{\theta }_k}}\left[ \frac{\pi _{\boldsymbol{\theta }_{k+1}}\left( \boldsymbol{s},\boldsymbol{a} \right)}{\pi _{\boldsymbol{\theta }_k}\left( \boldsymbol{s},\boldsymbol{a} \right)}A^{\pi _{\boldsymbol{\theta }_k}}\left( \boldsymbol{s},\boldsymbol{a} \right) \right] \,\, \mathrm{s}.\mathrm{t}. \pi _{\boldsymbol{\theta }_{k+1}}\approx \pi _{\boldsymbol{\theta }_k}θk+1=θk+1argmaxE(s,a) πθk[πθk(s,a)πθk+1(s,a)Aπθk(s,a)]s.t.πθk+1πθk

PPO设计以下的目标函数进行简化,称为PPO截断(PPO-Clip)

θk+1=argmax⁡θk+1J(θk+1)\boldsymbol{\theta }_{k+1}=\mathrm{arg}\max _{\boldsymbol{\theta }_{k+1}}J\left( \boldsymbol{\theta }_{k+1} \right) θk+1=argθk+1maxJ(θk+1)

其中

J(θk+1)=E(s,a)πθk[min⁡(πθk+1(s,a)πθk(s,a)Aπθk(s,a),clip(πθk+1(s,a)πθk(s,a),1−ϵ,1+ϵ)Aπθk(s,a))]J\left( \boldsymbol{\theta }_{k+1} \right) =\mathbb{E} _{\left( \boldsymbol{s},\boldsymbol{a} \right) ~\pi _{\boldsymbol{\theta }_k}}\left[ \min \left( \frac{\pi _{\boldsymbol{\theta }_{k+1}}\left( \boldsymbol{s},\boldsymbol{a} \right)}{\pi _{\boldsymbol{\theta }_k}\left( \boldsymbol{s},\boldsymbol{a} \right)}A^{\pi _{\boldsymbol{\theta }_k}}\left( \boldsymbol{s},\boldsymbol{a} \right) , \mathrm{clip}\left( \frac{\pi _{\boldsymbol{\theta }_{k+1}}\left( \boldsymbol{s},\boldsymbol{a} \right)}{\pi _{\boldsymbol{\theta }_k}\left( \boldsymbol{s},\boldsymbol{a} \right)},1-\epsilon ,1+\epsilon \right) A^{\pi _{\boldsymbol{\theta }_k}}\left( \boldsymbol{s},\boldsymbol{a} \right) \right) \right] J(θk+1)=E(s,a) πθk[min(πθk(s,a)πθk+1(s,a)Aπθk(s,a),clip(πθk(s,a)πθk+1(s,a),1ϵ,1+ϵ)Aπθk(s,a))]

截断函数

clip(x,l,r)\mathrm{clip}\left( x,l,r \right)clip(x,l,r)

xxx限制在[l,r][l, r][l,r]区间内。如图所示

  • Aπθk>0A^{\pi _{\boldsymbol{\theta }_k}}>0Aπθk>0说明该动作的价值高于平均,最大化J(θk+1)J\left( \boldsymbol{\theta }_{k+1} \right)J(θk+1)需要增大πθk+1/πθk{{\pi _{\boldsymbol{\theta }_{k+1}}}/{\pi _{\boldsymbol{\theta }_k}}}πθk+1/πθk,但不会让其超过1+ϵ1+\epsilon1+ϵ
  • Aπθk<0A^{\pi _{\boldsymbol{\theta }_k}}<0Aπθk<0则最大化J(θk+1)J\left( \boldsymbol{\theta }_{k+1} \right)J(θk+1)需要减小πθk+1/πθk{{\pi _{\boldsymbol{\theta }_{k+1}}}/{\pi _{\boldsymbol{\theta }_k}}}πθk+1/πθk,但不会让其超过1−ϵ1-\epsilon1ϵ

在这里插入图片描述

如下所示为PPO算法流程。

在这里插入图片描述


🔥 更多精彩专栏

  • 《ROS从入门到精通》
  • 《Pytorch深度学习实战》
  • 《机器学习强基计划》
  • 《运动规划实战精讲》

👇源码获取 · 技术交流 · 抱团学习 · 咨询分享 请联系👇
http://www.dtcms.com/a/535742.html

相关文章:

  • 在类中定义装饰器:Python高级元编程技术详解
  • [C++][正则表达式]常用C++正则表达式用法
  • 基于大数据的短视频数据分析系统 Spark哔哩哔哩视频数据分析可视化系统 Hadoop大数据技术 情感分析 舆情分析 爬虫 推荐系统 协同过滤推荐算法 ✅
  • 参考抖音推荐算法的功能:不同用户规模的推荐技术框架
  • 深入理解C语言scanf函数:从基础到高级用法完全指南
  • 检测相邻递增子数组1 2(LeetCode 3349 3350)
  • 《算法闯关指南:优选算法--前缀和》--25.【模板】前缀和,26.【模板】二维前缀和
  • 快速搭建网站2020缅甸新闻最新消息
  • 搜索网站做推广全网推广平台推荐
  • 仓颉编程(16)泛型类型
  • 「小有可为」AI 开源公益创新挑战赛
  • 《 Linux 点滴漫谈: 四 》文件权限与用户管理
  • 评估虚拟机资源规划
  • 深入理解 SO_REUSEADDR:从“Address already in use”到服务器瞬间重启
  • 机器人中的多模态——RoboBrain
  • MySQL 8.0.x 全平台安装指南:Windows、CentOS、Ubuntu 详细步骤与问题解决
  • YOLO!!
  • 电子电气架构 --- 汽车座舱行业背景综述
  • C++(23):通过print和printIn进行输出
  • 获取网站访客qq号成都网站建设优点
  • 做一个同城便民信息网站怎么做公司给别人做的网站违法吗
  • 微算法科技(NASDAQ MLGO)探索自适应差分隐私机制(如AdaDP),根据任务复杂度动态调整噪声
  • 入选大模型一体机产业图谱,云从科技以全栈能力推动AI落地新范式
  • 十六、STM32的TIM(七)(PWM直流电机)
  • TCP与UDP深度理解
  • 万界星空科技MES系统功能介绍及实施指南
  • 中国软件出海,为何优选亚马逊云科技Marketplace?
  • StarRocks Community Monthly Newsletter (Sep)
  • HarmonyOS 微服务与 OpenHarmony 开发:构建模块化与开源生态应用
  • autojs----2025淘宝淘金币跳一跳自动化