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

【基础知识】什么是 PPO(Proximal Policy Optimization,近端策略优化)

什么是 PPO(Proximal Policy Optimization,近端策略优化)

PPO(Proximal Policy Optimization,近端策略优化)是一种强化学习算法,由John Schulman等人在2017年提出。PPO属于策略梯度方法,这类方法直接对策略(即模型的行为)进行优化,试图找到使得期望回报最大化的策略。PPO旨在改进和简化以前的策略梯度算法,如TRPO(Trust Region Policy Optimization,信任域策略优化),它通过几个关键的技术创新提高了训练的稳定性和效率。

PPO的主要特点包括:

  1. 裁剪的概率比率:PPO使用一个目标函数,其中包含了一个裁剪的概率比率,这个比率是旧策略和新策略产生动作概率的比值。这个比率被限制在一个范围内,防止策略在更新时做出太大的改变。

  2. 多次更新:在一个数据批次上可以安全地进行多次更新,这对于样本效率非常重要,尤其是在高维输入和实时学习环境中。

  3. 简单实现:与TRPO相比,PPO更容易实现和调整,因为它不需要复杂的数学运算来保证策略更新的安全性。

  4. 平衡探索与利用:PPO尝试在学习稳定性和足够的探索之间取得平衡,以避免局部最优并改进策略性能。

PPO已被广泛应用于各种强化学习场景,包括游戏、机器人控制以及自然语言处理中的序列决策问题。它是目前最流行的强化学习算法之一。

具体步骤是怎样的?

PPO算法的具体步骤是基于对策略梯度方法的改进,它主要包括以下几个关键的步骤:

  1. 收集数据:通过在环境中执行当前策略(policy)来收集一组交互数据。这些数据包括状态(state)、动作(action)、奖励(reward)以及可能的下一个状态。

  2. 计算优势估计:为了评价一个动作相对于平均水平的好坏,需要计算优势函数(advantage function)。这通常是通过某种形式的时间差分(TD)估计或者广义优势估计(GAE)来完成的。

  3. 优化目标函数:PPO算法使用一个特殊设计的目标函数,这个函数涉及到概率比率 r t ( θ ) = π θ ( a t ∣ s t ) π θ old ( a t ∣ s t ) r_t(\theta) = \frac{\pi_\theta(a_t|s_t)}{\pi_{\theta_{\text{old}}}(a_t|s_t)} rt(θ)=πθold(atst)πθ(atst),其中 π θ \pi_\theta πθ表示新策略, π θ old \pi_{\theta_{\text{old}}} πθold表示旧策略。目标函数的形式通常为:
    L ( θ ) = E ^ [ min ⁡ ( r t ( θ ) A ^ t , clip ( r t ( θ ) , 1 − ϵ , 1 + ϵ ) A ^ t ) ] L(\theta) = \hat{\mathbb{E}}\left[\min(r_t(\theta)\hat{A}_t, \text{clip}(r_t(\theta), 1-\epsilon, 1+\epsilon)\hat{A}_t)\right] L(θ)=E^[min(rt(θ)A^t,clip(rt(θ),1ϵ,1+ϵ)A^t)]
    其中, A ^ t \hat{A}_t A^t是优势函数的估计, ϵ \epsilon ϵ是一个小的正数(如0.1或0.2),clip 函数限制了概率比率 r t ( θ ) r_t(\theta) rt(θ)的变化范围,防止更新步骤过大。

  4. 更新策略:使用梯度上升方法来更新策略参数 θ \theta θ,即 θ ← θ + α ∇ θ L ( θ ) \theta \leftarrow \theta + \alpha \nabla_\theta L(\theta) θθ+αθL(θ),其中 α \alpha α是学习率。

  5. 重复步骤:使用新的策略参数重复以上步骤,直到满足某些停止准则,比如策略性能不再提升或者已经达到了一定的迭代次数。

PPO算法的关键之处在于它通过限制策略更新的幅度,使得学习过程更加稳定。在每次更新时,概率比率 r t ( θ ) r_t(\theta) rt(θ)被限制在 [ 1 − ϵ , 1 + ϵ ] [1-\epsilon, 1+\epsilon] [1ϵ,1+ϵ]范围内,防止由于单个数据点导致的极端策略更新,这有助于避免策略性能的急剧下降。同时,PPO允许在每次迭代中使用相同的数据多次进行策略更新,这提高了数据效率。

概率比率 的含义是什么?

