讀論文Trust Region Policy Optimization

這篇論文的作者星光閃耀,都是大牛級人物,而且是最頂尖的那種。第一作者是Schulman(cs294課程的主講人)、Levine和Abbeel也在作者名單裏面。

論文首先通過一些surrogate目標函數來保證較大的步長來進行策略優化和提升,然後通過一系列的近似來推出理論公式和實際工程可行的算法,這就是鼎鼎大名的TRPO算法

論文通過一系列測試說明TRPO算法能夠學到複雜的策略比如游泳,跳和走,以及通過圖像學習Atari遊戲。

下面這個公式就是我們的目標函數,表明的是一個策略代表的累積收益。我們的任務是找到一個策略迭代的途徑似的這個函數不斷迭代直到取得最大值。

從這個公式繼續推導可以看出,在從一個策略優化到新的策略的時候,只要保證每個狀態S下,保持一個非負的advantage,新的策略肯定是更優的。

這裏最難的地方在於

是沒法採樣,而且很難計算優化掉的,所以論文采用了下面的surrogate函數

下面的公式4表明通過梯度來迭代優化我們選的surrogate函數,就可以迭代優化我們的目標函數,但是多大的步長合適是沒法保證的

參考以前這方面論文的一些結論,和自己的證明,得出下面的理論:

到這裏我們可以使用minorization-maximization (MM) algorithm來通過迭代不斷優化L的值,目標函數就可以同步得到優化。

TRPO算法就是上面這個公式的近似,但是如果通過一個懲罰係數,我們沒法找到最合適的步長。在算法中,我們使用計算新的策略和老的策略之間的kl散度(也就是他們的距離),只要保證他們距離在一個合理範圍內,我們就可以保證是在一個安全的範圍中進行策略更新。公式更新如下:

展開L函數,

根據上面的公式我們基本就可以通過採樣進行迭代優化了。

KL散度是可以通過Fisher information matrix來表達的,下面的公式沒有明確出現在論文裏(在附錄中有說明),是在Abbeel的技術演講中給出的。個人感覺更形象說明問題:

我嘗試用我的理解說明一下。我們期望是按照最陡峭的方向來迭代更新我們的網絡,數據效率最高,收斂最快。要解決的問題有兩個,第一個是梯度方向,第二個是優化步長。梯度方向這篇論文講的不多,但是他提到另外一篇論文講nature gradient的,基本思想是說我們按照採樣求出的梯度方向並不是最好的方向,這也比較容易理解,受採樣和參數誤差的影響,在深度學習中,除了最常見的Stochastic gradient descent以及Mini-batch gradient descen,還有Momentum、Nesterov accelerated gradient、Adagrad、RMSprop以及Adam等各種各樣的梯度下降方法。

策略梯度方向的計算是通過這個公式Ax=g來確定, 其中A就是fisherinformation matrix,方向確定了,步長確定就是這篇論文的中心了,在深度學習中,步長調整也有一些策略,比如剛剛開始大一點,到以後小一點,既保證了收斂速度,又儘可能減少震盪。在策略梯度中,步長選的不合適後果嚴重的多,上一次迭代還是在山峯,下一次迭代變成了懸崖下,而且選擇一個非常差的策略後,我們會在這個策略下進行採樣,並沒有確保的手段使得我們能重新回到原來的那個好的策略,所以策略梯度中,步長問題是非常重要的一個問題,論文主要的思想在保證安全的情況下最大化的提高步長,就是我們上面看到的一系列的公式推導和下面的這個結論了。保證theta的兩次迭代的距離不超過一個參數,保證下次迭代的策略仍然是安全的,當取最大值的時候就是安全的最大更新步長。

論文的算法部分主要是這些了,另外就是如何採樣和估算Q,論文提出了兩種辦法:

最後提一句,目前爲止,在openAI的gym的測試環境中,表現最好的就是TRPO-GAE算法(2016年的論文,在這篇論文基礎上有了進一步的演進),後面的計劃中也會讀這篇論文。


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章