我認為最核心的區別是: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用的都是統計梯度下降,沒什麼本質區別。


推薦閱讀:
相關文章