ICLR2020满分论文:PPO带来的性能提升来源于code-level?

2020 年 1 月 9 日 极市平台

加入极市专业CV交流群,与6000+来自腾讯,华为,百度,北大,清华,中科院等名企名校视觉开发者互动交流!更有机会与李开复老师等大牛群内互动!

同时提供每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流。关注 极市平台 公众号 ,回复 加群,立刻申请入群~


来源:https://zhuanlan.zhihu.com/p/99061859
作者:风清云
本文来自知乎专栏,仅供学习参考使用,著作权归作者所有。 如有侵权,请私信删除。


笔者在新鲜出炉的ICLR中的一篇满分论文“Implematation matters in deep policy gradients: A Case Study On PPO And TRPO”中发现,作者通过对PPO与TRPO两种算法进行探索实验,发现: 给PPO带来真正的性能上(cumulative reward)提升以及将policy约束在trust region内的效果,都不是通过PPO论文中提出的对新的policy   和原policy   的比值进行裁切(clip)带来的,而是通过code-level的一些技巧带来的。



一、摘要


笔者直译水平一般,因此在这里仅写出笔者所理解的原文摘要表达的意思。


作者从代码层面上的优化,以及算法提出的核心改进两个方面上探索了近年来提出的著名的PPO和TRPO两种算法。通过探索实验发现,PPO中所使用的代码层面的优化技巧对agent的表现产生了极大的影响。因此,要真正地发现影响agent性能和行为的因素是非常重要也是非常困难的。(比如PPO算法中影响agent性能的主要因素竟然不是算法提出的裁切思想,而是未在论文上写明的代码层面上的优化)



二、简单回顾PPO与TRPO


TRPO(Trust Region Policy Optimization)[2]的核心优化公式如下:

提出这个公式的动机就是希望在policy     朝着最优方向优化的同时,相对于原policy     的变化程度不能过大(过大会带来噪声与高方差),这个变化程度就通过计算policy变化前后分布的KL散度来衡量,并将KL散度约束在阈值   内;


PPO(Proximal Policy Optimization)[3] 的核心优化公式如下:


PPO认为TRPO的缺陷在于计算复杂度过大(参考[3]),因此没有计算KL散度的约束,而是提出了更为简洁的优化目标,直接对新的policy  和原来的policy 的比值进行裁切,强行让其限制在某个范围内,并取裁切前后的   与Advantage function    乘积的最小值进行优化。


三、PPO论文中未提到的代码层面的优化技巧


作者在原文中共列出了9条在PPO的代码中用到而论文中未提出来的优化技巧,由于作者只是用了前4个优化技巧进行实验,因此笔者在这里只介绍前4个代码层面的技巧。


1、Value function clipping


在RL中计算TD-error时常用的表达式为:

而在PPO的代码中对值函数进行了裁切后,才计算TD-error:

2、Reward scaling(不知道scale怎么翻,反正就是乘个尺度)


在PPO的代码中没有直接使用env带来的直接奖励  ,而是维护了一个关于累积奖励的均值和标准差的变量,对每个新到来的奖励 均做了除以累积奖励的标准差的操作,具体过程如下:
来源:[1]

3、Orthogonal initialization and layer scaling


PPO的网络参数使用的是正交初始化,而不是随机初始化(这和常规不同)和layer scaling的技巧。


4、Adam learning rate annealing


PPO用的Adam优化方法,学习率是退火式下降的,而非固定不变的。(不是直接tf.train.Adamoptimizer(learning_rate).minimize(...))


后续的几个优化技巧很简单,比如对状态向量进行归一化,裁切,对奖励进行裁切,激活函数的选择等。具体参考[1]



四、实验结果


作者通过设计了五组算法来进行实验,五组算法分别如下表所示:

来源:[1]
其中,

PPO: 使用了PPO论文中提到的对     进行裁切的操作,也用到了代码层面的优化技巧;

PPO-M: 仅仅使用了PPO论文中提到的对 进行裁切的操作,没有使用任何代码层面的优化技巧;

PPO-NoCLIP: 仅仅使用代码层面的优化技巧,没有使用PPO论文中提到的对 进行裁切的操作;

