强化学习PPO:Proximal Policy Optimization Algorithms解读

news2024/12/27 11:17:29

PPO算法是一类Policy Gradient强化学习方法,经典的Policy Gradient通过一个参数化决策模型\pi(a|s,\theta )来根据状态s确定动作,其参数更新是通过下式进行的:

\theta_{t+1} = \theta_{t} + \alpha \partial_{\theta_{t}} J(\theta_t)

J(\theta_t)用于衡量决策模型的优劣目标,决策模型的优化目标为寻找最优决策,使得该决策下整体价值最大。

\text{max}_{\pi}\ J(\theta) = E_{s,a\sim \pi}[\pi(a|s,\theta)Q_{\pi}(s,a)]

 因为最优决策\pi是未知的,一种简单思路是直接当前参数模型\pi_\theta进行寻优。称为Vanilla Policy Gradient。

1. Vanilla Policy Gradient

Vanilla Policy Gradient定义优化目标为:

\text{max}_{\theta }\ J(\theta) \\= E_{s,a\sim {\pi_{\theta }}}[\pi(a|s,\theta)A(s,a)]\\=\sum_\tau \sum_{t=0}^T \sum_a\pi(a|s_t,\theta)A(s_t,a)

  • \tau表示一轮episode,t表示episode中的某个时刻,T表示一轮episode的终态。
  • A(s_t,a_t)=Q(s_t,a_t)-v(s_t|w)=G(s_t,a_t)-v(s_t|w)称为Advantages estimates,其在原来预估Q(s_t,a_t)基础上减去了平均状态价值估计v(s_t|w),这么做好处是扭正不同状态价值间偏差,可以加快模型收敛,具体可以参考这篇。

梯度计算式子:

\partial J(\theta) \\ =\sum_\tau \sum_{t=0}^T \sum_a\partial_{\theta}\pi(a|s_t,\theta)A(s_t,a) \\=\sum_\tau \sum_{t=0}^T \sum_a \pi(a|s_t,\theta) A(s_t,a) \frac{\partial_{\theta}\pi(a|s_t,\theta)}{\pi(a|s_t,\theta)} \\\doteq \sum_\tau \sum_{t=0}^T A(s_t,a_t) \frac{\partial_{\theta}\pi(a_t|s_t,\theta)}{\pi(a_t|s_t,\theta)} \\=\sum_\tau \sum_{t=0}^T \sum_a \pi(a|s_t,\theta) A(s_t,a) \frac{\partial_{\theta}\pi(a|s_t,\theta)}{\pi(a|s_t,\theta)} \\\doteq \sum_\tau \sum_{t=0}^T A(s_t,a_t) \partial_{\theta}\text{In}(\pi(a_t|s_t,\theta))

参数更新式子:

\theta_{t+1}=\theta + \alpha\partial_{\theta} J(\theta_t)

此外平均状态价值估计v(s_t|w)通过VE损失进行优化,其同Policy Gradient更新按照AC的框架进行两步迭代更新。

2. Trust Region Policy Optimization

前面我们所提到的Vanilla Policy Gradient算法是将训练分为多个epoch,每个epoch会根据当前决策模型采样多个episode组合成一个batch,并在该epoch中针对于该batch进行多轮训练。

由于该轮epoch的训练数据是根据上轮epoch的模型进行采样的,此时就可能出现更新的决策模型同采样决策模型不一致,这个不一致同off-policy所带来的问题是类似的,可能会导致模型训练有偏差。

虽然Vanilla Policy Gradient算法是on-policy的,但是由于对batch进行多轮训练,在实际上造成了target policy和behavior policy不一致的问题。因此Trust Region Policy Optimization(TRPO)根据off-policy在原来优化目标上添加了重要性采样。

J(\theta) = E_{s,a\sim {\pi_{\theta^k }}}[\frac{\pi(a|s,\theta)}{\pi(a|s,\theta^k)}A^{\theta^k}(s,a)]

上式中的\theta^k表示上轮模型参数,同时为了避免target policy \pi(a|s,\theta )和behavior policy\pi(a|s,\theta^k )变化太大,导致优化目标方差增大,因此还需要通过KL散度约束\pi(a|s,\theta )相比于\pi(a|s,\theta^k )变动不大,其约束了\pi(a|s,\theta )的变化区域,故称为Trust Region

D_{KL}(\pi(a|s,\theta )||\pi(a|s,\theta^k )) \leq \delta

直接根据上面目标以及约束很难进行优化,因此TRPO做了一定式子简化:

