【深度强化学习】TRPO、PPO

news/2024/5/18 23:51:16 标签: 强化学习, 人工智能

策略梯度的缺点

  • 步长难以确定,一旦步长选的不好,就导致恶性循环
    步长不合适 → 策略变差 → 采集的数据变差 → (回报 / 梯度导致的)步长不合适 步长不合适 \to 策略变差 \to 采集的数据变差 \to (回报/梯度导致的)步长不合适 步长不合适策略变差采集的数据变差(回报/梯度导致的)步长不合适

  • 一阶信息不限制步长容易越过局部最优,而且很难回来
    在这里插入图片描述

TRPO 置信域策略优化

思想:

  • 步子不要太大,应该保证更新在某个邻域内 ∣ ∣ θ − θ o l d ∣ ∣ < Δ ||\theta-\theta_{old}||<\Delta ∣∣θθold∣∣<Δ(或者 K L ( π θ ( ⋅ ∣ ⋅ ) ) , π θ o l d ( ⋅ ∣ ⋅ ) ) < Δ \mathrm{KL}(\pi_\theta(\cdot|\cdot)),\pi_{\theta_{old}}(\cdot|\cdot))<\Delta KL(πθ()),πθold())<Δ
  • 利用二阶信息估计邻域 N ( θ o l d ) \mathcal{N}(\theta_{old}) N(θold) 内的 θ \theta θ

步骤

  1. 对循环的每一步,用 θ o l d \theta_{old} θold 策略采样一条轨迹(MC 思想)
  2. 对每一个轨迹位置,都计算它们的折扣回报 G i G_i Gi
  3. 用采样的样本估计期望作为近似的目标函数 L ( θ ∣ θ o l d ) L(\theta|\theta_{old}) L(θθold)(除以 π o l d \pi_{old} πold是因为重要性采样)
    L ( θ ∣ θ o l d ) = E a i ∼ π [ π ( a i ∣ s i ; θ ) G i ] L(\theta|\theta_{old}) = \mathbb{E}_{a_i\sim\pi}[{\pi(a_i|s_i;\theta)}G_i] L(θθold)=Eaiπ[π(aisi;θ)Gi]
    L ( θ ∣ θ o l d ) = E a i ∼ π o l d [ π ( a i ∣ s i ; θ ) π ( a i ∣ s i ; θ o l d ) G i ] \red{L(\theta|\theta_{old}) = \mathbb{E}_{a_i\sim\pi_{old}}[\frac{\pi(a_i|s_i;\theta)}{\pi(a_i|s_i;\theta_{old})}G_i]} L(θθold)=Eaiπold[π(aisi;θold)π(aisi;θ)Gi]
  4. 利用某种(二阶)优化方法(涉及 Fisher Information Matrix、共轭梯度法)求邻域内的能够最大化近似代价函数的最大值
    在这里插入图片描述

优势:

  • 训练更稳定,收敛曲线不会剧烈波动,而且对超参数不敏感
  • 样本有效,用更少的经验就能达到和 PG 相同的表现

缺点:

  • 重要性采样:除法引起高方差
  • 有约束优化问题,不容易优化

PPO 近端策略优化

PPO 实际上就是为了解决 TRPO 的这两个问题而提出的,做的改进是:

  • Clip 截断重要性采样的值,防止过大(类似于梯度截断)
    C l i p { π ( a i ∣ s i ; θ ) π ( a i ∣ s i ; θ o l d ) , 1 − ϵ , 1 + ϵ } \mathrm{Clip} \left\{ \frac{\pi(a_i|s_i;\theta)}{\pi(a_i|s_i;\theta_{old})} , 1-\epsilon, 1+\epsilon \right\} Clip{π(aisi;θold)π(aisi;θ),1ϵ,1+ϵ}
  • KL散度条件转为无约束,自适应 β \beta β超参
    max ⁡ θ L ( θ ∣ θ o l d ) − β K L ( θ ∣ θ o l d ) \max_\theta L(\theta|\theta_{old}) - \beta \mathrm{KL} (\theta|\theta_{old}) θmaxL(θθold)βKL(θθold)

John Schulman, Filip Wolski, Prafulla Dhariwal, Alec Radford, Oleg Klimov: Proximal Policy Optimization Algorithms. CoRR abs/1707.06347 (2017)

总结

策略梯度
REINFORCE (MC,从梯度上升开始、除以 π \pi π变成 Ln)

