强化学习PPO算法的思路流程

2023-05-16

首先可以肯定的是PPO算法是基于actor-critic框架的,但是它又含有强烈的Policy Gradient的风格。本文仅介绍PPO算法的应用流程。

通常PPO算法的实现中有三个network,一个critic network,两个actor network(old_actor and new_actor)。在一个episode中,agent首先利用现有的策略Pi (new_actor network)与环境进行互动获得一个batch的数据,在这个过程中actor和critic网络是不会被优化的。而在获得一个完整的batch数据后,actor network和critic network开始对这一batch数据进行学习,这一点类似于Policy Gradient。但又不同于Policy Gradient的是,actor network和critic network会对sample到的这一个batch的数据进行T次的学习。

其中,在采集完这个batch数据后,使用critic network获得估计的值函数,然后根据critic network估计的值函数和batch数据中存储的每个时刻的reward按照一定的折扣率分别计算采集到的这个batch数据中每个时刻值函数,如下公式所示

在对采集到的这个batch数据学习时,old_actor network就用到了。首先将获得这个batch数据的new_actor network中的参数复制给old_actor network,然后开始进行new_actor network和critic network的学习。首先将这个batch数据存储的T个state输入给critic network,critic network分别输出T个时刻的估计值函数,然后再根据公式(10)所示计算出T个target value function,最后就可以计算出T个优势函数(TD error)(不同于DDPG中用target network来以计算TD error)

之后就利用batch数据的TD error对new_actor network的参数进行N次优化,其中的loss如下式所示

最后,利用batch数据的TD error对critic network进行B次优化。对critic network的优化方法和Advantage actor-critic算法中所用方法基本一样。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

强化学习PPO算法的思路流程 的相关文章

