0
雷鋒網(wǎng) AI 科技評論按:強化學習在最近幾年中都是最熱門的研究領(lǐng)域之一,但是復雜環(huán)境中難以訓練、訓練后難以泛化的問題始終沒有得到完全的解決。好奇心驅(qū)動的學習是一種非常有趣的解決方案,這篇文章就是一份詳細的介紹。雷鋒網(wǎng) AI 科技評論全文編譯如下。
* 本文是深度學習工程師 Thomas Simonini 個人編寫的 Tensorflow 深度強化學習課程的一部分,戳這里查看教學大綱。
近年來,我們在深度強化學習領(lǐng)域看到了很多創(chuàng)新。從2014年的 DeepMind 的深度 Q 學習框架到2018年 OpenAI 發(fā)布的玩 Dota2 的 OpenAI Five 游戲機器人,我們生活在一個激動人心且充滿希望的時代。
今天我們將了解深度強化學習中最令人興奮、最有前景的策略之一——好奇心驅(qū)動學習。
強化學習基于獎勵機制,即每個目標可以被描述為獲得最大化的獎勵。然而,目前的問題就是外部獎勵(也就是由環(huán)境給出的獎勵)是由人為硬性編碼的函數(shù),并不可擴展。
好奇心驅(qū)動學習的思想是建立一個擁有內(nèi)在的獎勵函數(shù)的智能體(獎勵函數(shù)由智能體自己生成)。這意味著智能體將成為自學者,因為他既是學生,也是反饋者。
聽起來很瘋狂?是的,但這是一個天才的想法,在2017年的《Curiosity-driven Exploration by Self-supervised Prediction》一文中被再次提及,然后通過第二篇論文《Large-Scale Study of Curiosity-Driven Learning》改進了結(jié)果。
他們發(fā)現(xiàn)好奇心驅(qū)動學習的學習體表現(xiàn)得和外部獎勵機制的學習體一樣好,并且能夠在未開發(fā)的環(huán)境中更好地泛化。
在第一篇文章中,我們將討論理論部分并從理論上解釋好奇心驅(qū)動學習是怎么運作的。
然后,在第二篇文章中,我們將實現(xiàn)一個好奇心驅(qū)動學習下的 PPO 智能體玩超級馬里奧。
聽起來很有趣?讓我們一起來看看!
首先,稀疏獎勵的問題,在于行動與其反饋(獎勵)之間的時差。如果每個行動都有獎勵,則智能體會快速學習,以便獲得快速反饋。
例如,如果你玩太空侵略者,你射擊并殺死一個敵人,你會獲得獎勵。因此,你會明白在那個場景下的這個行動是好的。
有了獎勵學習體就知道在這個狀態(tài)下行動是好的
但是,在實時策略游戲等復雜游戲中,您不會對每個行為都有直接的獎勵。因此,糟糕的決策直到幾小時后才會有反饋。
以帝國時代II為例來看,我們可以在第一張圖片上看到智能體決定建造一個營房并專注于收集資源。因此,在第二張圖片中(幾小時后),敵人摧毀了我們的營房,因此我們擁有大量的資源,但我們無法建立一支軍隊,所以我們死了。
敵人摧毀我們的營房
第二個大問題是外部獎勵不可擴展。由于在每個環(huán)境中,人類都實現(xiàn)了獎勵機制。但是我們?nèi)绾卧诖蠖鴱碗s的環(huán)境中擴展它?
解決方案是開發(fā)智能體內(nèi)在的獎勵機制(由智能體本身生成),這種獎勵機制將被稱為好奇心。
好奇心是一種內(nèi)部獎勵,它等于我們的智能體在其當前狀態(tài)下預(yù)測其自身行為的后果的誤差(也就是在給定當前狀態(tài)和采取的行動的情況下預(yù)測下一個狀態(tài))。
為什么?因為好奇心的思想就是鼓勵我們的智能體采取行動來降低學習體預(yù)測其自身行為后果的能力的不確定性(智能體花費較少時間的區(qū)域或動態(tài)復雜的區(qū)域的不確定性會更高)。
因此,測量誤差需要建立一個環(huán)境動態(tài)模型,在給定當前狀態(tài)和動作 a 的情況下預(yù)測下一個狀態(tài)。
這里我們就要提出一個問題——我們怎么計算誤差?
為了計算好奇心,我們將使用一個在第一篇論文中所提及的名為Intrinsic Curiosity module(內(nèi)在好奇心模塊)的模塊。
需要一個良好的特征空間
在深入描述模型之前,我們先必須問自己,根據(jù)我們當前的狀態(tài)和行動,智能體該如何預(yù)測下一個狀態(tài)?
我們知道可以將好奇心定義為給定當前狀態(tài)st和行動at的預(yù)測新狀態(tài)(st + 1)與真實新狀態(tài)之間的誤差。
但是,請記住,大多數(shù)情況下,我們的狀態(tài)是4幀(像素)的堆棧。這意味著我們需要找到一種方法來預(yù)測下一疊幀,這有兩個難點:
首先,很難直接預(yù)測像素,想象你在Doom中向左移動,你需要預(yù)測248 * 248 = 61504像素!
其次,研究人員認為這是錯誤的做法,并且可以通過一個很好的例子來證明這一點。
想象一下,你需要在微風中研究樹葉的運動。首先,很難對微風進行建模,因此在每個時間點預(yù)測每片葉子的像素位置就更困難了。
問題在于,因為你總是會有一個很大的像素預(yù)測誤差,所以即使葉子的運動不是智能體動作的結(jié)果,智能體也會一直好奇,因此它的持續(xù)好奇心是不可取的。
因此,我們需要將原始感官輸入(像素陣列)轉(zhuǎn)換為僅包含相關(guān)信息的特征空間,而不是在原始感官空間(像素)中進行預(yù)測。
我們需要定義以下3點規(guī)則來構(gòu)建一個好的特征空間:
要對可由智能體控制的物體進行建模。
還要對智能體無法控制但可能對其產(chǎn)生影響的事物進行建模。
不要對智能體無法控制且對其沒有影響的事物建模(因此不受影響)。
讓我們舉個例子,你的學習體是一輛汽車,如果我們想創(chuàng)建一個好的特征表示,我們需要建模:
黃框是重要的成分
我們的汽車(由我們的智能體控制),其他汽車(我們無法控制但可能影響智能體),但我們不需要對葉子進行建模(不影響智能體,我們無法控制它)。這樣我們就會有一個噪音更小的特征表示。
所需的嵌入空間應(yīng)該:
空間緊湊(去除觀察空間的不相關(guān)部分)。
保留有關(guān)觀察的充分信息。
穩(wěn)定:因為非固定獎勵使強化學習體難以學習。
內(nèi)在好奇心模塊(ICM)
內(nèi)在好奇心模塊是幫助我們產(chǎn)生好奇心的系統(tǒng)。它由兩個神經(jīng)網(wǎng)絡(luò)組成。
請記住,我們只希望預(yù)測環(huán)境中可能由于智能體的行為引起的改變或忽略其余內(nèi)容對智能體產(chǎn)生影響的更改變。這意味著,我們需要的不是從原始感覺空間(像素)進行預(yù)測,而是將感官輸入轉(zhuǎn)換為特征向量,其中僅表示與智能體執(zhí)行的動作相關(guān)的信息。
要學習這個特征空間:我們使用自我監(jiān)督,在智能體逆向動態(tài)任務(wù)上訓練神經(jīng)網(wǎng)絡(luò),給定其當前狀態(tài)和下一個狀態(tài)(st和st + 1)預(yù)測學習體行為(at)。
由于神經(jīng)網(wǎng)絡(luò)僅需要預(yù)測動作,因此沒有動機在其特征向量空間內(nèi)表示不影響智能體本身的環(huán)境變化因素。
前向模型部分
然后我們使用此特征空間來訓練前向態(tài)模型,給定當前狀態(tài)phi(st)的特征表示和動作,用該模型預(yù)測下一個狀態(tài)phi(st + 1)的未來表示。
并且我們向智能體提供前向動態(tài)模型的預(yù)測誤差,作為鼓勵其好奇心的內(nèi)在獎勵。
Curiosity= predict_phi(st + 1) - phi(st + 1)
那么,我們在ICM中有兩個模型:
反向模型(藍色):將狀態(tài)st和st + 1編碼到經(jīng)過訓練以預(yù)測動作的特征向量phi(st)和phi(st + 1)中。
測量真實行為和預(yù)測行為差異的逆損失函數(shù)
正向模型(紅色):將phi(st)和at作為輸入,并且預(yù)測st + 1的特征表示phi(st + 1)。
前向模型損失函數(shù)
然后從數(shù)學上講,好奇心將是我們預(yù)測的下一個狀態(tài)的特征向量與下一個狀態(tài)的真實特征向量之間的差。
最后,該模塊的整體優(yōu)化問題是逆向損失,正向損失的結(jié)合。
這里有很多信息和數(shù)學知識!
回顧一下:
由于外部獎勵實現(xiàn)和稀疏獎勵的問題,我們希望創(chuàng)建智能體的內(nèi)在獎勵。
為此,我們創(chuàng)造了好奇心,這是智能體在預(yù)測其當前狀態(tài)下的行動結(jié)果時的誤差。
利用好奇心將推動我們的學習體支持具有高預(yù)測誤差的轉(zhuǎn)換(在智能體花費較少時間的區(qū)域或動態(tài)復雜的區(qū)域中會更高),從而更好地探索我們的環(huán)境。
但是因為我們無法通過預(yù)測下一幀(太復雜)來預(yù)測下一個狀態(tài),所以我們使用更好的特征表示,只保留可由智能體控制或影響智能體的元素。
為了產(chǎn)生好奇心,我們使用由兩個模型組成的內(nèi)在好奇心模塊:用于學習狀態(tài)和下一狀態(tài)的特征表示的逆向模型和用于生成下一狀態(tài)的預(yù)測特征表示的前向動態(tài)模型。
好奇心將等于predict_phi(st + 1)(前向動態(tài)模型)和phi(st + 1)(逆向動態(tài)模型)之間的差異。
這就是今天的一切!既然你理解了這個理論,那么你應(yīng)該讀讀《Curiosity-driven Exploration by Self-supervised Prediction 》、《Large-Scale Study of Curiosity-Driven Learning》兩篇論文的實驗結(jié)果。
下一次,我們將使用好奇心作為內(nèi)在獎勵機制來實現(xiàn)玩超級馬里奧的PPO學習體。
via towardsdatascience.com,雷鋒網(wǎng) AI 科技評論編譯
相關(guān)文章:
論嵌入在 OpenAI 的 5v5 DOTA2 AI 中的妙用
雖又擊敗了人類選手,但我們認為 OpenAI 的 5v5 DOTA AI 不過如此
DOTA 5v5 AI 的亮點不是如何「學」的,而是如何「教」的
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。