TRPO: 使用了TRPO论文中的优化公式,但未使用任何代码层面的优化技巧;

TRPO+: 在TRPO中加入了PPO代码层面的优化技巧。

接下来,看看作者完成的实验:
来源:[1]
上面这个实验从agent的整体性能(Mean Reward)、policy的震荡程度(   ) 以及新policy     和原policy   的KL散度三个方面对比了TRPO,PPO以及PPO-M。


从上图(从左至右)可以看到:


(1)Mean Reward:绿色系PPO表现要明显优于蓝色系的PPO-M和紫色系的的TRPO,值得注意的是PPO-M去掉的是代码层面的优化技巧,TRPO也没有用到PPO在代码层面的优化技巧。 这表明了代码层面上的优化技巧对agent的整体性能影响较大。


(2) :紫色系的TRPO的policy的波动要远远超过绿色系的PPO和蓝色系的PPO-M,蓝色系的PPO-M略高于绿色系的PPO。笔者理解的是这个图是为了给第(3)幅图做铺垫,结合(2)和(3)以看出对不同算法对新policy     和原policy     的KL散度的约束能力。

(3)mean KL:在(2)中可以看到,紫色系的TRPO的policy波动极大,而经过约束后的平均KL散度已经稳定在   左右;而对于略高于PPO的PPO-M,其平均的KL散度却随着迭代次数的增长有线性甚至指数增长的趋势。注意PPO-M是仅仅使用了PPO论文中的裁切操作的,这表明PPO论文中的裁切操作并没有明显的约束KL散度的作用。


再来看两个更加清晰的表格。



来源:[1]


来源:[1]


表格内容可以理解为五中算法在不同TASK上的得分情况。根据上述表格,可以得出以下结论:


(1)PPO-M在三个TASK上的表现要明显逊于PPO,且TRPO在所有TASK中的表现均远逊于TRPO+。而这之间的差别是是否使用了代码层面的优化技巧,这表明了代码层面的优化技巧对agent的性能表现有很大的影响;


(2)PPO-NoCLIP和PPO在四个TASK上的表现可以说是无明显差别。这表明了PPO论文里提出的裁切技巧的使用与否对agent的性能表现没有很大的影响(至少不如代码层面的优化技巧带来的影响)。



五、总结


作者通过深入探索近几年提出的算法PPO和TRPO,并通过实验说明了给PPO带来良好的性能表现与约束policy的变化程度的效果更加可能是来源于代码层面的优化技巧,而不是来源于论文中所提到的对 的裁切技巧。

最后作者建议在设计RL算法时,应该仔细考虑算法中的每个部分可能对agent的性能带来的影响,一旦一个算法过于复杂,则难以分析究竟是哪一部分给agent带来的优异表现。


贴出作者原文的建议:


来源:[1]


笔者认为作者提出的建议是非常值得学习考虑的。现在到处用的都是Deep RL,如果不仔细理解每一个技巧能够带来的性能影响,而是code tricks以一把梭的形式全部扔到炉子里去炼,则得出的丹药所具备的功能都不知道来源于哪一味原材料,这是非常不严谨的。


参考文献:

【1】Implementation Matters in Deep RL: A Case Study on PPO and TRPO,openreview.net/forum?

【2】John Schulman, Sergey Levine, Pieter Abbeel, Michael Jordan, and Philipp Moritz. Trust region policy optimization. In International Conference on Machine Learning, pp. 1889–1897, 2015a.

【3】John Schulman, Filip Wolski, Prafulla Dhariwal, Alec Radford, and Oleg Klimov. Proximal policy optimization algorithms. arXiv preprint arXiv:1707.06347, 2017.



PS:点击阅读原文进入极市社区,能够直接跳转本文链接哦~


-End-





*延伸阅读


CV细分方向交流群


添加极市小助手微信(ID : cv-mart),备注:研究方向-姓名-学校/公司-城市(如:目标检测-小极-北大-深圳),即可申请加入目标检测、目标跟踪、人脸、工业检测、医学影像、三维&SLAM、图像分割等极市技术交流群(已经添加小助手的好友直接私信),更有每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流一起来让思想之光照的更远吧~



△长按添加极市小助手


△长按关注极市平台