在PPO(Proximal Policy Optimization)算法中,概率比率(probability ratio)是一个关键的概念。它表示在新策略下采取某个动作的概率与在旧策略下采取同一动作的概率之比。

具体地,如果用 π θ \pi_\theta πθ表示策略,其中 θ \theta θ是策略的参数,那么对于一个特定的状态 s s s和动作 a a a,概率比率 r t ( θ ) r_t(\theta) rt(θ)定义为:

r t ( θ ) = π θ ( a ∣ s ) π θ old ( a ∣ s ) r_t(\theta) = \frac{\pi_\theta(a|s)}{\pi_{\theta_{\text{old}}}(a|s)} rt(θ)=πθold(as)πθ(as)

这里, π θ old \pi_{\theta_{\text{old}}} πθold是旧策略,在这个策略下,数据最初被采集;而 π θ \pi_\theta πθ是在参数 θ \theta θ下的新策略。概率比率反映了策略参数更新后动作选择概率的变化。

这个比率在PPO的目标函数中被用来权衡每个动作的重要性。当这个比率接近1时,说明新旧策略对这个动作的偏好程度相似;如果比率大于1,说明新策略相比于旧策略更倾向于选择这个动作;如果比率小于1,新策略则相对不太倾向于这个动作。

在PPO中,通过裁剪(clipping)这个比率来防止策略更新步骤过大,从而在稳定学习和鼓励探索之间寻求平衡。通过限制概率比率的变化范围,PPO算法避免了因策略更新太过激进而导致的训练不稳定,这有助于改进模型性能和收敛速度。

相关文章:

【基础知识】什么是 PPO(Proximal Policy Optimization,近端策略优化)

什么是 PPO(Proximal Policy Optimization,近端策略优化) PPO(Proximal Policy Optimization,近端策略优化)是一种强化学习算法,由John Schulman等人在2017年提出。PPO属于策略梯度方法&#x…...

程序员如何选择职业赛道?

程序员如何选择职业赛道? 程序员的职业赛道就像是一座迷宫,充满了各种各样的岔路口。每个岔路口都代表着不同的方向,不同的技术领域,不同的职业发展道路。 前端开发 前端开发就像迷宫中的美丽花园,它是用户与网站或应…...

[LeetBook]【学习日记】寻找和为指定数字的连续数字

题目 文件组合 待传输文件被切分成多个部分,按照原排列顺序,每部分文件编号均为一个 正整数(至少含有两个文件)。传输要求为:连续文件编号总和为接收方指定数字 target 的所有文件。请返回所有符合该要求的文件传输组…...

阿里云中小企业扶持权益

为企业提供云资源和技术服务,助力企业开启智能时代创业新范式。阿里云推出中小企业扶持权益 上云必备,助力企业长期低成本用云 一、ECS-经济型e实例、ECS u1实例活动规则 活动时间 2023年10月31日0点0分0秒至2026年3月31日23点59分59秒 活动对象 同时满…...

2核4g服务器能支持多少人访问?并发数性能测评

2核4g服务器能支持多少人访问?支持80人同时访问,阿腾云使用阿里云2核4G5M带宽服务器,可以支撑80个左右并发用户。阿腾云以Web网站应用为例,如果视频图片媒体文件存储到对象存储OSS上,网站接入CDN,还可以支持…...

Anthropic官宣Claude3:建立大模型 推理、数学、编码和视觉等方面 新基准

文章目录 1. product2. Main2.1 核心能力2.2 打榜表现 3. My thoughtsReference Claude 3 在推理、数学、编码、多语言理解和视觉方面,全面超越GPT-4在内的所有大模型,重新树立大模型基准。 1. product https://claude.ai/ 国内暂不能使用,…...

STM32 TIM编码器接口

单片机学习! 目录 文章目录 前言 一、编码器接口简介 1.1 编码器接口作用 1.2 编码器接口工作流程 1.3 编码器接口资源分布 1.4 编码器接口输入引脚 二、正交编码器 2.1 正交编码器功能 2.2 引脚作用 2.3 如何测量方向 2.4 正交信号优势 2.5 执行逻辑 三、编码器定时…...

Jupyter Notebook的安装和使用(windows环境)

一、jupyter notebook 安装 前提条件:安装python环境 安装python环境步骤: 1.下载官方python解释器 2.安装python 3.命令行窗口敲击命令pip install jupyter 4.安装jupyter之后,直接启动命令jupyter notebook,在默认浏览器中打开jupyte…...

