传统策略梯度方法的弊端与PPO的改进:稳定性与样本效率的提升

为什么传统策略梯度方法(如REINFORCE算法)在训练过程中存在不稳定性和样本效率低下的问题

1. 传统策略梯度方法的基本公式

传统策略梯度方法的目标是最大化累积奖励的期望值。具体来说,优化目标可以表示为:
max ⁡ θ J ( θ ) = E π [ ∑ t = 0 ∞ γ t R t + 1 ] \max_\theta J(\theta) = \mathbb{E}_\pi\left[\sum_{t=0}^{\infty} \gamma^t R_{t+1}\right] θmaxJ(θ)=Eπ[t=0γtRt+1]
其中:

  • J ( θ ) J(\theta) J(θ) 是策略性能,即累积奖励的期望值。
  • π θ ( a t ∣ s t ) \pi_\theta(a_t|s_t) πθ(atst) 是在策略 π \pi π 下,状态 s t s_t st 下选择动作 a t a_t at 的概率。
  • R t + 1 R_{t+1} Rt+1 是在时间步 t + 1 t+1 t+1 获得的奖励。
  • γ \gamma γ 是折扣因子,用于衡量未来奖励的当前价值。

为了实现这个目标,策略梯度定理提供了策略性能的梯度的解析表达式:
∇ θ J ( θ ) = E π [ ∑ t = 0 ∞ γ t ∇ θ log ⁡ π θ ( a t ∣ s t ) ⋅ G t ] \nabla_\theta J(\theta) = \mathbb{E}_\pi\left[\sum_{t=0}^{\infty} \gamma^t \nabla_\theta \log \pi_\theta(a_t|s_t) \cdot G_t\right] θJ(θ)=Eπ[t=0γtθlogπθ(atst)Gt]
其中:

  • G t G_t Gt 是从时间步 t t t 开始的累积奖励:

G t = ∑ k = t ∞ γ k − t R k + 1 G_t = \sum_{k=t}^{\infty} \gamma^{k-t} R_{k+1} Gt=k=tγktRk+1

2. 不稳定性问题

(1)梯度估计的高方差

传统策略梯度方法(如REINFORCE算法)直接使用采样轨迹来估计策略梯度。具体更新规则为:
θ ← θ + α ∑ t = 0 T ∇ θ log ⁡ π θ ( a t ∣ s t ) ⋅ G t \theta \leftarrow \theta + \alpha \sum_{t=0}^{T} \nabla_\theta \log \pi_\theta(a_t|s_t) \cdot G_t θθ+αt=0Tθlogπθ(atst)Gt
其中:

  • α \alpha α 是学习率。
  • T T T 是轨迹的长度。

问题分析:

  • 高方差:累积奖励 G t G_t Gt 是一个随机变量,其值取决于具体的采样轨迹。由于环境的随机性和策略的随机性,不同轨迹的累积奖励 G t G_t Gt 可能差异很大,导致梯度估计的方差很高。高方差的梯度估计使得训练过程不稳定,容易出现剧烈波动。
  • 更新过大:由于梯度估计的方差很高,每次更新可能会导致策略参数 θ \theta θ 发生较大变化。这种过大的更新可能会使策略偏离最优策略,导致训练过程不稳定。

3. 样本效率低下的问题

(1)单次更新

传统策略梯度方法通常在每个数据批次上只进行一次更新。具体来说,每采样一条轨迹,就计算一次梯度并更新策略参数。这种单次更新的方式导致样本的利用效率较低。

问题分析:

  • 样本利用率低:每个数据批次只使用一次,更新后就丢弃。这意味着每个样本只对策略更新贡献一次,没有充分利用样本的信息。
  • 数据冗余:在复杂环境中,采样到的轨迹可能包含大量重复或相似的状态和动作,这些冗余数据没有被充分利用,导致样本效率低下。

4. PPO如何解决这些问题

PPO(Proximal Policy Optimization)通过以下两种主要机制解决了传统策略梯度方法的不稳定性和样本效率低下的问题:

(1)剪切机制(Clipping Mechanism)

PPO引入了一个剪切的目标函数,限制新策略与旧策略之间的概率比率。具体来说,PPO的目标函数为:
L C L I P ( θ ) = E t [ min ⁡ ( r t ( θ ) A t , clip ( r t ( θ ) , 1 − ϵ , 1 + ϵ ) A t ) ] L^{CLIP}(\theta) = \mathbb{E}_t\left[\min\left(r_t(\theta) A_t, \text{clip}(r_t(\theta), 1 - \epsilon, 1 + \epsilon) A_t\right)\right] LCLIP(θ)=Et[min(rt(θ)At,clip(rt(θ),1ϵ,1+ϵ)At)]
其中:

  • r t ( θ ) = π θ ( a t ∣ s t ) π θ o l d ( a t ∣ s t ) r_t(\theta) = \frac{\pi_\theta(a_t|s_t)}{\pi_{\theta_{old}}(a_t|s_t)} rt(θ)=πθold(atst)πθ(atst) 是新策略与旧策略的概率比率。
  • A t A_t At 是优势函数,表示在状态 s t s_t st 下采取动作 a t a_t at 的相对优势。
  • ϵ \epsilon ϵ 是一个超参数,通常取值为0.1或0.2。

