功能描述:
圖中就是一個 OpenAI 利用 PPO 訓(xùn)練的機(jī)器人。它要學(xué)習(xí)走、跑、轉(zhuǎn)彎來嘗試接近球型的、隨機(jī)移動的目標(biāo);環(huán)境中還有一個會撞機(jī)器人的小球給它增大難度,所以它還要學(xué)會受到撞擊以后恢復(fù)平衡,甚至被撞倒以后重新站起來。
現(xiàn)有算法
近期的策略梯度的一類方法讓深度神經(jīng)網(wǎng)絡(luò)在控制任務(wù)中取得了明顯進(jìn)步,電腦游戲、三維運動、圍棋都是很好的例子。但是用策略梯度的方法取得好的結(jié)果也有一些難度,因為這類方法對迭代步驟數(shù)非常敏感:如果選得太小,訓(xùn)練過程就會慢得令人絕望;如果選得太大,反饋信號就會淹沒在噪聲中,甚至有可能讓模型表現(xiàn)雪崩式地下降。這類方法的采樣效率也經(jīng)常很低,學(xué)習(xí)簡單的任務(wù)就需要百萬級至十億級的總迭代次數(shù)。
為了解決方法中的這些問題,研究人員們已經(jīng)找到了 TRPO(Trust Region Policy Optimization,信任區(qū)域策略優(yōu)化)和 ACER(Sample Efficient Actor-Critic with Experience Replay,能高效采樣的帶有經(jīng)驗回放的表演者-評論者算法) 這樣的方法,對策略更新的大小做出限制或者另外的優(yōu)化。達(dá)到了這樣的效果,這些方法也就在別的方面付出了代價:ACER 比 PPO復(fù)雜得多,需要額外的代碼用于策略外的糾正以及一個回放緩沖區(qū),在 Atari 測試中的具體表現(xiàn)卻只比 PPO 勉強(qiáng)好一點點;TRPO 雖然在連續(xù)控制任務(wù)中很有用,但是對策略函數(shù)和價值函數(shù)或者輔助損失之間有共享參數(shù)的算法較難兼容,比如 Atari 和其它一些視覺輸入占據(jù)主要部分的任務(wù)就是這樣。
PPO
在監(jiān)督學(xué)習(xí)中,實現(xiàn)損失函數(shù)、在上面做梯度下降都很容易,而且基本上不費什么功夫調(diào)節(jié)超參數(shù)就肯定能夠得到很好的結(jié)果。但是在強(qiáng)化學(xué)習(xí)中想要獲得好結(jié)果就沒有這么簡單了,算法中有許多變化的部分導(dǎo)致難以 debug,而且需要花很大的精力在調(diào)試上才能得到好結(jié)果。PPO 則在實現(xiàn)的難易程度、采樣復(fù)雜度、調(diào)試所需精力之間取得了新的平衡,它在每一步迭代中都會嘗試計算新的策略,這樣可以讓損失函數(shù)最小化,同時還能保證與上一步迭代的策略間的偏差相對較小。
之前 OpenAI 就詳細(xì)介紹過 PPO的一個變種 (NIPS 2016 論文視頻:通過策略優(yōu)化進(jìn)行深度強(qiáng)化學(xué)習(xí)),其中用一個自適應(yīng) Kullback–Leibler 懲罰項控制每次迭代中的策略變化程度。現(xiàn)在介紹的這種新變種則使用了一種其它算法中罕見的全新的目標(biāo)函數(shù):
信任區(qū)域更新的功能就可以通過這種目標(biāo)函數(shù)得到實現(xiàn),它與隨機(jī)梯度下降兼容,而且移除了Kullback–Leibler 懲罰項及它的自適應(yīng)升級功能差,從而簡化了算法。在測試中,PPO 算法在連續(xù)控制任務(wù)中取得了最好的效果,而且在 Atari 游戲測試中的表現(xiàn)幾乎與 ACER 持平;考慮到 PPO 的簡便性,這樣的結(jié)果真是令人驚喜萬分。

OpenAI 的研究人員們設(shè)計了具有互動能力的機(jī)器人,然后用 PPO 訓(xùn)練它們的策略。在這些基于 Roboschool 環(huán)境的實驗中,可以用鍵盤給機(jī)器人設(shè)定新的目標(biāo)位置;盡管輸入的目標(biāo)序列與用來訓(xùn)練機(jī)器人的序列不同,機(jī)器人仍然可以進(jìn)行泛化。

除了 Roboschool 中這樣的簡單機(jī)器人,他們還用 PPO 教會復(fù)雜的仿真機(jī)器人走路,比如來自波士頓動力的 Atlas 的仿真模型。相比前面的雙足機(jī)器人的17個獨立關(guān)節(jié),這個模型中獨立關(guān)節(jié)的數(shù)目高達(dá)30個。也有一些其它的研究人員已經(jīng)成功借助 PPO 訓(xùn)練仿真機(jī)器人用精彩的跑酷動作跨越障礙。
基準(zhǔn)模型:PPO 和 TRPO
OpenAI 一并發(fā)布了包含大小可變的、并行實現(xiàn)的 PPO 和 TRPO 的基準(zhǔn)模型,兩者都用 MPI 作為數(shù)據(jù)傳遞模塊,Python3 和 TensorFlow 都可以支持。他們還把用于訓(xùn)練上文中的機(jī)器人的預(yù)訓(xùn)練模型增加到了 Roboschool 機(jī)器人動物園中。
聯(lián)系:highspeedlogic
QQ :1224848052
微信:HuangL1121
郵箱:1224848052@qq.com
網(wǎng)站:http://www.mat7lab.com/
網(wǎng)站:http://www.hslogic.com/
微信掃一掃:
|