首先我們回顧一下“策略梯度方法(PG)”和“信賴(lài)域策略?xún)?yōu)化(TRPO)”座菠。
1.策略梯度方法(PG)
策略梯度方法通過(guò)計(jì)算策略梯度的估計(jì)并利用隨機(jī)梯度上升算法來(lái)工作。 最常用的梯度估計(jì)形式為:
其中為隨機(jī)策略,
是優(yōu)勢(shì)函數(shù)在時(shí)間步
的估計(jì)情连,在使用自動(dòng)微分器時(shí)迫淹,我們的損失函數(shù)為:
2.信賴(lài)域策略?xún)?yōu)化(TRPO)
要優(yōu)化的目標(biāo)函數(shù)如下:
3.近端策略?xún)?yōu)化算法(PPO)
PPO1:截?cái)嗵娲繕?biāo)
首先,我們令铺浇,所以
痢畜。
的替代目標(biāo)為
上標(biāo)指的是
中的保守政策迭代,如果沒(méi)有約束鳍侣,最大化
將會(huì)導(dǎo)致非常大幅度的梯度更新丁稀。為了懲罰策略的變化(即
遠(yuǎn)離1,即新舊策略的KL 散度不能太大)倚聚,提出了如下的目標(biāo)
論文中线衫,直觀示意圖如下
該算法的意思為:
當(dāng)A>0時(shí),如果惑折,則
授账;如果
,則
;
當(dāng)A<0時(shí)惨驶,如果白热,則
;如果
粗卜,則
;
PPO2:自適應(yīng)KL懲罰系數(shù)
在中屋确,使用“自適應(yīng)懲罰系數(shù) ”
來(lái)約束KL散度,在此算法的最簡(jiǎn)單實(shí)例中,我們?cè)诿總€(gè)策略更新中執(zhí)行以下步驟:
- 使用多個(gè)的minibatch SGD乍恐,優(yōu)化KL懲罰的目標(biāo)
- 計(jì)算
如果
评疗,
如果
,
實(shí)驗(yàn)中茵烈,PPO2的效果沒(méi)有PPO1的效果好
4.算法
其中百匆,
是系數(shù),
表示熵獎(jiǎng)勵(lì)呜投,
是平方誤差損失
優(yōu)勢(shì)估計(jì)函數(shù)為
另外加匈,我們可以使用廣義優(yōu)勢(shì)函數(shù)來(lái)擴(kuò)廣,當(dāng)λ= 1時(shí)仑荐,它會(huì)趨近到等式(7)
使用固定長(zhǎng)度軌跡段的近端策略?xún)?yōu)化(PPO)算法如下所示雕拼。 每次迭代時(shí),N個(gè)actor中的每個(gè)都收集T個(gè)時(shí)間步長(zhǎng)的數(shù)據(jù)粘招。 然后我們?cè)谶@些NT時(shí)間步長(zhǎng)的數(shù)據(jù)上構(gòu)建替代損失啥寇,并使用 minibatch SGD(或通常為了更好的性能,Adam )進(jìn)行K個(gè)epochs的優(yōu)化洒扎。