解决不稳定性的机制:

  • 限制更新幅度:通过剪切操作 clip ( r t ( θ ) , 1 − ϵ , 1 + ϵ ) \text{clip}(r_t(\theta), 1 - \epsilon, 1 + \epsilon) clip(rt(θ),1ϵ,1+ϵ),PPO限制了新策略与旧策略之间的概率比率,防止策略更新过大。这使得每次更新更加平滑,减少了训练过程中的波动。
  • 降低方差:剪切机制通过限制概率比率的范围,减少了梯度估计的方差,使得训练过程更加稳定。

(2)多次更新

PPO允许在一个数据批次上进行多次更新。具体来说,PPO在采样一批数据后,可以多次使用这些数据进行更新,直到策略收敛。

解决样本效率低下的机制:

  • 提高样本利用率:通过多次更新,每个样本可以多次贡献于策略的优化,充分利用了样本的信息。
  • 减少冗余:多次更新可以更好地利用数据中的信息,减少冗余数据对训练的影响,提高样本的利用效率。

5. 总结

传统策略梯度方法(如REINFORCE算法)在训练过程中存在不稳定性和样本效率低下的问题,主要原因是:

  1. 高方差的梯度估计:累积奖励 G t G_t Gt 的随机性导致梯度估计的方差很高,使得训练过程不稳定。
  2. 单次更新:每个数据批次只使用一次,更新后就丢弃,导致样本的利用效率较低。

PPO通过引入剪切机制和多次更新,解决了这些问题:

  1. 剪切机制:限制新策略与旧策略之间的概率比率,防止策略更新过大,降低梯度估计的方差,提高训练的稳定性。
  2. 多次更新:在一个数据批次上进行多次更新,充分利用样本信息,提高样本的利用效率。

这些改进使得PPO在训练过程中更加稳定,样本效率更高,成为强化学习领域中一种常用的基准算法。

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

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

相关文章

Qwt入门

Qwt(Qt Widgets for Technical Applications)是一个用于科学、工程和技术应用的 Qt 控件库,提供曲线图、仪表盘、刻度尺等专业可视化组件。 1. 安装与配置 1.1 安装方式 源码编译(推荐): git clone https://github.com/qwt/qwt.git cd qwt qmake qwt.pro # 生成 Makef…

软考《信息系统运行管理员》- 6.1 信息系统安全概述

信息系统安全的概念 信息系统安全是指保障计算机及其相关设备、设施(含网络)的安全,运行环境的安全, 信息的安全,实现信息系统的正常运行。 信息系统安全包括实体安全、运行安全、信息安全和 人员安全等几个部分。 影响信息系统安全的因素…

Canvas实现旋转太极八卦图

Canvas实现旋转太极八卦图 项目简介 这是一个使用HTML5 Canvas技术实现的动态太极八卦图,包含了旋转动画和鼠标交互功能。项目展示了中国传统文化元素与现代Web技术的结合。 主要特点 动态旋转的太极图八卦符号的完整展示鼠标悬停暂停动画流畅的动画效果 技术实…

机器学习、深度学习和神经网络

机器学习、深度学习和神经网络 术语及相关概念 在深入了解人工智能(AI)的工作原理以及它的各种应用之前,让我们先区分一下与AI密切相关的一些术语和概念:人工智能、机器学习、深度学习和神经网络。这些术语有时会被交替使用&#…

打造高性能中文RAG系统:多轮对话与语义检索的完美结合

目录 1、引言 2、RAG系统的核心架构 3、对话理解:超越单轮问答 3.1、指代消解技术 3.2、话题跟踪与记忆 4、混合检索策略:兼顾精确与广泛 4.1、向量检索 关键词检索 4.2、重排序机制 5、性能优化:应对大规模文档 5.1、向量量化技术…

人工智能助力数字化转型:生成式人工智能(GAI)认证开启新篇章

在数字化浪潮席卷全球的今天,企业正面临着前所未有的转型压力与机遇。数字化转型,这一曾经被视为“选择题”的战略议题,如今已演变为关乎企业生存与发展的“必答题”。在这场深刻的变革中,人工智能(AI)作为…

Windows 图形显示驱动开发-WDDM 2.4功能-GPU 半虚拟化(十二)