\text{max}_{\theta}\ J(\theta) \approx E_{s,a\sim {\pi_{\theta^k }}}[\pi(a|s,\theta)A^{\theta^k}(s,a)][\theta - \theta^k]=g[\theta - \theta^k] \\ s.t. \ D_{KL} \approx \frac{1}{2}[\theta - \theta^k]^T H[\theta - \theta^k] \leq \delta

同时其给出决策参数的更新式子,式子中的\alpha^j用于控制KL散度约束,此处采用了Backtracking line search技术,其通过设置多个\alpha^j因子,并在训练中不断从中选择一个因子使得约束满足同时梯度更新最大。

\theta_{t+1}=\theta_{t} + \alpha^j \sqrt{\frac{2\delta }{g^T_tH^{-1}g_t}}H^{-1}g

3. Proximal Policy Optimization 

TRPO有一个很大问题,在于其KL约束是通过惩罚项加到优化目标上去的,因此惩罚项的权重参数是一个超参数,其设置影响整体训练效果,虽然TRPO采用了Backtracking line search技术,可以自适应的去选择超参数,但是对于整体训练效果仍是有损的。

因此PPO认为KL约束既然是为了约束\pi(a|s,\theta )相比于\pi(a|s,\theta^k )变动不大,而优化目标已经包含了这两项,为什么不把这个约束添加到优化目标中。通过截断来约束r(\theta |\theta_k)变动在一定范围内,从而到达同KL散度约束类似的效果。

r(\theta |\theta_k)=\frac{\pi(a|s,\theta)}{\pi(a|s,\theta_k)}

J(\theta) = E_{s,a\sim {\pi_{\theta^k }}}(min[r(\theta|\theta_k)A^{\theta^k}(s,a), clip(r(\theta|\theta_k),1-\epsilon, 1+\epsilon)A^{\theta^k}(s,a)])

论文中也通过实验表明了PPO算法采样这种clip方式其效果比固定KL约束参数、自适应KL约束参数的方法都要好。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/649082.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

电力辅助服务

电力辅助服务 1、电力辅助服务是什么2、电力辅助服务发展历程3、《电力辅助管理办法》主要修订内容4、电力辅助服务品种5、电力辅助服务市场规模6、国外电力辅助服务市场 1、电力辅助服务是什么 《电力辅助服务管理办法》中定义电力辅助服务是由火电、水电、核电、风电、光伏发…

Elastic 推出 Elastic AI 助手

作者:Mike Nichols Elastic 推出了 Elastic AI Assistant,这是一款由 ESRE 提供支持的开放式、生成式 AI 助手,旨在使网络安全民主化并支持各种技能水平的用户。 最近发布的 Elasticsearch Relevance Engine™ (ESRE™) 提供了用于创建高度相…

Spring Boot进阶(49):SpringBoot之集成WebSocket实现前后端通信 | 超级详细,建议收藏

1. 前言 在上一期,我对WebSocket进行了基础及理论知识普及学习,而这一期,我重点是要带着你们进行实战教学,手把手教学如何在springboot架构基础上集成WebSocket及实现前后端通讯功能。具有很好的学习价值,希望大家在学…

Python Selenium基本用法

Selenium 作为一款 Web 自动化测试框架,提供了诸多操作浏览器的方法,本节对其中的常用方法做详细介绍。 定位节点 Selenium 提供了 8 种定位单个节点的方法,如下所示: 定位节点方法 方法 说明 find_element_by_id() 通过 id 属性…

MacOS 高颜值的 数据库客户端工具 Tableplus 简单逆向分析

0x0 navicat 给公司发律师函了, 所以不能白嫖了.. 后来一直在找替代品, 但均感觉略有不足. dbeaver : java 开发的, 依赖 jdk , 而且BUG较多,也不流畅 mysqlworkbench : 官方出品, 功能强大. 但是用着不带劲 Sequel Ace : 开源免费, 但是只支持mysql,功能简单 最后试了下 Tab…

【手撕MyBatis源码】插件体系

文章目录 概述插件的使用插件代理机制自动分页插件拦截目标分页插件原理 概述 Mybatis作为一个应用广泛的优秀的ORM开源框架,这个框架具有强大的灵活性,在四大组件(Executor、StatementHandler、ParameterHandler、ResultSetHandler)处提供了简单易用的插…

​如何高效开发一个OA办公系统​?

如何才能高效开发一个OA办公系统?这篇教你使用零代码工具从0-1搭建一个OA办公系统,无需代码基础,只要你懂业务,只需3步即可搭建! 先来看看效果—— 系统模板>> https://www.jiandaoyun.com/ 整个系统包含物资管…