Platformview在iOS与Android上的实现方式对比

Android中早期版本Platformview的实现基于Virtual Display。VirtualDisplay方案的原理是,先将Native View绘制到虚显,然后Flutter通过从虚显输出中获取纹理并将其与自己内部的widget树进行合成,最后作为Flutter在 Android 上更大的纹理输出的…...

使用lnmp环境部署laravel框架需要注意的点

1,上传项目文件后,需要chmod -R 777 storage授予文件权限,不然会报错file_put_contents(/): failed to open stream: Permission denied。 如果后面还是报错没有权限的话,就执行ps -ef |grep php查询php运行用户。然后执行chown …...

AI-RAN联盟在MWC24上正式启动

AI-RAN联盟在MWC24上正式启动。它的logo是这个样的: 2月26日,AI-RAN联盟(AI-RAN Alliance)在2024年世界移动通信大会(MWC 2024)上成立。创始成员包括亚马逊云科技、Arm、DeepSig、爱立信、微软、诺基亚、美…...

Reactor详解

目录 1、快速上手 介绍 2、响应式编程 2.1. 阻塞是对资源的浪费 2.2. 异步可以解决问题吗? 2.3.1. 可编排性与可读性 2.3.2. 就像装配流水线 2.3.3. 操作符(Operators) 2.3.4. subscribe() 之前什么都不会发生 2.3.5. 背压 2.3.6. …...

实践航拍小目标检测,基于YOLOv5全系列【n/s/m/l/x】参数模型开发构建无人机航拍场景下的小目标检测识别分析系统

关于无人机相关的场景在我们之前的博文也有一些比较早期的实践,感兴趣的话可以自行移步阅读即可: 《deepLabV3Plus实现无人机航拍目标分割识别系统》 《基于目标检测的无人机航拍场景下小目标检测实践》 《助力环保河道水质监测,基于yolov…...

分布式数据库中全局自增序列的实现

自增序列广泛使用于数据库的开发和设计中,用于生产唯一主键、日志流水号等唯一ID的场景。传统数据库中使用Sequence和自增列的方式实现自增序列的功能,在分布式数据库中兼容Oracle和MySQL等传统数据库语法,也是基于Sequence和自增列的方式实现…...

【论文阅读】TensoRF: Tensorial Radiance Fields 张量辐射场

发表于ECCV2022. 论文地址:https://arxiv.org/abs/2203.09517 源码地址:https://github.com/apchenstu/TensoRF 项目地址:https://apchenstu.github.io/TensoRF/ 摘要 本文提出了TensoRF,一种建模和重建辐射场的新方法。不同于Ne…...

深入了解 Android 中的 FrameLayout 布局

FrameLayout 是 Android 中常用的布局之一&#xff0c;它允许子视图堆叠在一起&#xff0c;可以在不同位置放置子视图。在这篇博客中&#xff0c;我们将详细介绍 FrameLayout 的属性及其作用。 <FrameLayout xmlns:android"http://schemas.android.com/apk/res/androi…...

高级大数据技术 实验一 scala编程

​ 高级大数据技术 实验一 scala编程 写的不是很好&#xff0c;大家多见谅&#xff01; 1. 计算水仙花数 实验目标; &#xff08;1&#xff09; 掌握scala的数组&#xff0c;列表&#xff0c;映射的定义与使用 &#xff08;2&#xff09; 掌握scala的基本编程 实验说明 …...

使用Fabric创建的canvas画布背景图片,自适应画布宽高

之前的文章写过vue2使用fabric实现简单画图demo&#xff0c;完成批阅功能&#xff1b;但是功能不完善&#xff0c;对于很大的图片就只能显示一部分出来&#xff0c;不符合我们的需求。这就需要改进&#xff0c;对我们设置的背景图进行自适应。 有问题的canvas画布背景 修改后的…...

枚举与尺取法(蓝桥杯 c++ 模板 题目 代码 注解)

目录 组合型枚举&#xff08;排列组合模板&#xff08;&#xff09;&#xff09;: 排列型枚举&#xff08;全排列&#xff09;模板&#xff1a; 题目一&#xff08;公平抽签 排列组合&#xff09;&#xff1a; ​编辑 代码&#xff1a; 题目二&#xff08;座次问题 全排…...

11、电源管理入门之Regulator驱动