DxgkDdiQueryAdapterInfo 更新 DXGKARG_QUERYADAPTERINFO 结构已更新,以包括以下字段以支持半虚拟化: 添加了 Flags 成员,允许 Dxgkrnl 指示以下内容: 它将 VirtualMachineData 设置为指示调用来自 VM。它将 SecureVirtualMach…

iOS审核被拒:Missing privacy manifest 第三方库添加隐私声明文件

问题: iOS提交APP审核被拒,苹果开发者网页显示二进制错误,收到的邮件显示的详细信息如下图: 分析: 从上面信息能看出第三方SDK库必须要包含一个隐私文件,去第三方库更新版本。 几经查询资料得知,苹果在…

马达加斯加企鹅字幕

Antarctica 南极洲 An inhospitable wasteland 一个荒凉的不毛之地 But even here 但即使在这里 on the Earth’s frozen bottom 地球另一端的冰天雪地里 we find life 也有生命存在 And not just any life 不是别的什么生物 Penguins 而是企鹅 Joyous, frolicking 快乐的 顽皮…

爱因斯坦求和 torch

目录 向量点积 矩阵乘法 矩阵转置 向量转换相机坐标系 在 Python 的科学计算库(如 NumPy)中,einsum 是一个强大的函数,它可以简洁地表示各种张量运算。下面是几个不同类型的使用示例: 向量点积 向量点积是两个向量…

FPGA调试笔记

XILINX SSTL属性电平报错 错误如下: [DRC BIVRU-1] Bank IO standard Vref utilization: Bank 33 contains ports that use a reference voltage. In order to use such standards in a bank that is not configured to use INTERNAL_VREF, the banks VREF pin mu…

一区严选!挑战5天一篇脂质体组学 DAY1-5

Day 1! 前期已经成功挑战了很多期NHANES啦!打算来试试孟德尔随机化领域~ 随着孟德尔随机化研究的普及,现在孟德尔发文的难度越来越高,简单的双样本想被接收更是难上加难,那么如何破除这个困境,这次我打算…

DataGear 5.3.0 制作支持导出表格数据的数据可视化看板

DataGear 内置表格图表底层采用的是DataTable表格组件,默认并未引入导出数据的JS支持库,如果有导出表格数据需求,则可以在看板中引入导出相关JS支持库,制作具有导出CSV、Excel、PDF功能的表格数据看板。 在新发布的5.3.0版本中&a…

【个人笔记】用户注册登录思路及实现 springboot+mybatis+redis

基本思路 获取验证码接口 验证码操作用了com.pig4cloud.plugin的captcha-core这个库。 AccountControl的"/checkCode"接口代码,通过ArithmeticCaptcha生成一张验证码图片,通过text()函数得到验证码的答案保存到变量code,然后把图…

Linux网络编程概述

Linux网络编程是在Linux操作系统环境下进行的网络相关程序开发,主要用于实现不同计算机之间的数据通信和资源共享。以下从基础知识、网络编程模型、常用函数和编程步骤等方面进行详细介绍: 基础知识 1. 网络协议 TCP/IP协议族:是互联网通信…

Linux内核perf性能分析工具案例分析

一、系统级性能分析工具perf原理 1. perf 的基本概念 内核集成:perf 直接集成在 Linux 内核源码中,能够深度访问硬件和操作系统层面的性能数据,具有低开销、高精度的特点。 事件采样原理:通过定期采样系统事件&#xff0…

word-spacing 属性

介绍 CSS word-spacing 属性,用于指定段字之间的空间,例如: p {word-spacing:30px; }word-spacing属性增加或减少字与字之间的空白。 注意: 负值是允许的。 浏览器支持 表格中的数字表示支持该属性的第一个浏览器版本号。 属…

5种特效融合愚人节搞怪病毒

内容供学习使用,不得转卖,代码复制后请1小时内删除,此代码会危害计算机安全,谨慎操作 并在虚拟机里运行此代码!&#xff0c;病毒带来后果自负! #include <windows.h> #include <cmath> #include <thread> using namespace std; // 屏幕特效函数声明 void In…

深入理解 Windows 进程管理:taskkill 命令详解

引言 在 Windows 系统开发和日常使用中&#xff0c;我们经常会遇到程序卡死、文件被占用导致无法编译等问题。这时&#xff0c;taskkill 命令就成了解决问题的利器。本文将详细介绍 taskkill 的使用方法、常见场景以及注意事项&#xff0c;帮助你高效管理系统进程。 1. 什么是…

【C++】右值引用与完美转发

目录 一、右值引用&#xff1a; 1、左值与右值&#xff1a; 2、左值引用和右值引用&#xff1a; 二、右值引用的使用场景&#xff1a; 1、左值引用的使用场景&#xff1a; 2、右值引用的使用场景&#xff1a; 移动构造 移动赋值 三、完美转发&#xff1a; 1、万能引用…