动态规划经典题型:最小路径和、所有路径

题目1:最小路径和 给定一个包含非负整数的 *m* x *n* 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 示例: 输入:grid [[1,3,1],[1…

计算机网络之链路层和局域网

六.链路层和局域网 6.1 链路层概述 6.1.1 链路层可能提供的服务 成帧、链路接入、可靠交付、差错检测和纠正 6.1.2 链路层在何处实现 下图是一个典型的主机体系结构,链路层的主体部分是在网络适配器实现的,部分链路层是在运行于主机CPU上的软件实现的…

融云 CTO 岑裕受邀出席亚马逊云科技「出海日」论坛

(点击购买《社交泛娱乐出海作战地图》) 6 月 9 日,亚马逊云科技主办的“潮向新世界”出海日活动在深圳举行,融云作为领军出海服务企业受邀出席。关注【融云全球互联网通信云】了解更多 在现场展位,融云的一站式全生态…

如何查看电脑是否安装了mysql

可以通过以下几种方式查看电脑是否安装了MySQL: 1. 在系统服务中查找MySQL服务 打开控制面板 → 管理工具 → 服务,在服务列表中查找“MySQL”服务。如果存在MySQL服务并且启动类型为“自动”或“手动”,则表示已安装MySQL。 2. 查找MySQL安装目录 一般MySQL的安装目录为:- Wi…

【Nexus】Linux安装Nexus

目录 一、安装包获取方式1、Nexus3.49版本的安装包2、Nexus3.53版本的安装包 二、下载安装包的两种方式(建议使用第一种安装方式)1、直接把下载好的安装包上传到服务器中2、通过wget安装Nexus压缩包①、可以使用以下命令进行安装Nexus的最新版本②、也可…

信号与系统小论文

信号与系统小论文 信号调制与解调模拟乘法器AD734信号调制信号解调 DFT和FFT 的运算复杂度比较DFT运算FFT运算复杂度比较 小论文有两个部分组成,第一个是用电路仿真实现信号的调制与解调,第二个是通过python将DFT和FFT运算的次数可视化。 信号调制与解调…

Mysql替换字段中的指定文本

前言 最近有个需求,不同的环境的ip和端口都不一样,所以就要修改表里面字段的值 但是手动修改比较麻烦而且很慢,所以在网上搜了下相关的方法。经过手动实践确实可行,下面分享给大家 准备fake数据 为了方便演示,准备…

pytorch实现图像分类器

pytorch实现图像分类器 一、定义LeNet网络模型1,卷积 Conv2d2,池化 MaxPool2d3,Tensor的展平:view()4,全连接 Linear5,代码:定义 LeNet 网络模型 二、训练并保存网络参数1,数据预处理…

mybatis-plus在实际开发中的应用

文章目录 前言一、实体类的注解二、Req查询条件三、Controller接口四、Service接口五、Service接口实现类六、Mapper接口七、枚举的使用总结 前言 最近的项目是使用mybatis-plus作为持久层框架,前面也记录过mybatis-plus的基本使用,此次记录一下本次项目…

行业报告|2022年智能制造人才发展报告:自动化、PLC、机器人等控制执行类研发岗需求增长快

原创 | 文 BFT机器人 近年来,我国智能制造应用规模和发展水平大幅跃升,制造业智能化发展成效明显,有力支撑工业经济的高质量发展。与此同时,我国在2022年首次出现人口负增长,该趋势下我国发展制造业的人口红利正逐步降…

BurpSuite全平台通用扩展

前言 昨天分享的关于springboot3集成ChatGPT实现AI聊天、生成图片,被CSDN以违规拒发了,找人工客服最后一肚子气,从上大学开始入住CSDN一直偏爱,确实不想放弃,似乎现在他已经不再是一个纯技术交流分享平台了&#xff0…

LaWGPT:你的私人法律顾问!

LaWGPT:你的私人法律顾问! LaWGPT 是一系列基于中文法律知识的开源大语言模型。 该系列模型在通用中文基座模型(如 Chinese-LLaMA、ChatGLM 等)的基础上扩充法律领域专有词表、大规模中文法律语料预训练,增强了大模型在…

工商业储能解读

工商业储能解读 0、前言1、2022-2023年工商业储能相关利好政策1.1 2022年1月4日1.2 2022年1月18日1.3 2022年2月10日1.4 2022年3月21日1.5 2022年3月22日1.6 2022年3月29日1.7 2022年4月2日1.8 2022年4月13日1.9 2022年4月25日1.10 2022年5月25日1.11 2022年5月30日1.12 2022年…