随机推荐

  • 9年FPGA工作经验,转行了,苦海无涯……

    整理 xff1a 付斌 xff0c 内容来自网络 01 9年峥嵘岁月 我很少说话 xff0c 因为怕被人鄙视 工作了9年的fpga xff0c 总要总结 其实说我的fpga经验 xff0c 也是一坨屎 三年的 xff0c 用altera的c
  • GPS-RTK

    一点一点的补充吧 背景 1 xff0e 各种控制测量传统的大地测量 工程控制测量采用三角网 导线网方法来施测 xff0c 不仅费工费时 xff0c 要求点间RTK 在工程测量的应用通视 xff0c 而且精度分布不均匀 xff0c 且在外业不
  • 浅谈栈帧

    一 什么是栈帧 xff1f 什么是栈帧 xff0c 首先引用百度百科的经典解释 xff1a 栈帧也叫过程活动记录 xff0c 是编译器用来实现过程 函数调用的一种数据结构 实际上 xff0c 可以简单理解为 xff1a 栈帧就是存储在用户栈
  • madVR+potplay 基本设置

    ctrl 43 j 调出 madvr 的OSD菜单 如下图 xff1a 如何设置 madVR 10bit 输出 xff1a 1 确保视频源是10bit 源 2 显示器设置 如下 xff1a 3 渲染设置如下 xff1a 设置完成 xff0c
  • 4.jetson更换python版本

    问题与背景 jetson自带的python版本是3 6 9 xff0c 太老旧了 xff0c 希望更换python版本 尝试替换成python3 7的版本 但是在未替换之前 xff0c 已经装了pip3了 xff0c 是否pip3会与pyt
  • char数组和指针的区别

    一个简单的字符分割函数引发的思考 char SegStr1 const char pSrc int n int nLen 61 strlen pSrc char ptrSrc 256 61 0 char pSeg 61 ptrSrc for
  • 舒尔补理论Schur Compliment

    在做slam的时候经常遇到的一个概念就是schur complement xff0c 了解这个概念 xff0c 对于理解slam的优化过程也会有很大的帮助 xff1b 首先给出的是舒尔补的定义 xff1a 舒尔补的由来其实就是将一个矩阵变成
  • 用CubeSLAM跑自己的数据集

    针对CubeSLAM本博客内容如下 xff0c 主要是阅读论文和代码的一些结果总结 xff0c 还有一部分总结未完成 xff0c 同样使用或者对语义slam感兴趣有经验的欢迎交流 xff0c 该博客后面也会不段更新cubeslam在自己的数
  • mipi接口的摄像头驱动并发布话题

    情况 需要跑ORBSLAM 之前一直使用USB接口的相机 打开摄像头一般使用的是ROS下的usb cam node进行驱动 采集图像并发布成topic的形式 或者使用opencv的videoCapture进行图像的捕捉 因为某些原因需要将u
  • 正确使用StereoRectify

    双目矫正的使用 cv fisheye StereoRectify 函数 主要用于对双目图像做出矫正 计算出用于立体矫正的参数 具体的使用方法如下 void cv fisheye stereoRectify InputArray K1 Inp
  • Eigen问题解决:eigen_assert_exception’ is not a member of ‘Eigen’

    很意外地遇到一个Eigen相关的错误 xff1a usr local include eigen3 Eigen src Core products Parallelizer h 162 40 error eigen assert excep
  • 2020年大学生电子设计竞赛,又来了!

    不知不觉 xff0c 又临近5月份 xff0c 疫情下的各个比赛活动都受到了影响 xff0c 今年是偶数年 xff0c 暑期应该是各个省份的电子设计竞赛比赛之时 还有三四个月 xff0c 有想参加的比赛的同学应该可以提前准备了 关于比赛的帖
  • Kalibr源码学习(一): 重投影误差

    Kalibr源码学习 一 重投影误差 给自己挖一个大坑 从标定结果来学习Kalibr的标定源码 这里基本以KB模型为例 也就是标定时 kalibr的模型设定为 model pinhole equi 这里以重投影误差开始 希望能坚持 重投影误
  • OpenCV入门: Mat数据类型及其转换,访问

    1 总结 先贴上我总结的Opencv的数据类型 主要是针对不同Mat类型进行新建 修改和访问时使用 更详细的数据访问见下文 2 CV 8UC3解说 新建一个CV 8UC3型的cv Mat 其中U代表了unsigned char型的数据 其表
  • Opencv单目标定flag的设定

    1 flag中的标签顺序 xff1a 在代码中的对应如下 xff1a enum CALIB USE INTRINSIC GUESS 61 1 lt lt 0 CALIB RECOMPUTE EXTRINSIC 61 1 lt lt 1 CA
  • 队列的基础知识及实现方法

    队列 在网上又看到关于队列的知识点 xff0c 有很多 xff0c 但都比较琐碎 xff0c 有的还有些错误 xff0c 为方便自己理解 xff0c 特整理出一篇 xff0c 顺便也加强记忆 xff1b 当然 xff0c 也附上我参考的博客
  • sudo:/usr/bin/sudo 必须属于用户 ID 0(的用户)并且设置 setuid 位

    应该是之前的误操作 导致sudo不能正常的使用 每次输入sudp 都会提醒 sudo xff1a usr bin sudo 必须属于用户 ID 0 的用户 并且设置 setuid 位 这是因为我之前修改了usr的权限 将usr整个文件夹的权
  • VS2015 调试代码时写入位置时发生访问冲突

    前一段时间写一个工程 xff0c 调用自己写的一个库 xff0c 编译成功 xff0c 执行时发生了访问冲突 xff1b 当时觉得很好奇 xff0c 这个库不是第一次调用 xff0c 之前调用过很多次都没有问题 xff0c 偏偏这次出现了访
  • GIT代码管理: git remote add

    这里主要以 如何将一份已经写好的代码提交到两个git远端 为例 xff0c 更好地理解git remote add这句 xff1b 首先要明白一句代码的意思 xff0c 以github最经常的提示为例 xff1a 在这张图面里git ini
  • 强化学习PPO算法的思路流程

    首先可以肯定的是PPO算法是基于actor critic框架的 xff0c 但是它又含有强烈的Policy Gradient的风格 本文仅介绍PPO算法的应用流程 通常PPO算法的实现中有三个network xff0c 一个critic n