REINFORCE基线 REINFORCE (MC, G − v ( s ) G-v(s) Gv(s))→ Actor-Critic(TD, r + γ v ( s ) − v ( s ′ ) r+γv(s)-v(s') r+γv(s)v(s)
REINFORCETRPO (有约束、二阶信息)→ PPO(有约束转无约束、截断重要性)
REINFORCE → …

More

https://spinningup.openai.com/en/latest/algorithms/trpo.html
https://jonathan-hui.medium.com/rl-the-math-behind-trpo-ppo-d12f6c745f33
https://towardsdatascience.com/trust-region-policy-optimization-trpo-explained-4b56bd206fc2


http://www.niftyadmin.cn/n/5270532.html

相关文章

YOLOv8-Seg改进:UniRepLKNetBlock 助力分割 | UniRepLKNet,通用感知大内核卷积网络, 2023.12

🚀🚀🚀本文改进: UniRepLKNet,通用感知大内核卷积网络,ImageNet-22K预训练,精度 和速度SOTA,ImageNet达到88%, COCO达到56.4 box AP,ADE20K达到55.6 mIoU UniRepLKNetBlock 与C2f进行结合使用 🚀🚀🚀YOLOv8-seg创新专栏:http://t.csdnimg.cn/KLSdv 学姐带…

layui框架国际化的实现

项目场景&#xff1a; 要对一个前端使用layui的项目进行国际化&#xff0c;但是layui好像没有实现国际化&#xff0c;所以需要自己手动实现。 软件版本&#xff1a; layui版本&#xff1a;layui-v2.5.6 jquery版本&#xff1a;3.5.1.min 解决方案&#xff1a; 需要国际化的…

01 概述

概述 本套课程是2023年12月17日以后编写的&#xff0c;适用于NodeJS20Vite5Vue3的一套视频课&#xff0c;非常适合零基础入门学习Vue3的同学。 本套视频课的教案会免费发布在CSDN、公众号、知乎&#xff0c;简书、掘金等平台&#xff0c;视频课程则会发布在Bilibi网站。 环境…

Qt for Android设置安卓程序默认横屏+全屏

我的qt版本是5.14.1&#xff0c;网上查到的方法是&#xff0c;把编译出的build文件夹中的AndroidManifest.xml文件复制出来然后修改&#xff0c;然后把修改后的xml文件加入pro文件&#xff0c;语法为ANDROID_PACKAGE_SOURCE_DIR $$PWD/AndroidManifest.xml&#xff08;具体&am…

自动驾驶学习笔记(二十)——Planning算法

#Apollo开发者# 学习课程的传送门如下&#xff0c;当您也准备学习自动驾驶时&#xff0c;可以和我一同前往&#xff1a; 《自动驾驶新人之旅》免费课程—> 传送门 《Apollo 社区开发者圆桌会》免费报名—>传送门 文章目录 前言 参考线平滑 双层状态机 EM Planner …

广受好评的开源基础大模型最全梳理,你最钟意哪一个?

2023 年即将过去。一年以来&#xff0c;各式各样的大模型争相发布。当 OpenAI 和谷歌等科技巨头正在角逐时&#xff0c;另一方「势力」悄然崛起 —— 开源。 开源模型受到的质疑一向不少。它们是否能像专有模型一样优秀&#xff1f;是否能够媲美专有模型的性能&#xff1f; 迄…

时序分解 | Matlab实现SSA-ICEEMDAN麻雀算法优化ICEEMDAN时间序列信号分解

时序分解 | Matlab实现SSA-ICEEMDAN麻雀算法优化ICEEMDAN时间序列信号分解 目录 时序分解 | Matlab实现SSA-ICEEMDAN麻雀算法优化ICEEMDAN时间序列信号分解效果一览基本介绍程序设计参考资料 效果一览 基本介绍 Matlab实现SSA-ICEEMDAN麻雀算法优化ICEEMDAN时间序列信号分解 可…

单机多卡训练-DDP

DDP原理&#xff1a; 为什么快&#xff1f; DDP通过Ring-Reduce&#xff08;梯度合并&#xff09;的数据交换方法提高了通讯效率&#xff0c;并通过启动多个进程的方式减轻Python GIL的限制&#xff0c;从而提高训练速度。 神经网络中的并行有以下三种形式&#xff1a; Data…