0
雷鋒網(wǎng) AI 科技評論按:近期,Unity 發(fā)布了版本 0.4 的機(jī)器學(xué)習(xí)智能體工具包(ML-Agent toolkit v0.4),其中最為突出的新功能是通過額外的基于好奇心的內(nèi)在激勵進(jìn)行智能體的訓(xùn)練。由于這個新功能在解釋時有很多方面需要解開,作者 Arthur Juliani 獨立編寫了一篇文章進(jìn)行描述。雷鋒網(wǎng) AI 科技評論把這篇文章編譯如下。
在原理上,如果獎勵出現(xiàn)的幾率不高或稀疏的分布情況下,現(xiàn)在是有更有效的方式讓智能體進(jìn)行環(huán)境感知的。這些智能體可以通過使用一種基于對結(jié)果好奇的程度進(jìn)行獎勵的方式對這樣的環(huán)境進(jìn)行探索。在這篇文章中,作者講述了這種方式的工作原理并且展現(xiàn)了如何通過使用這種方式解決一個實際的任務(wù),同時與原始版本的強(qiáng)化學(xué)習(xí)方法進(jìn)行對比,表現(xiàn)出了這種新方法的優(yōu)越性。
當(dāng)涉及強(qiáng)化學(xué)習(xí)時,主要的學(xué)習(xí)信息以獎勵的形式出現(xiàn):即每次決定做出時,向智能體提供一個標(biāo)量值。這種獎勵通常是由環(huán)境自身產(chǎn)生的,并且由環(huán)境的創(chuàng)造者進(jìn)行指定。獎勵的范圍為(-1.0,+1.0),+1.0的含義為接近目標(biāo),而 -1.0 的含義為智能體的這條命死掉了??梢哉J(rèn)為這種獎勵是外部的,因其從智能體外產(chǎn)生。如果有外部獎勵的話,那么一定有內(nèi)部獎勵。與外部獎勵不同的是,內(nèi)部獎勵不是由環(huán)境提供,而是智能體自己基于一些標(biāo)準(zhǔn)產(chǎn)生的。當(dāng)然了,不是所有的內(nèi)部激勵都是這樣的。內(nèi)部獎勵最終還是希望可以服務(wù)于一些目標(biāo)的,比如改變智能體的行為,并在將來獲取更好的外部激勵,或者智能體可以接觸更多的外部環(huán)境。在人類和其他哺乳動物中,追求這些內(nèi)在獎勵常常被稱為內(nèi)在動機(jī),并與我們的情感緊密聯(lián)系在一起。
強(qiáng)化學(xué)習(xí)領(lǐng)域的研究者們已經(jīng)投入了大量的精力來開發(fā)良好的系統(tǒng)來為智能體提供內(nèi)在的獎勵,這給他們提供了與我們在自然智能體中找到的動機(jī)相似的動機(jī)。一種流行的方法是賦予智能體一種好奇心,并根據(jù)它周圍的世界感到驚訝來獎勵它。如果你想一個小嬰兒是如何了解這個世界的,它不是在追求任何特定的目標(biāo),而是在為新的體驗而玩耍和探索 —— 這樣你就可以說孩子是有好奇心的。好奇驅(qū)動的探索背后的想法是把這種動機(jī)灌輸給我們的智能體。如果智能體得到獎勵,達(dá)到令它自己驚喜的狀態(tài),那么它將學(xué)習(xí)到新的探索環(huán)境的策略,以找到越來越多的令自己驚喜的狀態(tài)。通過這種方式,智能體也希望能發(fā)現(xiàn)外在的獎勵,比如在迷宮中遙遠(yuǎn)的目標(biāo)位置,或者稀疏的資源。
作者選擇了去年 Deepak Pathak 和他的同事們發(fā)布的一份最新論文中的一個具體的方法。它被稱為好奇驅(qū)動探索自我監(jiān)督預(yù)測,如果你對全部細(xì)節(jié)的感興趣話,你可以打開原文鏈接。在文中,作者公式化了好奇的想法,以一種聰明和可歸納的方式。這種方式建議訓(xùn)練兩個獨立的神經(jīng)網(wǎng)絡(luò):正向模型和反向模型。反向模型被訓(xùn)練來接受由智能體接收的當(dāng)前和下一次觀測信息,使用單個編碼器對它們進(jìn)行編碼,并使用該結(jié)果來預(yù)測在兩次觀測的發(fā)生之間采取的行動。然后對正向模型進(jìn)行訓(xùn)練,以獲得編碼的當(dāng)前的觀測結(jié)果和行為,并預(yù)測編碼的下一觀察值。預(yù)測和實際編碼之間的差異然后被用作內(nèi)在獎勵,并饋送給智能體。較大的差異意味著更大的驚喜,而這又意味著更大的內(nèi)在回報。
通過同時使用這兩個模型,智能體獲得的獎勵不僅捕獲了令智能體覺得驚喜的東西,而且具體地捕獲了智能體通過自己的動作而獲得了控制的東西。在超級瑪麗的游戲中,他們的方法可以使一個沒有任何外在獎勵的智能體取得進(jìn)步。下面是他們方法設(shè)計的示意圖。
為了檢驗好奇心,目前沒有一個普通的環(huán)境能做到。通過版本 0.3 的機(jī)器學(xué)習(xí)智能體工具包發(fā)布的大多數(shù)示例環(huán)境包含相對密集的獎勵,并且不會從好奇或其他探索增強(qiáng)方法中獲益。為了把新發(fā)現(xiàn)的好奇心放在測試中,作者創(chuàng)造了一個新的稀有獎勵環(huán)境,叫做金字塔環(huán)境。在它里面,只有一個獎勵,隨機(jī)探索很少會讓智能體遇到它。在這種環(huán)境中,智能體采用類似于以前的一些環(huán)境中熟悉的藍(lán)色立方體的形式。代理可以向前或向后移動,然后向左或向右移動,并且可以通過立方體前面的一系列光線投射來訪問周圍世界的視圖。
智能體被放入一個包含九個房間的封閉空間中。一個房間包含一個隨機(jī)放置的開關(guān),其他房間中包含隨機(jī)放置的不可移動的石頭金字塔。當(dāng)智能體與開關(guān)相互作用時,開關(guān)從紅色變成綠色。隨著這種顏色的變化,環(huán)境會在某一個房間中的隨機(jī)位置生成一個新的磚塊可以移動的金字塔。在金字塔的頂端有一塊金色的磚。當(dāng)智能體接觸到這磚塊的時候,它就會收到 +2 外部獎勵。這里的有難度的地方是走到新的房間、翻轉(zhuǎn)開關(guān)、把塔撞倒的過程里都是沒有中間獎勵的。智能體必須學(xué)會在沒有中間幫助的情況下執(zhí)行這個序列。
當(dāng)智能體使用原始版本的近端策略優(yōu)化(Proximal Policy Optimization, PPO, Unity 環(huán)境中默認(rèn)的強(qiáng)化學(xué)習(xí)算法)進(jìn)行訓(xùn)練時,其表現(xiàn)很差,即便在進(jìn)行 200,000 個步驟的運(yùn)動之后,結(jié)果通常甚至沒有比隨機(jī)產(chǎn)生的結(jié)果(平均獎勵為-1)更好。(下圖)
相反的,通過 PPO 和好奇心驅(qū)動的內(nèi)部獎勵共同進(jìn)行訓(xùn)練的智能體,在多次實驗中都可以在 200,000 步內(nèi)甚至一半時間內(nèi)解決問題。(下圖)
作者還研究了僅用內(nèi)在獎勵信號訓(xùn)練的智能體,盡管他們不學(xué)習(xí)解決任務(wù),他們學(xué)習(xí)了一種更為有趣的定性策略,使他們能夠在多個房間之間移動;相比之下,在外在獎勵作為唯一策略的情況下,智能體僅能在一個房間里轉(zhuǎn)小圈。(下圖)
如果要使用好奇心策略來幫助在環(huán)境中訓(xùn)練智能體的話,使能訓(xùn)練是很簡單的。首先,獲得最新的機(jī)器學(xué)習(xí)工具包,然后將下面的代碼加入到超參數(shù)文檔中: use_curiosity: true。然后,向之前一樣的進(jìn)行訓(xùn)練。如果使用了 TensorBoard,結(jié)果中可以看到許多新的度量被跟蹤了。這個過程包含了前向和反向模型損失,以及每個步驟累積的內(nèi)在獎勵。
給予智能體好奇心并不是在所有場景下都適用。特別是如果環(huán)境已經(jīng)包含了一個密集的獎勵函數(shù),例如爬蟲(Crawler)和沃克(Walker)環(huán)境,在大多數(shù)動作之后接收到一個非零的獎勵,由此可能看不到太多的改進(jìn)。如果環(huán)境只包含稀疏獎勵,那么添加內(nèi)在獎勵有可能將這些任務(wù)從使用強(qiáng)化學(xué)習(xí)的不可解改善到容易解決。這尤其適用于當(dāng)它對簡單的獎勵(如贏/輸或完成/失?。┑热蝿?wù)時。
—
如果你使用好奇心功能,Unity 團(tuán)隊也希望可以聽到你的使用反饋。直接發(fā)郵件至 ml-agents@unity3d.com或通過Github的問題專欄進(jìn)行留言~祝訓(xùn)練順利!
via blogs.unity3d.com,雷鋒網(wǎng) AI 科技評論編譯
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。