on-policy策略,是指使用当前策略生成的数据来更新当前策略;

off-policy策略,是指可以使用非当前策略生成的数据来更新当前策略;

举例:Agent使用策略与环境互动,生成数据,使用更新策略获得新的策略,数据被丢弃,则是on-policy策略;

Agent使用策略与环境互动,生成数据,使用来更新策略获得新的策略,数据被存储到数据缓冲池,用于下一次策略的更新,则是off-policy策略。

从定义可以知,on-policy策略的数据利用效率低,off-policy策略可以使用先前策略生成的数据,因此,off-policy的策略较高。

1. VPG是on-policy策略,每次和环境互动(一个epoch),使用当前策略,生产一批数据(batch),然后使用这些数据对当前策略进行一次更新,之后数据被丢弃;

2. DQN是off-policy,每次和环境互动,使用当前策略,生产一批数据,将新生产的数据存储到数据缓冲区,使用缓存区的数据更新t时刻的目标策略,生成t+1时刻的目标策略,接着,继续使用当前策略生成一批数据,存入缓冲区,使用缓冲区数据更新目标策略;经过一定次数的更新后,使用目标策略t+n更新当前策略, 继续上述过程;

3. PPO策略是on-policy策略,相比VPG策略,PPO策略使用当前策略生成的数据,对当前策略进行了多次更新,而非VPG的一次更新。多次更新带来了数据利用率的提升,学习效率的提升,但同时引入了不稳定性,即:由于数据并非更新后的策略生成,导致数据差异与当前策略较大,为了解决这个问题,PPO比较新旧策略的差异,如果差异过大,则进行修剪更新的范围,防止过大的更新导致网络不稳定,从而导致训练过程发散。

以openAI spinning up中代码为例,VPG和PPO代码的主要区别在于,更新函数中,PPO使用同一数据,对策略进行了多次更新(学习),图中的循环train_pi_iters则是该更新的次数。

强化学习VPG和PPO的区别相关推荐

  1. 深度强化学习笔记之PPO实现细节(2)

    深度强化学习笔记之PPO实现细节(2) 本文主要参考于Coding PPO from Scratch with PyTorch系列,但本文并不会像该系列一样手把手讲解全部的实现细节,只是记录一下自己在 ...

  2. 强化学习笔记:PPO 【近端策略优化(Proximal Policy Optimization)】

    1 前言 我们回顾一下policy network: 强化学习笔记:Policy-based Approach_UQI-LIUWJ的博客-CSDN博客 它先去跟环境互动,搜集很多的 路径τ.根据它搜集 ...

  3. 深度强化学习之:PPO训练红白机1942

    本篇是深度强化学习动手系列文章,自MyEncyclopedia公众号文章深度强化学习之:DQN训练超级玛丽闯关发布后收到不少关注和反馈,这一期,让我们实现目前主流深度强化学习算法PPO来打另一个红白机 ...

  4. 【深度强化学习】(6) PPO 模型解析,附Pytorch完整代码

    大家好,今天和各位分享一下深度强化学习中的近端策略优化算法(proximal policy optimization,PPO),并借助 OpenAI 的 gym 环境完成一个小案例,完整代码可以从我的 ...

  5. 【原创】强化学习笔记|从零开始学习PPO算法编程(pytorch版本)

    从零开始学习PPO算法编程(pytorch版本)_melody_cjw的博客-CSDN博客_ppo算法 pytorch 从零开始学习PPO算法编程(pytorch版本)(二)_melody_cjw的博 ...

  6. B站学强化学习?港中文周博磊变身up主,中文课程已上线

    本文经机器之心(微信公众号:almosthuman2014)授权转载,禁止二次转载 机器之心整理 众所周知,B 站是一个学习网站.在看完罗翔老师的刑法课之后,是时候探索人工智能了. 新冠疫情还未退散, ...

  7. 强化学习笔记4:强化学习分类

    1 model-free & model-based model-based(有模型) RL agent,它通过学习环境的状态转移来采取动作. model-free(免模型) RL agent ...

  8. 交互式机器学习/ 强化学习在图像领域中的应用

    交互式机器学习 参考: 深度学习在交互式图像分割中的应用 - 知乎 Nat. Methods | ilastik:为生物图像分析而生的交互式机器学习平台_DrugAI-CSDN博客 https://d ...

  9. 强化学习经典model-free方法总结

    强化学习经典model-free方法总结 1. 基于值函数(value-based)的方法 1.1 sarsa 1.2 Q-learning 1.3 DQN 1.4 Double DQN 1.5 Du ...

最新文章

  1. 51CTO推荐博客、博客之星名单【2014年】
  2. Android UI(五)云通讯录项目之联系人列表,带侧滑选择,带搜索框
  3. 面试题总结~~(google level)
  4. IT技术分类和就业特点
  5. android jni 调用java对象_Android NDK开发之Jni调用Java对象
  6. Unity2020.1中如何安装DOTS的Entities包?
  7. 我的2015plan
  8. python绘制国际象棋_python使用turtle绘制国际象棋棋盘
  9. 读《NoSQL精粹》前三章有感
  10. linux手动注入网络数据_Linux网络 - 数据包的接收过程【转】
  11. nginx rwrite及增加不记录特定状态日志nginx模块
  12. mysql count 返回值类型_mysql count详解及函数实例代码
  13. oracle付权,oracle权限总结
  14. 卸载2345套件的本人认为最好的方法
  15. 网页左右两边加广告横幅
  16. 学生喂养动物(猫,狗,鸟)
  17. 前端面试题——js闭包
  18. 带你初识JSP(JAVA服务器页面)
  19. 侬用洲移动通信复习资料
  20. vcs oracle 双机,手动安装双机软件VCS5.1

热门文章

  1. Wireshark教程:解密HTTPS流量
  2. VC++类型转换大全
  3. Landsat Tm5辐射定标和大气校正(转)
  4. 实时显示GPU的两种方法(灵机一动)
  5. PAT乙级真题1089 || 狼人杀-简单版(详解,C/C++示例,测试点分析)
  6. Spring Security+OAuth2认证服务之令牌管理源码分析
  7. ProAndroidDev_The latest posts from Android Professionals and Google Developer Experts.
  8. 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?实现 int sqrt(int x) 函数。
  9. js手机号码格式、tp5身份证格式验证
  10. Js——案例实现图片数字时钟