上一篇文章介紹了利用確定策略來解決連續(xù)控制問題的DDPG墨闲,現(xiàn)在再來介紹一種非常牛的用隨機(jī)策略來做連續(xù)控制的方法Soft Actor Critic (SAC) 。它是一種以off-policy的方式來優(yōu)化隨機(jī)策略的算法现喳,它的核心特點(diǎn)是熵正則化, 策略的訓(xùn)練在最大化預(yù)期回報和最大化熵之間作了個權(quán)衡教届,在這一點(diǎn)上實(shí)際也跟exploration還是exploitation有重大關(guān)系橙困,增加熵會導(dǎo)致更多探索,這可以加速之后的學(xué)習(xí)奋献,還可以防止策略過早地收斂到一個糟糕的局部最優(yōu)健霹。
熵和隨機(jī)策略
為了防止有些人不太清楚熵的概念旺上,在正式開始講SAC之前,我稍微介紹一下熵的概念糖埋,以及隨機(jī)策略的好處宣吱。
這里的熵指的是信息熵,它代表一個隨機(jī)變量所有可能取值的自信息 的加權(quán)求和:
正如上式所示瞳别,隨機(jī)變量越是隨機(jī)征候,熵就越大。根據(jù)熱力學(xué)第二定律祟敛,自然界本身無時無刻不處在于一個熵增的過程之中疤坝,即不斷走向混沌,而人類的奮斗進(jìn)程則是對抗自然的熵減過程馆铁,他期望變得明確和有序跑揉,強(qiáng)化學(xué)習(xí)的過程也是如此。
一般的埠巨,強(qiáng)化學(xué)習(xí)的目標(biāo)在于最大化獎勵历谍,即最大化動作狀態(tài)價值 ,確定策略可以直接選擇最大 的 來行動,但是這樣就會使得操作模式是固化的辣垒,比如訓(xùn)練一個機(jī)械臂去撿東西望侈,實(shí)際運(yùn)動軌跡可以多種多樣,而確定策略就會使這個動作變得很單調(diào)勋桶。 并且如果是在對抗的環(huán)境中甜无,這種固定化的操作也容易被對手利用而存在漏洞,而基于策略 隨機(jī)采樣的動作 來行動就可以有效避免這一點(diǎn)哥遮,并且 的熵越大岂丘,也便代表動作越隨機(jī),越能在同一情況下做出不同的動作眠饮,讓對手無法輕易預(yù)測奥帘,當(dāng)然在訓(xùn)練時鼓勵熵增帶來的探索優(yōu)化的好處也是不言而喻的。
隨機(jī)策略的Actor Critic方法
actor-critic方法依賴于策略梯度仪召,目標(biāo)是利用梯度上升來讓最大化寨蹋,因?yàn)槠谕缓们螅谑蔷陀妹商乜宸椒▉斫疲?br>
假設(shè)動作 是 維的扔茅,那么策略 使用個高斯分布 連乘的方式來近似 :
而其中的 和 使用神經(jīng)網(wǎng)絡(luò)來近似:
然后根據(jù)得到的個高斯分布來采樣得到行動已旧, 將其代入上面的, 便可以得到 , 現(xiàn)在還剩下 需要求。這個我們使用actor-critic中的critic對應(yīng)的價值網(wǎng)絡(luò) 來近似,于是整個網(wǎng)絡(luò)可以表示為:
然后用td算法來最小化target-q 和 q的差距來優(yōu)化價值網(wǎng)絡(luò)的參數(shù)召娜,整個訓(xùn)練過程就算跑通了运褪。
熵正則化
相對于A3C之類的算法只給策略網(wǎng)絡(luò)增加了熵正則,SAC給價值網(wǎng)絡(luò)也增加了熵正則,這樣鼓勵產(chǎn)生更多的狀態(tài)空間秸讹,進(jìn)一步增加了探索性檀咙,使得模型更具魯棒性。它的做法是通過修改了普通策略學(xué)習(xí)的目標(biāo)函數(shù)璃诀,在每一步的回報中增加了策略的熵弧可,于是目標(biāo)就變成了
于是策略梯度就變成了:
然后訓(xùn)練方式基本和普通的actor-critic架構(gòu)一致...
處理高估問題
如果只是像上面那樣的網(wǎng)絡(luò)來訓(xùn)練,很明顯會存在高估的問題劣欢,在最大化Q值時會導(dǎo)致高估棕诵,而在通過自身網(wǎng)絡(luò)來計算TD目標(biāo)的時候又將高估無限傳導(dǎo)進(jìn)一步導(dǎo)致了高估。因此凿将,為了解決高估問題年鸳,我們必須要斬斷這種傳導(dǎo)以及最大化帶來的高估。SAC采用了一個一個類似TD3算法中的clipped double-Q 技巧丸相。
如上圖所示,SAC使用兩個Q網(wǎng)絡(luò)彼棍,并通過取最小的Q值的方式來避免最大化帶來的高估灭忠,并且使用延遲的價值網(wǎng)絡(luò)(通過Polyak平均)來緩解bootstraping帶來的高估無限傳遞。具體是這樣一個訓(xùn)練過程:
- 通過策略網(wǎng)絡(luò)采樣動作進(jìn)行游戲座硕,記錄transition(state,action,reward,next_state)到 play buffer中
- 從play buffer獲取訓(xùn)練數(shù)據(jù)弛作,計算策略網(wǎng)絡(luò)和兩個Q網(wǎng)絡(luò),通過td算法來更新Q網(wǎng)絡(luò)华匾,使用Q值中較小的那個來更新V網(wǎng)絡(luò)映琳,再得到的V值后再使用梯度上升來更新策略網(wǎng)絡(luò),最后再用使用Polyak平均更新目標(biāo)V網(wǎng)絡(luò)蜘拉。
另外萨西,注意一點(diǎn),上面提到的那個策略熵平衡系數(shù) 可以手工設(shè)置超參數(shù)旭旭,也可以使用自動的方式調(diào)整的谎脯,工業(yè)上傾向于自動的方式。
參考資料
- Soft Actor-Critic
- Soft Actor-Critic: Off-Policy Maximum Entropy Deep Reinforcement Learning with a Stochastic Actor, Haarnoja et al, 2018
- Soft Actor-Critic Algorithms and Applications, Haarnoja et al, 2018
- Learning to Walk via Deep Reinforcement Learning, Haarnoja et al, 2018