從錯(cuò)誤中吸取教訓(xùn)是人類(lèi)能長(zhǎng)久保持優(yōu)勢(shì)的原因之一,即使我們做了失敗的嘗試,但至少有一部分是正確的,總結(jié)經(jīng)驗(yàn)后也能成功。
機(jī)器人也可以使用類(lèi)似的試錯(cuò)法學(xué)習(xí)新任務(wù)。通過(guò)強(qiáng)化學(xué)習(xí),機(jī)器人嘗試用不同的方法做一件事,如果嘗試的方法有效則會(huì)獲得獎(jiǎng)勵(lì)。給予獎(jiǎng)勵(lì)生成的強(qiáng)化,機(jī)器人會(huì)不斷嘗試直到成功到達(dá)目標(biāo)。
人與機(jī)器的不同之處在于我們?nèi)绾螐氖『统晒χ袑W(xué)習(xí),從中我們不僅知道哪些東西對(duì)實(shí)現(xiàn)目標(biāo)沒(méi)有幫助,而且能了解為什么失敗以及之后如何避免。這就使我們能比機(jī)器人更有效地學(xué)習(xí)。
今天,位于美國(guó)舊金山的人工智能研究機(jī)構(gòu)OpenAI發(fā)布了一款開(kāi)源算法,名為HindsightExperienceReplay,該算法將失敗作為成功的手段,讓機(jī)器人像人類(lèi)一樣學(xué)習(xí)。
HER的重要特征是它能像人類(lèi)一樣,即使沒(méi)有達(dá)到預(yù)期目標(biāo),但至少收獲了其他成果。那么為什么不假裝這就是最初想實(shí)現(xiàn)的目標(biāo)呢?
SpectrumIEEE的
HER的另一個(gè)優(yōu)點(diǎn)是它使用了研究人員所稱(chēng)的“稀疏獎(jiǎng)勵(lì)”來(lái)指導(dǎo)學(xué)習(xí)。獎(jiǎng)勵(lì)是我們?nèi)绾胃嬖V機(jī)器人它們的所作所為對(duì)強(qiáng)化學(xué)習(xí)是好事還是壞事。大多數(shù)強(qiáng)化學(xué)習(xí)算法使用的是“密集獎(jiǎng)勵(lì)”,機(jī)器人根據(jù)完成目標(biāo)的程度獲得不同大小的cookies。這些cookies可以單獨(dú)獎(jiǎng)勵(lì)任務(wù)的一個(gè)方面,并在某種程度上幫助指導(dǎo)機(jī)器人按照指示的方式學(xué)習(xí)。
密集獎(jiǎng)勵(lì)很有效,但是部署起來(lái)卻有些麻煩,并且在有些情況下并不是那么實(shí)用。大多數(shù)應(yīng)用非常關(guān)注結(jié)果,并且出于實(shí)用的目的,你可以從中取得成功,也可能不成功。稀疏獎(jiǎng)勵(lì)是指,機(jī)器人在成功后只得到一個(gè)cookie,這樣一來(lái),該程序就更容易測(cè)量、編程和實(shí)施。但另一方面,這種方法可能會(huì)降低學(xué)習(xí)速度,因?yàn)闄C(jī)器人沒(méi)有獲得增量反饋,它只是被一遍又一遍地告訴“沒(méi)有cookie”,除非它非常幸運(yùn)地偶然成功了。
這就是HER的基本原理:它讓機(jī)器人通過(guò)分散獎(jiǎng)勵(lì)學(xué)習(xí),改變?cè)镜哪繕?biāo),把每次嘗試行為都看做成功,所以機(jī)器人每次都能學(xué)到一些東西。
通過(guò)這種方法,強(qiáng)化學(xué)習(xí)算法可以獲得學(xué)習(xí)信號(hào),因?yàn)樗呀?jīng)實(shí)現(xiàn)了一些目標(biāo);即使它不是你原本想達(dá)到的目標(biāo),如果重復(fù)這個(gè)過(guò)程,最終機(jī)器人也會(huì)實(shí)現(xiàn)任意一種目標(biāo),包括最初真正的目標(biāo)。
下面的視頻是HER方法與其他深度學(xué)習(xí)方法在實(shí)踐中的對(duì)比,左邊是新開(kāi)發(fā)的HER方法,右邊是T.Lillicrap等人于2015年提出的深度決定性策略梯度方法:
最終的結(jié)果對(duì)比差別非常大:
HandManipulateBlockRotateXYZ-v0上四個(gè)不同配置下的中位測(cè)試成功率。數(shù)據(jù)繪制于訓(xùn)練時(shí)期,每種配置下每隔五個(gè)隨機(jī)種子就進(jìn)行總結(jié)
帶有稀疏獎(jiǎng)勵(lì)的DDPG+HER明顯優(yōu)于其他所有配置,并且只從稀疏獎(jiǎng)勵(lì)中學(xué)習(xí)了成功策略來(lái)完成這項(xiàng)具有挑戰(zhàn)性的任務(wù)。有趣的是,帶有密集獎(jiǎng)勵(lì)的DDPG+HER能夠?qū)W習(xí),但表現(xiàn)得卻不好。而VanillaDDPG的兩種配置均不能學(xué)習(xí)。完整的實(shí)驗(yàn)結(jié)果可以在論文中查看。
OpenAI此次發(fā)布了八個(gè)Gym模擬機(jī)器人環(huán)境(Gym是OpenAI用于開(kāi)發(fā)和比較強(qiáng)化學(xué)習(xí)算法的工具包,它能教智能體各種任務(wù),比如走路、打乒乓球或玩彈球等),其中四個(gè)用于Fetch研究平臺(tái),四個(gè)用于ShadowHand機(jī)器人,使用的是MuJoCo物理模擬引擎。
Fetch上的四個(gè)環(huán)境
將機(jī)械臂末端以最快速度移動(dòng)到目標(biāo)位置
擊中灰色目標(biāo),使其滑動(dòng)到桌上一固定位置
用機(jī)械臂末端推動(dòng)正方體使其到達(dá)目標(biāo)位置
機(jī)械臂抓取桌上的正方體,并停留在桌子上方某固定位置
ShadowHand上的四個(gè)環(huán)境
將拇指和另一個(gè)手指移動(dòng)到指定位置
在手上翻轉(zhuǎn)正方體直到達(dá)到預(yù)期位置
在手上翻轉(zhuǎn)彩蛋直到達(dá)到預(yù)期位置
在手上轉(zhuǎn)筆直到達(dá)到預(yù)期位置
HER的問(wèn)題
雖然HER對(duì)于學(xué)習(xí)稀疏獎(jiǎng)勵(lì)的復(fù)雜任務(wù)是很有前景的方式,但它仍存在改進(jìn)的空間。和OpenAI最近發(fā)布的RequestforResearch2.0相似,研究人員針對(duì)HER的進(jìn)步提出了一下幾條想法:
事后自動(dòng)創(chuàng)建目標(biāo)。目前的HER使用硬編碼策略選擇目標(biāo),如果算法可以自動(dòng)學(xué)習(xí)應(yīng)該會(huì)很有趣。
無(wú)偏差HER。替換目標(biāo)以無(wú)原則的方式改變了經(jīng)驗(yàn)的分布。這種偏差在理論上會(huì)導(dǎo)致不穩(wěn)定,盡管在實(shí)踐中還沒(méi)有遇到這種情況。
HER+HRL。將HER與最近推出的層次強(qiáng)化學(xué)習(xí)結(jié)合起來(lái)一定很有趣。這樣一來(lái),HER不僅僅可以應(yīng)用到目標(biāo)上,還能應(yīng)用到較高層次的策略生成的動(dòng)作上。例如,如果較高層次命令低層次實(shí)現(xiàn)目標(biāo)A,結(jié)果實(shí)現(xiàn)了目標(biāo)B,那么我們可以假設(shè)高層次原本命令的是目標(biāo)B。
更豐富的價(jià)值函數(shù)。擴(kuò)展最近的研究,并在額外的輸入上調(diào)整價(jià)值函數(shù),例如折扣因子或成功閾值。
更快的信息傳播。大多數(shù)off-policy深度強(qiáng)化學(xué)習(xí)算法使用目標(biāo)網(wǎng)絡(luò)來(lái)穩(wěn)定訓(xùn)練。然而,由于改變需要時(shí)間傳播,就會(huì)限制訓(xùn)練的速度。我們注意到在我們的實(shí)驗(yàn)中,這是決定DDPG+HER學(xué)習(xí)速度最重要的因素。
HER+多步驟回報(bào)。由于我們更換了目標(biāo),HER上的實(shí)驗(yàn)是off-policy的。所以用多步驟回報(bào)使用它就變得困難了。然而,多步驟回報(bào)能讓信息傳播的速度更快,所以也是可行的。
On-policyHER。目前,HER只能與off-policy算法一起使用。但是,最近的算法如PPO的穩(wěn)定性非常好。所以我們可以研究一下HER能否與on-policy算法一起使用。
高頻動(dòng)作的強(qiáng)化學(xué)習(xí)。目前的強(qiáng)化學(xué)習(xí)算法對(duì)動(dòng)作過(guò)多的案例十分敏感,這就是為什么跳幀技術(shù)經(jīng)常用于雅達(dá)利游戲。在連續(xù)控制領(lǐng)域,動(dòng)作頻率越趨近于無(wú)窮,性能則越趨近于零。這是由兩個(gè)因素造成的:不一致的探索,和需要多次引導(dǎo)來(lái)傳播信息。
將HER與強(qiáng)化學(xué)習(xí)的最近進(jìn)展相結(jié)合。最近,強(qiáng)化學(xué)習(xí)在多個(gè)方面都有了很大進(jìn)步,它可以和優(yōu)先經(jīng)驗(yàn)回放(PrioritizedExperienceReplay)、分布強(qiáng)化學(xué)習(xí)(distributionalRL)以及entropy-regularizedRL或反向課程生成相結(jié)合。
在論文中你可以找到關(guān)于新Gym環(huán)境應(yīng)用的更多信息。
使用基于目標(biāo)的環(huán)境
引入“目標(biāo)”概念需要對(duì)現(xiàn)有Gym的API進(jìn)行一些反向兼容更改:
所有基于目標(biāo)的環(huán)境使用觀(guān)察空間。環(huán)境需要包含一個(gè)智能體嘗試達(dá)到的預(yù)期目標(biāo)、一個(gè)目前已經(jīng)達(dá)到的目標(biāo)、以及實(shí)際觀(guān)察,例如機(jī)器人的狀態(tài)。
我們公開(kāi)環(huán)境的獎(jiǎng)勵(lì)函數(shù)以重新計(jì)算更換目標(biāo)之后的獎(jiǎng)勵(lì)。
下面是在新的基于目標(biāo)的環(huán)境中,執(zhí)行目標(biāo)替換時(shí)的簡(jiǎn)單例子:
importnumpyasnp
importgym
env=('FetchReach-v0')
obs=()
done=False
defpolicy(observation,desired_goal):
#Hereyouwouldimplementyoursmarterpolicy.Inthiscase,
#wejustsamplerandomactions.
return_()
whilenotdone:
action=policy(obs['observation'],obs['desired_goal'])
obs,reward,done,info=(action)
#Ifwewant,wecansubstituteagoalhereandre-compute
#thereward.Forinstance,wecanjustpretendthatthedesired
#goalwaswhatweachievedallalong.
substitute_goal=obs['achieved_goal'].copy()
substitute_reward=_reward(
obs['achieved_goal'],substitute_goal,info)
print('rewardis{},substitute_rewardis{}'.format(
reward,substitute_reward))
新的環(huán)境可以使用與Gym兼容的強(qiáng)化學(xué)習(xí)算法,如Baselines。用將基于字典的觀(guān)察空間壓縮成一個(gè)數(shù)組。
importnumpyasnp
importgym
env=('FetchReach-v0')
#Simplywrapthegoal-basedenvironmentusingFlattenDictWrapper
#andspecifythekeysthatyouwouldliketouse.
env=(
env,dict_keys=['observation','desired_goal'])
#Fromnowon,youcanusethewrapperenvasperusual:
ob=()
print()#isnowjustan
上一篇:立鏢分揀機(jī)器人,鈦米消毒機(jī)器人入選國(guó)家首批5G醫(yī)療醫(yī)用優(yōu)秀案例應(yīng)用
下一篇:沒(méi)有了