在強化學習中,為什麼TRPO和PPO演算法屬於On Policy的演算法?

時間 2021-05-06 16:02:43

1樓:毛飛飛

off 或者 on, 只與智慧型體計算的是Q還是V有關。PPO是通過舊策略取樣來估算新策略的V值,本質還是在計算當前策略取樣得到的V,所以取樣的策略和更新的策略是同乙個策略,所以它是on-policy。

真正的off-policy都是更新Q(s,a)的,比如DQN,DDPG,SAC。記錄的是 【S,a,r,S_next】,含義是當前狀態S下採用動作a,會得到r的獎勵,並轉移到下一狀態S_next。這一條記錄是遊戲環境的固有屬性,與策略無關,只要環境不變,記錄就可以重複使用。

因此,取樣的策略和更新的策略可以不一樣,是off-policy。

PPO是計算V(s)的,是Q(s,a)關於策略的積分,所以策略一變V馬上就會改變,因此用舊策略產生的資料來更新V是計算不出新策略的V的。PPO的解決方案是通過舊策略取樣來估算新策略的V值,本質還是在計算當前策略的V。當新舊策略相差不大時,兩者的交集佔新策略的很大一部分(想象兩個隔得很近的高斯分布的交集),可以通過舊策略乘以概率的比例來估計新策略的V值。

當新舊策略相差很大時,兩者的交集只是新策略的乙個角落(想象兩個隔得很遠的高斯分布的交集),舊策略的取樣的只能有效估計新策略的乙個角落,因此無法正常估計新策略的V值。雖然取樣的策略是舊策略,但是通過概率比值已經等效為新策略在取樣,可以理解為取樣的策略和更新的策略都是新策略,所以ppo是on-policy的。

2樓:藏起來

個人理解:PPO在小範圍內,也就是取樣時所採取的策略與train時的策略相差不大時,通過重要性取樣的原理,實際上是帶有off-policy的性質的。但是這並不完全符合off-policy的定義,所以它本質還是屬於on-policy的演算法。

3樓:

PPO是來自於TRPO思想的,能夠問出這個問題,估計沒有仔細檢查TRPO的推導過程。在TRPO推導的時候,有一些近似是必須在on-policy假設下才有效的。

4樓:躺平之王

先解釋on policy off policy。

policy iteration分兩步,policy evaluation和policy improvement。在monte carlo policy iteration中,存在兩種policy,一種做取樣完成第一步,也就是在取樣的traj上算value或者advantage,第二種是需要improve的policy。

on-policy在這裡指,取樣策略和改進策略是同乙個,off-policy則相反,取樣和需要改進的策略不相同,但是policy evaluation目的是估計改進策略的值,所以在policy improvement會用到importance sampling。

你犯的錯誤是把importance sampling和off-policy劃等號了。

上面說的方法objective是maximize return,但是trpo和ppo的objective不是這個,他們間接地maximize return improvement: R(theta_prime)-R(theta)。R表示return,theta是策略的引數,prime指更新後的引數。

在trpo和ppo推導中使用的importance sampling是為了把對pi(theta_prime)的期望換成pi(theta)的,理由是theta_prime是更新後的density我們是不知道的。

trpo和ppo是on policy的,因為做過importance sampling之後,期望是對改進策略的,即取樣就是用當前策略。

希望這個回答有幫助。手機打字見諒。

5樓:響噹噹的人物

狹義的On和off的區別僅僅在於,你用來更新策略的樣本分佈是否與策略生成的分布嚴格相同。注意是嚴格相同。

在trpo和ppo裡,用來更新策略的樣本都是由策略生成的,用完就扔了,所以是on policy的。至於為什麼是on policy,因為理論推導時,有一些步驟依賴於on policy 的取樣才嚴格成立。具體可參見trpo附錄。

樓上說的trpo前後策略約相等,是推導出策略的單調優化的必要條件。跟on policy和off policy無關。

廣義的on policy可以理解為對策略梯度的無偏估計,比如用最基本的trick importance sampling。還有一些相對更新的方法,比如q prop的gradient estimator。

6樓:Ming

個人理解,trpo和ppo只是假裝用了off policy,因此他的update不能離原policy太遠,否則會變得很不stable。update之後sample就全扔了,然後用新的policy來collect sample,本質上還是on policy。而真正的off policy像ddpg,sac所有sample都是可以一直留著的。

強化學習中,如果狀態轉移函式P和獎勵函式R均已知,是否就退化為動態規劃問題,不能稱之為強化學習了?

Frank Tian 是的,退化為了動態規劃問題。但是,依舊可以被稱為強化學習問題。如果狀態轉移函式P和獎賞函式R已知,這意味著agent對環境建模了,也就是所謂的model based,接下來我們只需要動態規劃就可以找到最優策略。這樣的方法這叫做,間接強化學習。沒錯,只用動態規劃也依舊是強化學習。...

強化學習中q learning和MDP的區別是什麼?

YANG MDP是乙個描述決策問題的概率模型,q learning是乙個演算法。你說相似是因為q learning解的就是bellman optimal equation,在MDP裡的value function的定義就是bellman equation。和q learning等價的是各種值迭代的演...

強化學習過程中為什麼action最後總會收斂到設定的行為空間的邊界處?

小小程式猿 前兩天我也遇到這個問題,我的DDPG最後在測試集合上基本只產生兩個邊界值,在經過長時間的調參以後,我發現原因主要是有以下幾點 網路沒有訓練好,關於這一點,又可以細分為以下幾點訓練樣本的資料分布非常的不均勻,可能你的樣本資料裡面就只在乙個很小的區間分布。解決方案 將樣本分佈較少的區間去掉,...