觉得有用麻烦给个在看啦~  

登录查看更多
3

相关内容

在数学统计中,Kullback-Leibler散度(也称为相对熵)是衡量一个概率分布与第二个参考概率分布有何不同的一种度量。应用包括表征信息系统中的相对(香农)熵,连续时间序列中的随机性以及比较推论的统计模型时的信息增益。在简单的情况下,Kullback-Leibler散度为0表示所讨论的两个分布是相同的。 简而言之,它具有各种应用,例如应用统计,流体力学,神经科学和机器学习。
【Nature论文】深度网络中的梯度下降复杂度控制
专知会员服务
38+阅读 · 2020年3月9日
专知会员服务
44+阅读 · 2020年3月6日
新时期我国信息技术产业的发展
专知会员服务
69+阅读 · 2020年1月18日
49篇ICLR2020高分「图机器学习GML」接受论文及代码
专知会员服务
60+阅读 · 2020年1月18日
【ICLR2020】五篇Open代码的GNN论文
专知会员服务
47+阅读 · 2019年10月2日
ICLR 2020 高质量强化学习论文汇总
极市平台
12+阅读 · 2019年11月11日
2019 DR loss(样本不平衡问题)目标检测论文阅读
极市平台
11+阅读 · 2019年10月28日
最前沿:深度解读Soft Actor-Critic 算法
极市平台
53+阅读 · 2019年7月28日
大盘点 | 性能最强的目标检测算法
极市平台
9+阅读 · 2019年7月8日
【学界】DeepMind论文:深度压缩感知,新框架提升GAN性能
GAN生成式对抗网络
14+阅读 · 2019年5月23日
DeepMind论文:深度压缩感知,新框架提升GAN性能
极市平台
4+阅读 · 2019年5月23日
三分支网络——目前目标检测性能最佳网络框架
人工智能前沿讲习班
6+阅读 · 2019年3月5日
ECCV 2018 | Bi-box行人检测:‘行人遮挡’为几何?
极市平台
13+阅读 · 2018年9月30日
SIGIR2017 满分论文:IRGAN | 每周一起读
PaperWeekly
4+阅读 · 2017年6月19日
Arxiv
20+阅读 · 2019年9月7日
Logically-Constrained Reinforcement Learning
Arxiv
3+阅读 · 2018年12月6日
Deep Reinforcement Learning: An Overview
Arxiv
17+阅读 · 2018年11月26日
Arxiv
6+阅读 · 2018年3月12日
VIP会员
相关VIP内容
【Nature论文】深度网络中的梯度下降复杂度控制
专知会员服务
38+阅读 · 2020年3月9日
专知会员服务
44+阅读 · 2020年3月6日
新时期我国信息技术产业的发展
专知会员服务
69+阅读 · 2020年1月18日
49篇ICLR2020高分「图机器学习GML」接受论文及代码
专知会员服务
60+阅读 · 2020年1月18日
【ICLR2020】五篇Open代码的GNN论文
专知会员服务
47+阅读 · 2019年10月2日
相关资讯
ICLR 2020 高质量强化学习论文汇总
极市平台
12+阅读 · 2019年11月11日
2019 DR loss(样本不平衡问题)目标检测论文阅读
极市平台
11+阅读 · 2019年10月28日
最前沿:深度解读Soft Actor-Critic 算法
极市平台
53+阅读 · 2019年7月28日
大盘点 | 性能最强的目标检测算法
极市平台
9+阅读 · 2019年7月8日
【学界】DeepMind论文:深度压缩感知,新框架提升GAN性能
GAN生成式对抗网络
14+阅读 · 2019年5月23日
DeepMind论文:深度压缩感知,新框架提升GAN性能
极市平台
4+阅读 · 2019年5月23日
三分支网络——目前目标检测性能最佳网络框架
人工智能前沿讲习班
6+阅读 · 2019年3月5日
ECCV 2018 | Bi-box行人检测:‘行人遮挡’为几何?
极市平台
13+阅读 · 2018年9月30日
SIGIR2017 满分论文:IRGAN | 每周一起读
PaperWeekly
4+阅读 · 2017年6月19日
Top
微信扫码咨询专知VIP会员