On-policy VS Off-policy
- On-policy: The agent learned and the agent interacting with the environment is the same.
-
Off-policy: The agent learned and the agent interacting with the environment is different.
On-policy
Off-policy

- 使用
來手機數(shù)據(jù),當(dāng)
已經(jīng)更新,我們要重新采樣訓(xùn)練數(shù)據(jù)
- 目標(biāo):用
采樣到的數(shù)據(jù)來訓(xùn)練
,
是固定的,所有我們可以重復(fù)使用采樣到的數(shù)據(jù)
Importance Sampling
代表從分布p中取樣本x送入f(x)并求期望,可以近似為從p中取N個
,然后代入f(x)求平均,即

現(xiàn)在假設(shè)我們不能從分布 p 中 sample 數(shù)據(jù),只能從分布 q 中 sample,這樣不能直接套上述近似。而要用:

即從p分布sample數(shù)據(jù)變?yōu)閺膓分布sample數(shù)據(jù),只需在后面乘上一個weight,即
Importance Sampling 存在的問題:

通過上述公式看出,即便兩者期望值一樣,但是他們的方差(variance)不同,兩式的區(qū)別在于紅框那里多了一項。
Issue of Importance Sampling

這幅圖具體說明了上述問題:藍線代表 p的分布,綠線代表 q 分布,紅線代表f(x)函數(shù),現(xiàn)在我們要從 p、q 分布中 sample 出 x ,投到f(x)中計算。
可以看出 p、q 分布對于f(x)的計算而言差別是很大的。如果sample次數(shù)不夠多,會造成只sample到每一種分布中,數(shù)量比較多的那些樣本,比如從p中sample,會容易sample到使f(x)小于0的x;從q中sample,會容易sample到使f(x)大于0的x。

可以看到,sample次數(shù)夠多的時候,可能就能sample到左邊的點,在這里可以人為給它設(shè)定一個很大的weight。
這樣sample到左邊綠線那個點的時候,會得到一個很大的值,這樣就會將原本應(yīng)該是正的f(x)拉回負的。
但這個前提是sample足夠多次。如果sample次數(shù)不夠多,就會造成

有很大的差別,這就是importance sampling的不足。
回到一開始,講了importance sampling后,我們知道如何由θ變?yōu)棣取?。?br>

使用 off-policy,使用梯度做參數(shù)更新時要注意的點:

-
是總計的reward減掉bias,即
,就是衡量在狀態(tài)
下采取行動用做
的回報。
是根據(jù)sample到的數(shù)據(jù)計算
- 因為是
與環(huán)境做互動,所以
要變?yōu)?img class="math-inline" src="https://math.jianshu.com/math?formula=A%5E%7B%5Ctheta%5E%5Cprime%7D(a_t%2Cs_t)" alt="A^{\theta^\prime}(a_t,s_t)" mathimg="1">
- 這里我們估計
,因為猜測 state 的出現(xiàn)與θ關(guān)系不大,況且這一項本來就無法計算,因為state出現(xiàn)的概率我們是不能控制或估計的。
-
可以直接計算,由此可以得到新的目標(biāo)函數(shù):
- 上標(biāo)
代表跟環(huán)境互動的,
是要更新的參數(shù)。
PPO / TRPO 算法
和
相差太多,就會導(dǎo)致結(jié)果錯誤
為了防止和
相差太多,就可以使用PPO算法

在原來的目標(biāo)函數(shù)后再加一項約束值 ,這個約束就像深度學(xué)習(xí)中的正則化項。
這一項和衡量和的差距,這里的差距指的是actor行為上的差距而不是參數(shù)上的差距。
下面這個是TRPO算法:

TRPO和PPO的區(qū)別:
TRPO在作梯度上升的時候,只對

求梯度上升,而

只作為一個額外的約束,很難計算。
而PPO的約束是放到式子中減去的一項,比較容易算。
所以,為了方便使用,而且兩者性能差不多,就直接使用PPO吧

PPO中和學(xué)習(xí)率有點類似,需要手動設(shè)置。我們可以**設(shè)定兩個閾值。經(jīng)過一次參數(shù)更新后,查看KL的值
- 如果大于最大值,說明
和
相差太大,懲罰項沒有發(fā)揮作用,需要加大
,加大懲罰。
- 反之則減小
,減小懲罰。
- 綠線代表min()函數(shù)的第一項的圖像,藍線代表min()函數(shù)的第二項的圖像,紅線代表最終min()函數(shù)的輸出結(jié)果。
- 若A>0,則取下圖左邊紅線部分,若A<0則取下圖右邊紅色部分。
- 這個式子其實就是讓
和
不要差距太大。
- 如果A(advantage function)>0,代表當(dāng)前的action是好的,所以我們希望越
大越好,但是
和
不能相差太多,所以設(shè)置了一個上界
;
- A<0,代表當(dāng)前的action是不好好的,所以我們希望越
越小越好,所以設(shè)置了一個下界
;
- 如果A(advantage function)>0,代表當(dāng)前的action是好的,所以我們希望越
TRPO / PPO2 等方法的實驗效果:

簡單說一下,PPO(Clip)是紫色的線,可以看到每個任務(wù)中的效果都是名列前茅。