目录 1. Regulator驱动是什么? 2. Regulator框架介绍 2.1 regulator consumer 2.2 regulator core 2.3 regulator driver 3. DTS配置文件及初始化 4. 运行时调用 5. Consumer API 5.1 Consumer Regulator Access (static & dynamic drivers) 5.2 Regulator Outp…...

从零构建ESP32 TWAI CAN库:驱动CyberGear微电机的实践指南

1. ESP32 TWAI CAN库开发背景 第一次接触小米CyberGear微电机时&#xff0c;我遇到了一个棘手的问题&#xff1a;市面上找不到现成的ESP32控制库。这款性能强劲的微型电机采用CAN总线通信&#xff0c;而ESP32内置的TWAI控制器&#xff08;其实就是CAN控制器&#xff09;正好可…...

vLLM-v0.11.0保姆级教程:零基础3分钟部署,让大模型推理速度提升5-10倍

vLLM-v0.11.0保姆级教程&#xff1a;零基础3分钟部署&#xff0c;让大模型推理速度提升5-10倍 1. 为什么选择vLLM-v0.11.0&#xff1f; 1.1 大模型推理的痛点 在传统的大语言模型推理过程中&#xff0c;我们常常面临以下挑战&#xff1a; 显存利用率低&#xff1a;KV Cache…...

鱼皮 AI 导航网站,突然起飞了!

大好家&#xff0c;我是程序员鱼皮。 去年 11 月&#xff0c;我带团队开发了一个 完全免费 的网站&#xff0c;也就是「鱼皮 AI 导航」。 如今 AI 真的太火了&#xff0c;一定是未来的大趋势&#xff1b;再加上很多关注我的朋友私信我&#xff0c;问怎么获取 AI 工具和教程&am…...

AudioLDM代码架构详解:从CLAP到HiFi-GAN的完整技术栈

AudioLDM代码架构详解&#xff1a;从CLAP到HiFi-GAN的完整技术栈 【免费下载链接】AudioLDM AudioLDM: Generate speech, sound effects, music and beyond, with text. 项目地址: https://gitcode.com/gh_mirrors/au/AudioLDM AudioLDM是一个基于潜在扩散模型的文本到音…...

MySQL函数及条件查询相关用法

文章目录 前言 一、函数&#xff08;可跳过&#xff09; 1.字符串函数 2.数值函数 3.日期和时间函数 4.聚合函数&#xff08;常用&#xff09; 5.控制流函数 6.加密和压缩函数 7.系统信息函数 二、条件查询&#xff08;select&#xff09; 1.筛选条件子句where与hav…...

课堂录音转文字app口碑推荐 | 实测筛选的实用工具清单

2026年我们前后测了12款市面上主流的录音转文字app&#xff0c;最终筛出4款真正适配课堂场景的实用工具&#xff0c;专门针对有课程录音转写需求的学生、考公考证党&#xff0c;不用再挨个下载试错浪费时间。大家找课堂录音转文字工具的核心需求其实都差不多&#xff1a;要么是…...

3个秘诀让黑苹果EFI配置效率提升100倍:告别拆机与代码的烦恼

3个秘诀让黑苹果EFI配置效率提升100倍&#xff1a;告别拆机与代码的烦恼 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 当你对着教程里满屏的ACPI补丁…...

哥伦比亚AI中心四项教师研究奖

机器学习 哥伦比亚人工智能技术中心宣布四项新教师研究奖 第三轮年度奖项表彰探索人工智能领域一系列挑战的创新研究。 作者&#xff1a;Staff writer 2023年7月25日 4分钟阅读 哥伦比亚工程学院与某机构宣布了哥伦比亚人工智能技术中心&#xff08;CAIT&#xff09;的四项…...

基于逻辑回归与XGBoost的冠心病风险预测模型比较研究——以UCI Heart Disease数据集为例

基于逻辑回归与XGBoost的冠心病风险预测模型比较研究——以UCI Heart Disease数据集为例 摘要 冠心病是当前全球范围内致死率最高的心血管疾病之一,早期准确识别高危人群对于降低发病率和死亡率具有重要意义。本研究以UCI Heart Disease数据集为基础,系统比较了逻辑回归与X…...

ArknightsGameResource:模块化游戏资源库与标准化数据解析技术指南

ArknightsGameResource&#xff1a;模块化游戏资源库与标准化数据解析技术指南 【免费下载链接】ArknightsGameResource 明日方舟客户端素材 项目地址: https://gitcode.com/gh_mirrors/ar/ArknightsGameResource ArknightsGameResource项目为《明日方舟》游戏开发者提供…...