|
近年來(lái),強(qiáng)化學(xué)習(xí)取得了一些驚人的成功,比如,與人類職業(yè)選手在經(jīng)典即時(shí)戰(zhàn)略電腦游戲《星際爭(zhēng)霸2》對(duì)戰(zhàn)中,取得壓倒性勝利,在圍棋“人機(jī)大戰(zhàn)”中成功擊敗人類頂尖圍棋高手。這成就令人印象深刻。就像AlphaZero(最新的Go播放代理)那樣,它從稀疏的二進(jìn)制獎(jiǎng)勵(lì)中學(xué)習(xí),它要么贏了,要么就輸了。在沒(méi)有中間獎(jiǎng)勵(lì)的情況下學(xué)習(xí)極其困難,因?yàn)閍gent可能永遠(yuǎn)不會(huì)獲得真正的勝利,因此沒(méi)有關(guān)于如何改善其性能的反饋。顯然,像Go和星際爭(zhēng)霸2這樣的游戲(至少在比賽中的表現(xiàn)方式)具有一些獨(dú)特的品質(zhì),可以用這些二元獎(jiǎng)勵(lì)來(lái)學(xué)習(xí):它們是對(duì)稱的零和游戲。我現(xiàn)在不打算進(jìn)一步討論這個(gè)問(wèn)題,但我可能會(huì)在未來(lái)的文章中使用AlphaZero背后的算法。 問(wèn)題是,大多數(shù)問(wèn)題都不是對(duì)稱的零和游戲,我們通常沒(méi)有反饋也沒(méi)有學(xué)習(xí)。舉個(gè)例子,我們可以看一個(gè)名為Mountain-Car的經(jīng)典RL問(wèn)題。在這個(gè)問(wèn)題上,一輛汽車正試圖到達(dá)山頂掛旗幟的地方,但由于它沒(méi)有足夠的加速度直接向山上行駛,它必須來(lái)回?cái)[動(dòng)以獲得速度并最終達(dá)到目標(biāo)。 只要汽車沒(méi)有到達(dá)旗幟的位置,每一步都會(huì)獲得-1的獎(jiǎng)勵(lì),直到完成固定的步數(shù)之后終止。經(jīng)常使用的一種實(shí)用方法是使用領(lǐng)域知識(shí)來(lái)增加獎(jiǎng)勵(lì),即所謂的獎(jiǎng)勵(lì)工程或獎(jiǎng)勵(lì)塑造。在我們的山地車示例中,由于我們知道汽車必須收集速度來(lái)登山,所以合理的方法是將汽車的速度加到獎(jiǎng)勵(lì)上,鼓勵(lì)它加快速度。如果我們仔細(xì)地設(shè)計(jì)獎(jiǎng)勵(lì),agent就會(huì)加快速度,最終偶然發(fā)現(xiàn)旗幟,并避免一些本來(lái)會(huì)得到的負(fù)面獎(jiǎng)勵(lì)。 這種方法的問(wèn)題在于它并不總是容易做到的。在某些情況下,我們可能不知道如何塑造獎(jiǎng)勵(lì)以協(xié)助學(xué)習(xí);換句話說(shuō),我們必須知道如何解決問(wèn)題才能正確塑造獎(jiǎng)勵(lì)。這種知識(shí)并不總是可用,特別是對(duì)于困難問(wèn)題。另一個(gè)危險(xiǎn)是,一旦我們?cè)O(shè)計(jì)了獎(jiǎng)勵(lì),我們就不再直接針對(duì)我們真正感興趣的指標(biāo)進(jìn)行優(yōu)化,而是優(yōu)化一個(gè)agent,這將使學(xué)習(xí)過(guò)程更容易。這可能導(dǎo)致相對(duì)于真實(shí)目標(biāo)的性能折衷,有時(shí)甚至?xí)?dǎo)致意外和不需要的行為,這可能需要經(jīng)常微調(diào)工程獎(jiǎng)勵(lì)以使其正確。 多目標(biāo)RL 許多著名的RL成就的另一個(gè)不同方面是,這些游戲關(guān)注的是一個(gè)非常具體的目標(biāo),例如“在突圍中獲得盡可能多的得分”。在這些問(wèn)題中,agent會(huì)觀察狀態(tài),選擇一種行動(dòng)并獲得獎(jiǎng)勵(lì)。在這種情況下,我們的policy 可以表達(dá)為: 其中'a'是候選動(dòng)作,'s'是當(dāng)前狀態(tài)。 但是,許多現(xiàn)實(shí)問(wèn)題并非如此,我們必須執(zhí)行一項(xiàng)全局任務(wù)。在許多情況下,我們希望我們的agent能夠?qū)崿F(xiàn)許多不同的目標(biāo),例如“獲取紅球”,還可以“獲取綠色立方體”。我并不是說(shuō)agent需要以某種方式立即執(zhí)行這些目標(biāo),而是我們希望它能夠根據(jù)請(qǐng)求執(zhí)行任何這些任務(wù)。在這種情況下,我們可以把我們的policy表述為 : 其中'g'是期望的目標(biāo)。在本文中,我們將把目標(biāo)視為我們希望我們的agent達(dá)到的狀態(tài)。這是一個(gè)多目標(biāo)學(xué)習(xí)問(wèn)題。如果我們將多目標(biāo)問(wèn)題與稀疏二元獎(jiǎng)勵(lì)的額外難度結(jié)合起來(lái),我們就會(huì)陷入一些真正的困難。 在他們的論文“Hindsight Experience Replay”中,OpenAI的研究人員給出了一個(gè)這樣一個(gè)問(wèn)題的簡(jiǎn)單例子。假設(shè)我們有一個(gè)由二進(jìn)制數(shù)(0-1)向量組成的狀態(tài),我們希望訓(xùn)練一個(gè)agent來(lái)達(dá)到任意給定的二進(jìn)制目標(biāo)向量??赡艿牟僮魇敲看吻袚Q一個(gè)位,對(duì)于沒(méi)有達(dá)到目標(biāo)的每個(gè)時(shí)間步,獎(jiǎng)勵(lì)-1。顯然,如果我們將狀態(tài)和目標(biāo)向量的大小設(shè)置得足夠大,我們就沒(méi)有希望使用傳統(tǒng)方法解決這個(gè)問(wèn)題。隨機(jī)交換位的機(jī)會(huì),無(wú)意中被期望的目標(biāo)向量是不可能的,甚至使用專門的探索方法我們都很有可能會(huì)失敗,因?yàn)槊總€(gè)目標(biāo)向量對(duì)這些方法是完全不同的一個(gè)問(wèn)題。狀態(tài)目標(biāo)空間太大了。作者證明,使用DQN,最大可解矢量大小為13,之后成功率急劇下降到零。 事后經(jīng)驗(yàn)重演 - 從失敗中學(xué)習(xí) Off-Policy學(xué)習(xí) 但人類如何處理這些問(wèn)題呢?有時(shí),當(dāng)我們未能完成某項(xiàng)任務(wù)時(shí),我們會(huì)認(rèn)識(shí)到我們所做的事情可能在另一個(gè)環(huán)境或其他任務(wù)中有用。 為了轉(zhuǎn)換檢查過(guò)去行為并從中推斷有用信息的能力,即使我們最終失敗了,我們將轉(zhuǎn)向一種學(xué)習(xí)范式,即Off-Policy學(xué)習(xí)。 在RL中,我們嘗試學(xué)習(xí)一種策略,該策略將在給定初始狀態(tài)分布的情況下最大化預(yù)期的累積獎(jiǎng)勵(lì)。我們通過(guò)反復(fù)試驗(yàn)與環(huán)境互動(dòng)來(lái)學(xué)習(xí)policy,并使用流程中收集的數(shù)據(jù)來(lái)改進(jìn)我們的policy。但是一些RL算法可以從另一個(gè)策略收集的數(shù)據(jù)中學(xué)習(xí)policy。此其他policy記錄其與環(huán)境的交互,我們的學(xué)習(xí)算法可以使用它來(lái)推斷可能更好的策略。從現(xiàn)在開始,我將把我們正在努力學(xué)習(xí)的policy簡(jiǎn)單地稱為policy,并將另一個(gè)policy稱為探索policy。探索policy的目的是探索足夠的狀態(tài) - 行動(dòng)空間,以便我們的學(xué)習(xí)算法可以從中推斷出應(yīng)該在不同的狀態(tài)下采取什么行動(dòng)。離線policy學(xué)習(xí)算法的典型示例是DQN(Deep-Q-Network)和DDPG(Deep Deterministic Policy Gradient),這兩種算法可以在給定一個(gè)探查策略收集的數(shù)據(jù)的情況下,學(xué)習(xí)狀態(tài) - 動(dòng)作對(duì)的值。 與此相反,On-Policy學(xué)習(xí)算法必須僅依賴于所學(xué)習(xí)的相同policy收集的數(shù)據(jù),這意味著它們不能使用由另一個(gè)policy收集的歷史數(shù)據(jù),包括其自身的舊版本(在SGD更新到神經(jīng)網(wǎng)絡(luò)之前)例)。policy上學(xué)習(xí)算法的典型示例是各種Policy-Gradient方法,例如REINFORCE和A3C(Asynchronous Advantage Actor-Critic)。 事后經(jīng)驗(yàn)重演 在著名的DQN算法中,通過(guò)對(duì)用于神經(jīng)網(wǎng)絡(luò)更新的每批訓(xùn)練實(shí)例進(jìn)行去關(guān)聯(lián),利用以往經(jīng)驗(yàn)的緩沖來(lái)穩(wěn)定訓(xùn)練。這個(gè)緩沖區(qū)記錄過(guò)去的狀態(tài),在這些狀態(tài)下采取的操作,收到的獎(jiǎng)勵(lì)以及觀察到的下一個(gè)狀態(tài)。如果我們希望將其擴(kuò)展到我們的多目標(biāo)設(shè)置,我們必須保存除狀態(tài)之外的目標(biāo),并了解狀態(tài)目標(biāo) - 動(dòng)作三元組的價(jià)值。 正如我們所看到的,體驗(yàn)重放緩沖區(qū)中的數(shù)據(jù)可以來(lái)自探索策略,這提出了一個(gè)有趣的可能性;如果我們可以通過(guò)想象如果環(huán)境不同會(huì)發(fā)生什么來(lái)增加虛擬數(shù)據(jù)怎么辦?這正是Hindsight Experience Replay(HER)實(shí)際上所做的事情。 在HER中,作者提出了以下policy:假設(shè)我們的agent執(zhí)行了一個(gè)試圖從初始狀態(tài)S到達(dá)目標(biāo)狀態(tài)G的情節(jié),但未能這樣做并且最終在這段時(shí)間結(jié)束時(shí)達(dá)到了一些狀態(tài)S'。我們將軌跡緩存到我們的重放緩沖區(qū)中: 其中r與下標(biāo)k是在劇集的步驟k接收的獎(jiǎng)勵(lì),而下標(biāo)k是在劇集的步驟k采取的動(dòng)作。 HER中的想法是想象我們的目標(biāo)實(shí)際上一直是S',而在這個(gè)替代現(xiàn)實(shí)中,我們的agent已經(jīng)成功地達(dá)到了目標(biāo),并獲得了積極的回報(bào)。因此,除了如前所述緩存真實(shí)軌跡之外,我們還緩存以下軌跡: 這種軌跡是想象的軌跡,是人類從失敗的嘗試中學(xué)習(xí)有用的東西的能力所激發(fā)的。還應(yīng)該注意的是,在想象的軌跡中,在事件的最后一步收到的獎(jiǎng)勵(lì)現(xiàn)在是通過(guò)達(dá)到想象的目標(biāo)而獲得的積極獎(jiǎng)勵(lì)。 通過(guò)將想象的軌跡引入我們的重播緩沖區(qū),我們確保無(wú)論我們的policy多么糟糕,它都會(huì)有一些積極的回報(bào)可供學(xué)習(xí)。在這個(gè)階段,我們可能會(huì)問(wèn)自己有什么用于學(xué)習(xí)實(shí)現(xiàn)我們不感興趣的目標(biāo)?顯然,在訓(xùn)練開始時(shí),那些想象的目標(biāo)只會(huì)是我們隨機(jī)初始化policy所能達(dá)到的,這些都沒(méi)有實(shí)際用處。然而,通過(guò)神經(jīng)網(wǎng)絡(luò)進(jìn)行函數(shù)逼近的神奇之處將確保我們的policy也可以達(dá)到與之前相似的狀態(tài);這是泛化屬性,是成功深度學(xué)習(xí)的標(biāo)志。首先,agent將能夠在初始狀態(tài)周圍的相對(duì)較小的區(qū)域內(nèi)到達(dá)狀態(tài),但逐漸擴(kuò)展?fàn)顟B(tài)空間的可到達(dá)區(qū)域,直到最終它學(xué)會(huì)達(dá)到我們實(shí)際感興趣的那些目標(biāo)狀態(tài)。 這個(gè)過(guò)程與深度學(xué)習(xí)中的另一種常見做法有很多相似之處;課程學(xué)習(xí)。在課程學(xué)習(xí)中,我們希望我們的神經(jīng)網(wǎng)絡(luò)能夠?qū)W到一些困難,但是如果我們讓它在真正的任務(wù)上訓(xùn)練它很可能會(huì)失敗。我們能做的就是讓它開始對(duì)問(wèn)題的較小實(shí)例進(jìn)行訓(xùn)練,這樣更容易,并逐漸增加實(shí)例的難度,直到我們的模型學(xué)會(huì)在我們要解決的任務(wù)上表現(xiàn)良好。課程學(xué)習(xí)在實(shí)踐中通常很有效,但要求設(shè)計(jì)師手動(dòng)設(shè)計(jì)課程,并生成更簡(jiǎn)單的任務(wù)實(shí)例。這并不總是容易做到的,因?yàn)橛袝r(shí)我們可能無(wú)法生成更簡(jiǎn)單的問(wèn)題版本,并且成功地設(shè)計(jì)課程可能既困難又耗時(shí)。 與此相反,HER給了我們一個(gè)非常相似的結(jié)果,而不需要我們調(diào)整問(wèn)題或設(shè)計(jì)課程。我們可以將HER視為一種隱含的課程學(xué)習(xí)過(guò)程,我們總是為我們的經(jīng)紀(jì)人提供它確實(shí)能夠解決的問(wèn)題,并逐漸增加這些問(wèn)題的范圍。 作者在幾個(gè)機(jī)器人操作任務(wù)中測(cè)試了HER,其中agent必須從初始狀態(tài)實(shí)現(xiàn)不同的目標(biāo),例如拾取物體或?qū)⑺鼈兓瑒?dòng)到某個(gè)目標(biāo)位置。在這些任務(wù)中,如果agent及時(shí)完成任務(wù),則它會(huì)收到獎(jiǎng)勵(lì),如果沒(méi)有,則不會(huì)獲得獎(jiǎng)勵(lì)。作者使用DDPG作為基礎(chǔ)算法測(cè)試HER,并且表明HER成功學(xué)習(xí)完成這些任務(wù),其他算法無(wú)法學(xué)習(xí)。 作者還證明,即使在我們真正關(guān)心特定目標(biāo)的任務(wù)中,HER也能提高性能,只要我們能夠?yàn)橛?xùn)練目的提供其他目標(biāo)。 這是解決許多RL應(yīng)用中的困難和重要問(wèn)題的非常優(yōu)雅和簡(jiǎn)單的方法。 |
|
|