主頁 > 知識(shí)庫 > OpenAI開放模擬機(jī)器人環(huán)境和HER算法,讓機(jī)器人從

OpenAI開放模擬機(jī)器人環(huán)境和HER算法,讓機(jī)器人從

熱門標(biāo)簽:電話機(jī)器人接通率 標(biāo)準(zhǔn)地圖標(biāo)注樣式 唐山電銷自動(dòng)外呼系統(tǒng) 膠州企業(yè)辦理400電話 西安電銷外呼系統(tǒng)加盟 外呼系統(tǒng)投訴電話 邢臺(tái)聯(lián)通400電話申請(qǐng) 瑪沁企業(yè)如何做地圖標(biāo)注 天津三五防封電銷卡
從錯(cuò)誤中吸取教訓(xùn)是人類能長(zhǎng)久保持優(yōu)勢(shì)的原因之一,即使我們做了失敗的嘗試,但至少有一部分是正確的,總結(jié)經(jīng)驗(yàn)后也能成功。 機(jī)器人也可以使用類似的試錯(cuò)法學(xué)習(xí)新任務(wù)。通過強(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)沒有幫助,而且能了解為什么失敗以及之后如何避免。這就使我們能比機(jī)器人更有效地學(xué)習(xí)。 今天,位于美國(guó)舊金山的人工智能研究機(jī)構(gòu)OpenAI發(fā)布了一款開源算法,名為Hindsight Experience Replay(HER),該算法將失敗作為成功的手段,讓機(jī)器人像人類一樣學(xué)習(xí)。 HER的重要特征是它能像人類一樣,即使沒有達(dá)到預(yù)期目標(biāo),但至少收獲了其他成果。那么為什么不假裝這就是最初想實(shí)現(xiàn)的目標(biāo)呢? Spectrum IEEE的編輯Evan Ackerman用比喻具體形容了HER的原理:想像一下你正要擊打棒球,目標(biāo)是全壘打。但是在第一次擊球時(shí),球出界了,雖然沒有做到全壘打,但是你卻知道了一種打出界球的方法。事后通過總結(jié),你可以這么想:“如果我的目標(biāo)就是打個(gè)出界球,那么剛剛的那一記擊球就是完美的!”雖然沒有打出全壘打,但仍然有了進(jìn)步。 HER的另一個(gè)優(yōu)點(diǎn)是它使用了研究人員所稱的“稀疏獎(jiǎng)勵(lì)”來指導(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ì)很有效,但是部署起來卻有些麻煩,并且在有些情況下并不是那么實(shí)用。大多數(shù)應(yīng)用非常關(guān)注結(jié)果,并且出于實(shí)用的目的,你可以從中取得成功,也可能不成功。稀疏獎(jiǎng)勵(lì)是指,機(jī)器人在成功后只得到一個(gè)cookie,這樣一來,該程序就更容易測(cè)量、編程和實(shí)施。但另一方面,這種方法可能會(huì)降低學(xué)習(xí)速度,因?yàn)闄C(jī)器人沒有獲得增量反饋,它只是被一遍又一遍地告訴“沒有cookie”,除非它非常幸運(yùn)地偶然成功了。 這就是HER的基本原理:它讓機(jī)器人通過分散獎(jiǎng)勵(lì)學(xué)習(xí),改變?cè)镜哪繕?biāo),把每次嘗試行為都看做成功,所以機(jī)器人每次都能學(xué)到一些東西。 通過這種方法,強(qiáng)化學(xué)習(xí)算法可以獲得學(xué)習(xí)信號(hào),因?yàn)樗呀?jīng)實(shí)現(xiàn)了一些目標(biāo);即使它不是你原本想達(dá)到的目標(biāo),如果重復(fù)這個(gè)過程,最終機(jī)器人也會(huì)實(shí)現(xiàn)任意一種目標(biāo),包括最初真正的目標(biāo)。 下面的視頻是HER方法與其他深度學(xué)習(xí)方法在實(shí)踐中的對(duì)比,左邊是新開發(fā)的HER方法,右邊是T. Lillicrap等人于2015年提出的深度決定性策略梯度(DDPG)方法: 最終的結(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í)了成功策略來完成這項(xiàng)具有挑戰(zhàn)性的任務(wù)。有趣的是,帶有密集獎(jiǎng)勵(lì)的DDPG+HER能夠?qū)W習(xí),但表現(xiàn)得卻不好。而Vanilla DDPG的兩種配置均不能學(xué)習(xí)。完整的實(shí)驗(yàn)結(jié)果可以在論文中查看。 OpenAI此次發(fā)布了八個(gè)Gym模擬機(jī)器人環(huán)境(Gym是OpenAI用于開發(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的問題 雖然HER對(duì)于學(xué)習(xí)稀疏獎(jiǎng)勵(lì)的復(fù)雜任務(wù)是很有前景的方式,但它仍存在改進(jìn)的空間。和OpenAI最近發(fā)布的Request for Research 2.0相似,研究人員針對(duì)HER的進(jìn)步提出了一下幾條想法: 事后自動(dòng)創(chuàng)建目標(biāo)。目前的HER使用硬編碼策略選擇目標(biāo),如果算法可以自動(dòng)學(xué)習(xí)應(yīng)該會(huì)很有趣。 無偏差HER。替換目標(biāo)以無原則的方式改變了經(jīng)驗(yàn)的分布。這種偏差在理論上會(huì)導(dǎo)致不穩(wěn)定,盡管在實(shí)踐中還沒有遇到這種情況。 HER+HRL。將HER與最近推出的層次強(qiáng)化學(xué)習(xí)(HRL)結(jié)合起來一定很有趣。這樣一來,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ò)來穩(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-policy HER。目前,HER只能與off-policy算法一起使用。但是,最近的算法如PPO的穩(wěn)定性非常好。所以我們可以研究一下HER能否與on-policy算法一起使用。 高頻動(dòng)作的強(qiáng)化學(xué)習(xí)。目前的強(qiáng)化學(xué)習(xí)算法對(duì)動(dòng)作過多的案例十分敏感,這就是為什么跳幀技術(shù)經(jīng)常用于雅達(dá)利游戲。在連續(xù)控制領(lǐng)域,動(dòng)作頻率越趨近于無窮,性能則越趨近于零。這是由兩個(gè)因素造成的:不一致的探索,和需要多次引導(dǎo)來傳播信息。 將HER與強(qiáng)化學(xué)習(xí)的最近進(jìn)展相結(jié)合。最近,強(qiáng)化學(xué)習(xí)在多個(gè)方面都有了很大進(jìn)步,它可以和優(yōu)先經(jīng)驗(yàn)回放(Prioritized Experience Replay)、分布強(qiáng)化學(xué)習(xí)(distributional RL)以及entropy-regularized RL或反向課程生成相結(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)境使用gym.spaces.Dict觀察空間。環(huán)境需要包含一個(gè)智能體嘗試達(dá)到的預(yù)期目標(biāo)(desired_goal)、一個(gè)目前已經(jīng)達(dá)到的目標(biāo)(achieved_goal)、以及實(shí)際觀察(observation),例如機(jī)器人的狀態(tài)。 我們公開環(huán)境的獎(jiǎng)勵(lì)函數(shù)以重新計(jì)算更換目標(biāo)之后的獎(jiǎng)勵(lì)。 下面是在新的基于目標(biāo)的環(huán)境中,執(zhí)行目標(biāo)替換時(shí)的簡(jiǎn)單例子: import numpy as np import gym env = gym.make('FetchReach-v0') obs = env.reset() done = False def policy(observation, desired_goal): # Here you would implement your smarter policy. In this case, # we just sample random actions. return env.action_space.sample() whilenotdone: action = policy(obs['observation'], obs['desired_goal']) obs, reward, done, info = env.step(action) # If we want, we can substitute a goal here and re-compute # the reward. For instance, we can just pretend that the desired # goal was what we achieved all along. substitute_goal = obs['achieved_goal'].copy() substitute_reward = env.compute_reward( obs['achieved_goal'], substitute_goal, info) print('reward is {}, substitute_reward is {}'.format( reward, substitute_reward)) 新的環(huán)境可以使用與Gym兼容的強(qiáng)化學(xué)習(xí)算法,如Baselines。用gym.wrappers.FlattenDictWrapper將基于字典的觀察空間壓縮成一個(gè)數(shù)組。 import numpy as np import gym env = gym.make('FetchReach-v0') # Simply wrap the goal-based environment using FlattenDictWrapper # and specify the keys that you would like to use. env = gym.wrappers.FlattenDictWrapper( env, dict_keys=['observation', 'desired_goal']) # From now on, you can use the wrapper env as per usual: ob = env.reset() print(ob.shape) # is now just an np.array

標(biāo)簽:銅陵 赤峰 福建 陽江 白銀 湘西 湖南 寶雞

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《OpenAI開放模擬機(jī)器人環(huán)境和HER算法,讓機(jī)器人從》,本文關(guān)鍵詞  OpenAI,開放,模擬,機(jī)器人,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《OpenAI開放模擬機(jī)器人環(huán)境和HER算法,讓機(jī)器人從》相關(guān)的同類信息!
  • 本頁收集關(guān)于OpenAI開放模擬機(jī)器人環(huán)境和HER算法,讓機(jī)器人從的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章