我认为最核心的区别是:Reinforcement Learning必须显式建模Policy, 而Evolution Strategy则无需显式建模Policy。

强化学习目标即优化Policy [公式] , 一个基本的需求是, [公式] 必须能够通过策略进行梯度回传,也就是 [公式] 必须可以显式表达。而对于Evolution Strategy来说,[公式]是可以完全不知道的。也就是说,只需要知道什么样的[公式]会得到什么样的反馈,连policy的具体表达形式都不需要。

所以,这也是为什么,我认为Evolution是比Reinforcement Learning适应更广的演算法。Reinforcement Learning相对于Supervised Learning来说,解决了reward和policy之间无法计算梯度的问题,而evolution解决了连policy自身都无法表达的问题


我又来当复读机了:

复杂场景下实际应用,ES的sample complexity大约是RL的1000倍左右

以上经验结论出自CS294-112课程ppt


谢邀

ES实在是了解不多,简单回答一下。

优点: 单次更新计算量小。因为ES是zeroth-order stochastic optimization,而PG是first-order,要算梯度。

缺点:

1. sample efficiency小。没有分散式基本上用不了。他的data efficiency是要和TRPO去比的,据说是十倍以内。但实际上现在TRPO大家都是嫌弃的。特别是,个人觉得应用价值很小,你拿个1000张卡的集群来跑这个?我有那个钱我为什么不用生产效率更高的演算法最大化我的收益?

2. 渐进性能我认为不会太高。你这篇ES我觉得也在求梯度,只不过是numerical derivative,会取不同dx然后按y大小加权。我觉得这个更新方向可能不太准,容易local optima。至于你提到方差的问题,方差小也就是比较稳定吧,也不能保证收敛的好,特别是你梯度更新方向都不一定准的,方差小有什么意义呢。


讲一个不太相关的,其实Policy Gradient等价于discrete-time Euler discretization下的 Replicator Dynamics.

https://arxiv.org/pdf/1906.00190.pdf


最近仔细看了这几篇ES,和之前直观想像的ES还是有挺大区别的。

ES作为zeroth-order optimization,可以理解为用sample的方式计算差分代替PG的first-order optimization,省下了bp的时间,花到了采样上。直观上导致的结果(我觉得)是增加了对landscape的exploration但降低了optimization的精度。当然如果给的算力足够强,就可以对周围的loss landscape有足够精确的估计。

之后的计算上是用ranking/top weighted sum/adam做优化之类的这些感觉就比较像工程上的trick了,包括ARS提出加state norm这些,思路上和ES没什么差别。在算力有限的情况下,ES的exploration能力更强,但梯度的更新方向更不准确。很像exploration-exploitation的经典dilemma

另一个好处是,由于是black box optimization,ES的parameterization有更大的自由度,model只需要forward pass,就不需要考虑backward的困难,例如想把Gaussian Mixture放到PG里会有各种各样的困难(numerical instable-&> 不能PPOseries,stochasticity-&> 不能DDPG series, kl计算-&> 不能SAC series...),但可以非常自然地放到ES中去优化。


策略梯度是贪心演算法,容易陷入局部最优。

进化策略搜索范围则大的多,收敛会更慢。


  • ES 不需要近似值函数,也不需要用bp来训练近似值函数;
  • ES 易于并行——这是OpenAI论文标题就指出的;
  • ES 的形式和有限差分近似梯度有些像,但是ES本身和有限差分差别还是比较大的,最主要就是其采样范围不比局限在一个很小范围内;

缺点方面,主要就是样本效率太差了


不要分的那么细,好像什么和什么都不一样似的。进化策略本质也是一种梯度,只不过是一个通过采样和加权重采样完成的统计梯度。其实,DL用的都是统计梯度下降,没什么本质区别。


推荐阅读:
相关文章