PPO:Proximal Policy Optimization Algorithms,其优化的核心目标是:

ppo paper

策略梯度

以下是马尔可夫决策过程MDP的相关基础以及强化学习的优化目标:

策略梯度Policy Gradoent的相关推导:

openai spinningup

重要性采样

通过从一个已知的分布中采样来估计另一个分布。在PPO中,π_old是π的一个近似分布,我们希望学习的策略π在π_old的基础上稳步学习,两者差距不能太大;于是我们从π_old的分布中采样,以π/π_old的作为权重。一个不严谨的理解是差值为0或比值为1都表示两个变量一致。我们的目的就是期望π在π_old的附近学习。

取R(τ)为优势函数At,可以从每个t为粒度来重新考查PG,在此基础上对π_old进行重要性采样,最终结果为:

KL散度

KL散度即两个分布的相对熵H_p(Q) - H(P):使用不正确的分布Q代替真实分布P时所产生的额外代价。只有当两个分布一致时,KL散度为0,否则总是正的。在PPO中,KL散度用来衡量policy π与π_old的偏离程度,期望两者是接近的。

koller pgm

模型结构

当action是连续动作空间时,policy π网络学习的是分布的参数mean和vars;当是离散的时候,是其多项式分布。

与off-policy学习DQN的Target Network网络相似,包含一个策略“目标”网络π_old,在每次采集完数据即学习前,π网络把参数同步至π_old。

损失函数

policy π 网络和 Value网络是分开的,分别优化两个网络的目标函数。

π的目标函数:

ppo paper

注意优势函数A是基于π_old的。KL散度以惩罚项与优势函数加在一起,系数根据KL的大小调整。

Value的损失函数:一般的state Value残差即可。

openai spinningup

学习过程

可以通过多个actor实现并行采集数据,π_old指的是采集数据的policy,学习优化可以多次使用数据,但π_old不变。采样数据的action通过π_old的分布参数决定的分布上采样;优势函数可以是任何一种近似,比如TD Residual:R(s_t, a_t) + V(s_t+1) - V(s)。

ppo paper

总结

PPO是一种基于策略梯度优化的、面向连续或离散动作空间的on-policy深度强化学习算法。

近端策略优化深度强化学习算法相关推荐

  1. 【招聘推荐】启元世界招聘深度强化学习算法工程师

    深度强化学习实验室 官网:http://www.neurondance.com/ 论坛:http://deeprl.neurondance.com/ 编辑.排版:DeepRL 深度强化学习算法工程师 ...

  2. 17种深度强化学习算法用Pytorch实现(附链接)

    来源:新智元 本文约1300字,建议阅读5分钟. 本文为你介绍一个用PyTorch实现了17种深度强化学习算法的教程和代码库,帮助大家在实践中理解深度RL算法. [ 导读 ]深度强化学习已经在许多领域 ...

  3. openssl 添加自定义算法_GitHub:用PyTorch实现17种深度强化学习算法

    [新智元导读]深度强化学习已经在许多领域取得了瞩目的成就,并且仍是各大领域受热捧的方向之一.本文推荐一个用 PyTorch 实现了 17 种深度强化学习算法的教程和代码库,帮助大家在实践中理解深度 R ...

  4. 深度强化学习算法调参

    深度强化学习调参技巧:以D3QN.TD3.PPO.SAC算法为例 这个参考链接. 如何选择深度强化学习算法? 参考链接. 影响PPO算法性能的10个关键技巧(附PPO算法简洁Pytorch实现) 主要 ...

  5. 学界 | 量化深度强化学习算法的泛化能力

    来源:AI 科技评论 OpenAI 近期发布了一个新的训练环境 CoinRun,它提供了一个度量智能体将其学习经验活学活用到新情况的能力指标,而且还可以解决一项长期存在于强化学习中的疑难问题--即使是 ...

  6. 基于值的深度强化学习算法

    目录 DQN2013 -- Playing Atari with Deep Reinforcement Learning DQN2015 -- Human-level control through ...

  7. 【重磅】Tensorflow2.0实现29种深度强化学习算法大汇总

    点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要3分钟 Follow小博主,每天更新前沿干货 来源:深度强化学习实验室 作者:王健树 [导读]今天给大家推荐一个超赞的强化学习项目资料,该项目 ...

  8. 【假期学习计划】深度强化学习算法与应用培训班

    深度强化学习应用与实战培训班内容 一.强化学习概述 二.马尔科夫决策过程 1.马尔可夫性 2.马尔可夫决策过程 3.策略与价值 4.最优化原理 5.MDPs扩展 三.动态规划 1.动态规划 2.价值迭 ...

  9. 两种深度强化学习算法在网络调度上的应用与优化(DQN A3C)

    首先给出论文地址和代码, Reinforcement Learning Based Scheduling Algorithm for Optimizing Age of Information in ...

最新文章

  1. 【蓝桥杯Java_C组·从零开始卷】第五节(一)、BigInteger的使用
  2. UILocalNotification本地通知
  3. Solr6.1.0Windows安装步骤
  4. 网页中插入javascript的几种方法
  5. halcon python缺陷检测_Halcon学习笔记之缺陷检测(一)
  6. Kafka启动报错:Timed out waiting for connection while in state: CONNECTING
  7. [下载]北京新版小学英语五年级上册mp3点读APP
  8. C# EXCEL 透视表使用 多行多列的导出透视表
  9. 将 DataDirect ODBC 驱动程序与 Python 和 pyodbc 一起使用
  10. Android office教程,Excel办公软件Office教程app
  11. e580显卡驱动_联想e580显卡驱动下载-联想e580笔记本显卡驱动v25.20.15012.2005 官方版 - 极光下载站...
  12. qq 客服 php,QQ支持临时会话设置
  13. 3D结构光摄像头深度算法
  14. 搞定java面试系列--jvm3 gc垃圾回收
  15. Apache Ignite详解
  16. BH1750简单介绍
  17. 【疑难教程】视频上云服务平台EasyCVR使用Go语言可执行程序出现“Process XXX has exited with status XXXX”错误
  18. 国外免费3D模型下载网站
  19. 走近棒球运动·亚洲职棒大赛·MLB棒球创造营
  20. Python绘制RTKLIB的POS文件中的XYZ误差曲线及计算RMSE

热门文章

  1. [编写高质量代码:改善java程序的151个建议]建议57 推荐在复杂字符串操作中使用正则表达式...
  2. 安装两个硬盘时应如何跳线?
  3. powerDesiger uml class
  4. Windows 7 SP1确实将有性能改进
  5. SQL Server FOR XML PATH 语句的应用
  6. sql server检查临时表是否存在
  7. 量子力学 一 基础8 经典概率与量子概率
  8. UA MATH567 高维统计IV Lipschitz组合8 随机投影与John-Lindenstrauss引理
  9. C++虚函数Demo - Win32 版本
  10. 操作系统pv操作学习总结