RL论文阅读20 - MF类算法总结(VPG, TROP, PPO, DDPG, TD3, SAC)
PG类算法总结
1. On-Policy类算法
1.1 VPG:Vanilla Policy Gradient
- on policy 算法
- 可用于动作空连续或者离散动作空间
这个就是最初的PG版本。我们的目的是最大化有限的return。J代表的是无折扣的有限return。
下面的公式推导见从PG到A3C
τ\tauτ就是我们的采样序列。
A是Advantage function
可见我们需要获得完整的动作序列。
伪代码:
1.2 TROP: Trust Region Policy Optimization
- On-policy算法
- 离散或者连续动作空间
VPG算法在参数更新的时候,是原始参数+学习率*梯度
。在现实应用上,如果有一步走的比较差,就会影响整个PG算法的性能。TROP的思路就是在一定的限制内,来决定这个步长迈出多大。
这个限制来自于新旧两个策略的KL-散度,KL散度可以认为是衡量两个分部的距离的。两个策略越接近,我们迈出的步子越小,策略相差越大,我们迈出的步子就可以越大。
TROP的具体数学推导可看原论文。关键的几个公式如下:
- 更新规则
我们的L(θk,θ)L(\theta_k, \theta)L(θk,θ)衡量新的策略(分子)和就得策略(分母)结果相关性的。他们的结果越相同,L越小。
散度的计算:
如果新旧两个策略相等,那么梯度就等于0。从数学上可以证明。(我没证。。)
TROP实际应用
- 上述实际应用很难,所以使用了泰勒公式近似来求解以更快得到结果。-
- 因为是带有限制的求极值问题,使用拉格朗日对偶(Lagrangian duality)来处理。
- 添加α\alphaα的原因是通过泰勒公式进行估计,引入了误差,可能不满足KL的限制,所以加一个系数
最终的结果:中间推导过程或者原论文
而且对于H的逆矩阵计算很困难,还用到了共轭梯度算法( conjugate gradient algorithm)
1.3 PPO: Proximal Policy Optimization
TRPO算法效果很好,但是应用起来十分复杂。PPO算法解决和TROP一样的问题,就是每次迈多大的步子。PPO更加简单,并且实际效果至少和TRPO一样好。
- on-policy
- 连续或者离散动作空间
PPO两个版本:
- PPO-Penalty:
- PPO-Clip
具体论文分析Spinningup和Blog-PPO
2. Off-policy类算法
2.1 DDPG
off-policy
连续动作空间
可认为是DQN的连续动作空间版本
分析见Spinningup和Blog-DDPG
off-policy:能够使用experience replay。off-policy的根本原因是在计算Q值的时候,不再需要整个动作序列了,on-policy策略使用整个动作序列的reward累加或者带有折扣的reward累加来确定Q值,从而帮助选择策略。off-policy利用了TD-learning的思想,使用神经网络来估计Return,Q值计算只需要当前奖励和之后的估计Q值。这样不需要记录完整序列,只需要记录状态、动作、奖励即可。所以我们可以将使用其他episode采样的数据来训练当前的policy。坏处就是又引入了误差(因为多了一处估计)
2.2 TD3 Twin Delayed DDPG
DDPG超参多、参数不好难以收敛,复杂维度训练困难。
DDPG有四个网络,即Critic-net Critic-target-net、Actor-net、Actor-Target-Net
TD3除了critic-target-net,还同时学习两个critic-net来估计Q值,即有两个Critic-net通过反向传播进行更新。
- Actor网络输出平滑化
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ws6vPEgI-1603099010531)(20-MF类算法总结(VPG, TROP, PPO, DDPG, TD3, SAC)].assets/8efd61c40551db4eddb3f780d2804cac34c8ae52.svg)
μ\muμ是Actor网络,alowa_{low}alow是action范围最小值
为了探索,我们往往在Actor网络中增加正态分布的噪声。我们对输出进行剪切处理。
这么做解决了一个DDPG可能失败的一个情形:Q-function输出了一个某些动作的错误的峰值,policy会快速利用这个峰值,那么就会产生错误的动作行为。target policy这么做,可以平滑Q-function在相似动作上的输出。
- 在计算y_target时,两个Q-function的结果选择最小的一个
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-U0SR3fJ8-1603099010535)(20-MF类算法总结(VPG, TROP, PPO, DDPG, TD3, SAC)].assets/70901eaea34c31e03bb878d7a710a33cb75d1143.svg)
- policy的梯度计算只通过其中一个。
2.3 SAC Soft Actor-Critic
SAC算法继承了TD3的两个Q-net的结构。同时,引入了交叉熵,不需要手动设置探索率。
Blog-SAC
Reference
本文所有公式和伪代码来自:
SpinningUp
RL论文阅读20 - MF类算法总结(VPG, TROP, PPO, DDPG, TD3, SAC)相关推荐
- [论文阅读] (20)USENIXSec21 DeepReflect:通过二进制重构发现恶意行为(恶意代码ROI分析经典)
<娜璋带你读论文>系列主要是督促自己阅读优秀论文及听取学术讲座,并分享给大家,希望您喜欢.由于作者的英文水平和学术能力不高,需要不断提升,所以还请大家批评指正,非常欢迎大家给我留言评论,学 ...
- 论文阅读笔记 | 目标检测算法——SAPD算法
如有错误,恳请指出. 文章目录 1. Introduction 2. Soft Anchor-Point Detector 2.1 Detection Formulation with Anchor ...
- 论文阅读笔记 | 目标检测算法——FSAF算法
如有错误,恳请指出 文章目录 1. Introduction 2. FSAF Module 2.1 Network Architecture 2.2 Ground-truth and Loss 2.2 ...
- 论文阅读笔记 | 目标检测算法——PP-YOLOv2
如有错误,恳请指出. 文章目录 1. Introduction 2. Revisit PP-YOLO 2.1 Pre-Processing 2.2 Baseline Model 2.3 Trainin ...
- 聚类算法 距离矩阵_论文阅读9——AP聚类算法
Affinity Learning for Mixed Data Clustering 论文提出了基于混合对数据进行聚类的学习框架,具体研究内容包括:1)如何处理具有混合类型属性的数据.2)如何学习数 ...
- RL论文阅读【一】Playing Atari with Deep Reinforcement Learning
1 废话 开始要认真的读论文的,计划每天晚上回宿舍看一半,两天看完一篇,第三天写博客总结,虽然有点慢吧,但是积少成多嘛~ 今天先介绍第一篇,也是深度强化学习的开山之作. 2 动机 一般把这篇论文称作深 ...
- 论文阅读笔记 | 目标检测算法——Libra R-CNN算法
如有错误,恳请指出. 文章目录 1. Introduction 1.1 Sample level imbalance 1.2 Feature level imbalance 1.3 Objective ...
- 论文阅读笔记 | 目标检测算法——PP-YOLO
如有错误,恳请指出. 文章目录 1. Introduction 2. Related Work 3. PP-YOLO 3.1 Architecture 3.1.1 Backbone 3.1.2 Det ...
- 论文阅读笔记 | 目标检测算法——YOLOX
如有错误,恳请指出. 文章目录 1. Introduction 2. YOLOX 2.1 YOLOv3 baseline 2.2 Decoupled head 2.3 Strong data augm ...
最新文章
- 加入域应具备的权限讨论
- java实现HTML转PDF
- 1.FPGA开发软件安装——Vivado
- mybitas oracle.sql.clob,Oracle使用简单函数
- boost::system::system_error相关的测试程序
- 搞定Server 2008蓝牙问题
- 利用组策略管理器映射网络驱动器的方法
- centos7安装nexus3
- 以码为梦,心向远方,路在脚下|211应届计算机毕业生的迷茫
- 苹果IPSW文件提取软件
- h5做app和原生app有什么区别
- 什么是CAD定位功能?CAD定位功能如何使用?
- Jsp:WebRoot与WebContent区别
- Era of nostalgia?(怀旧时代的到来?)
- 计算机管理中打开移动硬盘磁盘必须格式化,最佳解决方案:无法打开移动硬盘分区,并且未格式化解决方案。...
- chrome如何分析页面加载时间
- pytz 的所有函数
- 记一次调试SIM7600CE使用物联网卡遇到的问题
- 召唤神龙-万宁版源码,游戏直播用不挂(麦田资源网)
- Open JDK 8.0_152-b16 崩溃 : [libzip.so+0x12522] newEntry+0x62