0
智能體能否在夢中學(xué)習(xí)?Yes!
白日夢是人類的專屬?No!
這是谷歌大腦的又一篇PR文章嗎?難說~
雷鋒網(wǎng) AI科技評(píng)論按:繼前段時(shí)間在arxiv上貼出《One Big Net》之后,近日J(rèn)urgen Schmidhuber和來自谷歌大腦的David Ha又放了一篇大標(biāo)題論文:世界模型(World models)。但和上次一致的批評(píng)之聲不同,這次幾乎所有人都認(rèn)為內(nèi)容很贊。例如在Reddit上大家的聲音類似這種:
這項(xiàng)工作看起來非常有趣。但認(rèn)真點(diǎn)兒好不好,別再搞這種UC標(biāo)題了?真的怕明天媒體曝出一個(gè)“ Google做出了一個(gè)能夠模擬整個(gè)世界的AI ”。(注:第一作者為來自 Google Brain 的 David Ha)
或者也有這種:
我覺得這個(gè)標(biāo)題似乎很平淡,描述的也很準(zhǔn)確。如果新聞?dòng)浾咂查_標(biāo)題來不用「世界」這個(gè)詞,那么這絕對是一篇誤導(dǎo)性的文章。
那么這篇文章到底在談?wù)撌裁茨??簡單來說就是:給agent構(gòu)建一個(gè)內(nèi)部世界模型,讓它能夠在沒有外界輸入的情況下在自己的內(nèi)部世界里面進(jìn)行自學(xué)習(xí)(形象來說就是能夠通過做夢來學(xué)習(xí))。
不得不說,這又是一個(gè)模仿人類學(xué)習(xí)的案例。我們?nèi)祟惢谟邢薜母杏X(視覺、聽覺、嗅覺等),在自己的頭腦中構(gòu)建了一個(gè)心智世界模型,這個(gè)世界是我們賴以做出判斷和決策的基礎(chǔ)。當(dāng)醒著的時(shí)候,我們通過視覺、聽覺等感覺系統(tǒng)不斷地輸入信息,并基于我們的心智世界模型來做出決策和行動(dòng);當(dāng)睡著的時(shí)候,我們關(guān)閉了感覺系統(tǒng),但是我們?nèi)匀荒軌蛟趬糁衼怼笇W(xué)習(xí)」。
為了處理日常生活中流經(jīng)我們的大量信息,我們的大腦會(huì)將這些信息的空間和時(shí)間維度進(jìn)行抽象表示。我們能夠觀察一個(gè)場景并記住其中的抽象描述。另一方面,我們在任何時(shí)刻所感知到的其實(shí)是由我們大腦內(nèi)部的心智模型對未來的預(yù)測所決定的。
那么如何來理解我們大腦的預(yù)測模型呢?事實(shí)上它并不僅僅是去預(yù)測未來,而是在給定當(dāng)前運(yùn)動(dòng)行為的情況下去預(yù)測未來的感覺數(shù)據(jù)。當(dāng)我們面臨危險(xiǎn)時(shí),我們能夠本能地采取這種預(yù)測模型并進(jìn)行快速反射行為,而不需要有意識(shí)地制定行動(dòng)方案。
以棒球?yàn)槔R粋€(gè)棒球擊球手只有幾毫秒的時(shí)間來決定他們應(yīng)該如何擺動(dòng)球棒,這事實(shí)上比眼睛的視覺信號(hào)到達(dá)我們大腦所需要的時(shí)間還要短;擊球手能夠擊中球的原因是,我們能夠本能地預(yù)測出球在什么時(shí)候出現(xiàn)在什么地方。對于職業(yè)球員來說,這一切都是在潛意識(shí)中發(fā)生的,他們的肌肉在適當(dāng)?shù)臅r(shí)間和地點(diǎn)按照他們內(nèi)部的心智模型預(yù)測的結(jié)果擺動(dòng)了球棒。這一切不需要意識(shí)來進(jìn)行規(guī)劃。
對于人類認(rèn)知的這一特性,事實(shí)上很早(從1995年到2015年間)就有人嘗試在搭建類似的模型。本文的意義則在于,它用一個(gè)簡化的框架,通過實(shí)驗(yàn)展示了這些研究的一些關(guān)鍵概念,提出進(jìn)一步改進(jìn)的見解,并有效地應(yīng)用到了增強(qiáng)學(xué)習(xí)環(huán)境中。
說起增強(qiáng)學(xué)習(xí),RL算法常常受到信用分配問題的瓶頸,因此傳統(tǒng)的RL算法難以學(xué)習(xí)數(shù)百萬個(gè)權(quán)重的大型神經(jīng)網(wǎng)絡(luò)。因此在實(shí)踐中為了在訓(xùn)練期間更快地迭代出良好的策略,一般都使用小型的網(wǎng)絡(luò)。
在這項(xiàng)工作中,作者則著眼于訓(xùn)練一個(gè)大型神經(jīng)網(wǎng)絡(luò)來處理RL任務(wù),將智能體分為大的世界模型和小的控制器模型。作者首先以無監(jiān)督的方式訓(xùn)練大的神經(jīng)網(wǎng)絡(luò),讓它學(xué)習(xí)出一個(gè)智能體的世界模型;然后再訓(xùn)練較小的控制器模型,讓它學(xué)習(xí)使用前面的世界模型來執(zhí)行任務(wù)。這樣的方法保證了控制器模型的訓(xùn)練算法可以專注于小型搜索空間上的信用分配問題,同時(shí)不會(huì)通過較大的世界模型犧牲容量和表現(xiàn)力。此外,作者構(gòu)建的這種模型甚至可以完全在自己的世界模型所產(chǎn)生的「夢境」中訓(xùn)練agent,并將訓(xùn)練效果轉(zhuǎn)移回實(shí)際環(huán)境中。智能體模型結(jié)構(gòu)如下:
詳細(xì)來講,其視覺模型選擇了變分自動(dòng)編碼(VAE):
其記憶RNN選擇了混合密度網(wǎng)絡(luò)與RNN結(jié)合(MDN-RNN):
SketchRNN是MDN-RNN的一個(gè)例子,它可以預(yù)測素描畫的下一筆劃。作者使用了一個(gè)類似的模型用來預(yù)測下一個(gè)隱向量z。
控制器(C)模型負(fù)責(zé)確定采取的行動(dòng)過程,以便在環(huán)境中最大化智能體的預(yù)期回報(bào)。 作者在實(shí)驗(yàn)中故意選擇了最簡單的C:
其中M和b分別為權(quán)重矩陣和偏置向量。將上面這三個(gè)模型組合在一起就是這樣了:
作者首先用賽車實(shí)驗(yàn)來檢測這個(gè)模型。實(shí)驗(yàn)過程大致如下:
1. 從隨機(jī)策略中收集 10000 個(gè) 轉(zhuǎn)出(rollouts);
2. 訓(xùn)練 VAE(V)將視頻幀編碼為 32 維的隱向量 z;
3. 訓(xùn)練 MDN-RNN(M)建模概率分布 P(z_{t+1} | a_t, z_t, h_t);
4. 定義控制器(C)為 a_t = W_c [z_t, h_t] + b_c;
5. 使用 CMA-ES 求解 W_c 和 b_c 來最大化預(yù)期累積獎(jiǎng)勵(lì)。
在這個(gè)賽車比賽中,智能體可以控制做三個(gè)動(dòng)作:轉(zhuǎn)向左/右,加速和制動(dòng)。實(shí)驗(yàn)結(jié)果如下:
如果只使用視覺模型(V)——
如果同時(shí)使用視覺模型(V)和記憶模型(M)——
在100次測試中,這個(gè)模型的平均得分顯著高于之前的一些模型。
當(dāng)然還不止于此。由于這個(gè)世界模型能夠?qū)ξ磥磉M(jìn)行建模(也即給定當(dāng)前狀態(tài),它可以產(chǎn)生下一個(gè)時(shí)刻的概率分布),因此如果將這個(gè)作為真實(shí)觀測值,那么這就意味著智能體能夠自行「幻化」出假想的賽車場景,并在這個(gè)幻境中進(jìn)行學(xué)習(xí)。
那么在夢境中學(xué)習(xí)到的經(jīng)驗(yàn),能否轉(zhuǎn)移到實(shí)際的環(huán)境中呢?我們需要看下一個(gè)實(shí)驗(yàn)。
在這個(gè)游戲中,房間另一端的怪物會(huì)射出火球,智能體所要學(xué)習(xí)的就是如何避開這些火球以防被殺死。
VizDoom實(shí)驗(yàn)的過程整體上和賽車實(shí)驗(yàn)一樣,不過也有一些不同。首先V除了開始時(shí)編碼一些視頻外,在整個(gè)「幻想」期間,不再編碼外界真實(shí)的視頻幀,而是將由M預(yù)測的下一時(shí)刻特征向量轉(zhuǎn)化為可見的圖像。其次,M不僅要預(yù)測下一時(shí)刻的特征向量,還需要預(yù)測智能體死/活的狀態(tài)。實(shí)驗(yàn)過程大致如下:
從隨機(jī)策略中收集 10000 個(gè) 轉(zhuǎn)出(rollouts);
訓(xùn)練 VAE(V)將視頻幀編碼為 64 維的隱向量 z;同時(shí)用V將(1)中收集的圖片轉(zhuǎn)化為特征空間中的表示;
訓(xùn)練MDN-RNN(M)建模概率分布 P(z_{t+1}, done_{t+1} | a_t, z_t, h_t);其中done_{t+1}表示智能體的死/活狀態(tài);
定義控制器(C)為 a_t = W_c [z_t, h_t];
使用 CMA-ES 求解 W_c 和 b_c 來最大化在虛擬環(huán)境中的預(yù)期存活時(shí)間;
用從(5)中學(xué)到的策略作用到真實(shí)的環(huán)境中。
需要強(qiáng)調(diào)的是,在這里,智能體除了收集的原始圖像數(shù)據(jù)外,別得什么都沒有,它將在自己的夢境中學(xué)習(xí)如何模擬游戲的基本規(guī)律,例如游戲的邏輯、敵人的行為、物理特性等。舉例來說,如果智能體在自己幻想出的游戲中向左側(cè)移動(dòng)太遠(yuǎn),它必須自己學(xué)會(huì)阻止自己移動(dòng)到兩側(cè)墻壁之外。
與真實(shí)的游戲幻境不同的是,在幻境中有許多不確定性,例如你可能會(huì)看到火球沿著隨機(jī)的路徑移動(dòng),或者智能體莫名其妙的就死了,無法解釋原因。下面這是在夢境中訓(xùn)練的比較好的一個(gè)結(jié)果:
將這個(gè)在夢境中的智能體應(yīng)用到實(shí)際的游戲環(huán)境中,我們發(fā)現(xiàn)竟然神奇的好,在100輪的隨機(jī)測試中,平均存活幀率為1100,遠(yuǎn)遠(yuǎn)超過750勝出的要求。
但是,作者在實(shí)驗(yàn)中也發(fā)現(xiàn)一個(gè)bug。我們知道當(dāng)我們小時(shí)候雖然知道拋出的物體會(huì)落下來,我們?nèi)匀粫?huì)去想象一些不切實(shí)際的能夠在空中飛翔的超級(jí)英雄,原因在于我們擁有我們心智世界的完整控制權(quán),我們可以隨意地創(chuàng)造我們想要的任何事物。
類似的,在這個(gè)模型中,由于控制器能夠訪問M的所有隱藏狀態(tài),這實(shí)質(zhì)上時(shí)授予了智能體訪問所有內(nèi)部狀態(tài)的權(quán)限,因此它可以直接操縱這些隱藏狀態(tài)來實(shí)現(xiàn)期望的獎(jiǎng)勵(lì)最大化。例如,在夢境學(xué)習(xí)中,這些虛擬怪物不再發(fā)射火球,所以無論智能體怎么運(yùn)動(dòng)都會(huì)獲得極高的分值。但是,當(dāng)把這些訓(xùn)練結(jié)果拿到實(shí)際環(huán)境中測試時(shí)就會(huì)發(fā)現(xiàn),智能體很快就死掉了。這就類似白日夢做得再多,在現(xiàn)實(shí)生活中也不會(huì)成功。
在以上的實(shí)驗(yàn)中,任務(wù)都是相對簡單的,因此可以使用隨機(jī)策略來收集數(shù)據(jù)集訓(xùn)練世界模型。但是如果環(huán)境較為復(fù)雜怎么辦?這種情況下,智能體只能看到部分世界。因此我們就需要多次迭代,也即讓我們的智能體去探索世界,并不斷收集新的觀察結(jié)果,以便隨著時(shí)間的推移可以改變和完善其世界模型。操作過程大致如下:
用隨機(jī)模型參數(shù)初始化M、C;
探索世界N次,智能體在每次探索中學(xué)習(xí),并將所有的行為a_t和觀測結(jié)果x_t保存到內(nèi)存;
訓(xùn)練M建模P(x_{t+1},r_{t+1},a_{t+1},done_{t+1}∣x_t,a_t,h_t);
如果任務(wù)沒有完成,返回到(2)。
上面的實(shí)驗(yàn)證明,對于簡單的任務(wù)循環(huán)一次迭代就足夠了。對于負(fù)責(zé)的任務(wù)可能需要多次迭代。在這里一個(gè)令人激動(dòng)的研究方向就是,如何給智能體加入好奇心和內(nèi)在動(dòng)機(jī)來股利它去做更多的探索。
上面的過程已經(jīng)驗(yàn)證了在完全虛擬的夢境空間訓(xùn)練智能體的可能性。這種方法的好處不言而喻。例如,在計(jì)算密集型游戲引擎中,可能需要大量的計(jì)算資源來渲染游戲的圖像幀,或者一些與游戲本身不相關(guān)的內(nèi)容;這大大浪費(fèi)了計(jì)算資源,也增大了訓(xùn)練智能體的訓(xùn)練周期;而在夢境環(huán)境中則可以使用較少的資源、較短的周期來實(shí)現(xiàn)類似的訓(xùn)練結(jié)果。
此外,我們完全可以利用深度學(xué)習(xí)框架來這個(gè)世界模型的搭建,我們將世界模型設(shè)計(jì)成一個(gè)完全可以區(qū)分的通用性的計(jì)算圖,其好處就在于我們可以直接使用反向傳播算法來訓(xùn)練我們的智能體,微調(diào)策略以最大化目標(biāo)函數(shù)。
模型本身還有需要有待改進(jìn)的地方。例如V模型中使用的VAE,其作為獨(dú)立模型進(jìn)行訓(xùn)練事實(shí)上也有自身的局限性,因?yàn)樗赡軐θ蝿?wù)無關(guān)的部分也進(jìn)行了編碼,畢竟無監(jiān)督學(xué)習(xí)不知道什么對于任務(wù)是有用的。舉例來說,在Doom環(huán)境中它詳細(xì)地再現(xiàn)了側(cè)壁上不重要的磚瓦圖案;而在賽車環(huán)境中它卻沒有再現(xiàn)與任務(wù)相關(guān)的磚。通過將V與M一起訓(xùn)練,VAE可能會(huì)更加專注于圖像的任務(wù)相關(guān)領(lǐng)域。但弊端是,我們可能也無法有效地重復(fù)使用VAE而無需再次進(jìn)行新任務(wù)。
學(xué)習(xí)任務(wù)相關(guān)的功能與神經(jīng)科學(xué)有很大關(guān)聯(lián),初級(jí)感覺神經(jīng)元在收到獎(jiǎng)勵(lì)時(shí),從抑制狀態(tài)中釋放出來,這表明它們通常至少在成年后才學(xué)習(xí)與任務(wù)相關(guān)的特征,而不是任何特征。作者任務(wù)未來的工作可能會(huì)探索如何進(jìn)一步改進(jìn)V模型,來專注于任務(wù)相關(guān)的特征。
另一個(gè)可能比較嚴(yán)重的問題是,這個(gè)世界模型的能力有限。盡管現(xiàn)代存儲(chǔ)設(shè)備可以存儲(chǔ)使用迭代訓(xùn)練過程中生成的大量歷史數(shù)據(jù),但是基于LSTM的世界模型無法將所有記錄信息存儲(chǔ)到其權(quán)重連接中。人腦可以持續(xù)數(shù)十年的記憶,但反向傳播訓(xùn)練的神經(jīng)網(wǎng)絡(luò)在記憶方面能力有限,經(jīng)常遭受災(zāi)難性遺忘問題。如果想讓智能體學(xué)習(xí)探索更為復(fù)雜的世界,作者認(rèn)為未來的工作可能會(huì)探索如何使用更高容量的模型來代替容量較小的MDN-RNN網(wǎng)絡(luò),或者合并外部存儲(chǔ)模塊。
在Reddit上似乎永遠(yuǎn)不乏「領(lǐng)域內(nèi)人士」,他們往往能夠?qū)σ豁?xiàng)工作給出恰當(dāng)?shù)脑u(píng)價(jià)。例如雷鋒網(wǎng)發(fā)現(xiàn)網(wǎng)名為 sieisteinmodel 評(píng)價(jià)如下:
我想表達(dá)一下更廣泛的(但當(dāng)然是主觀的)觀點(diǎn)。這篇文章的意義只是在于對現(xiàn)代(即2005年后)機(jī)器的Jürgen舊觀點(diǎn)的驗(yàn)證:變分推理,MD-RNNs,3D射擊環(huán)境等。
學(xué)習(xí)一個(gè)模型,然后在做控制,這種方法事實(shí)上已經(jīng)有很長一段時(shí)間了。Jürgen和其他人幾十年來一直在倡導(dǎo)這一點(diǎn),這也是這篇文章能夠出現(xiàn)的原因:
這個(gè)模型有自己的名字,它被稱為「基于模型的強(qiáng)化學(xué)習(xí)」;
它有自己的子領(lǐng)域,如政策搜索;
它已經(jīng)非常成熟,以至于目前的研究已經(jīng)將它作為一種工具,而不僅僅是作為研究的內(nèi)容;
它已經(jīng)非常成熟,已經(jīng)有人在用硬件實(shí)現(xiàn),而不僅僅是模擬;
它在樣本效率方面頗具競爭力;
Eric Horvitz在他的一個(gè)演講中曾使用過更廣泛的原則。
所以如果你對這篇文章感到興奮,那么你也可查看一下以前這個(gè)領(lǐng)域中的工作。Jürgen的舊論文以及Marc Peter Deisenroth關(guān)于機(jī)器人技術(shù)政策搜索的調(diào)查是一個(gè)很好的切入點(diǎn)。另外你也應(yīng)當(dāng)考慮研究最佳控制,這是一個(gè)非常古老的控制理論分支,其中除了學(xué)習(xí)模型之外,基本思想早已被開發(fā)出來。
關(guān)于標(biāo)題,我認(rèn)為沒有必要將這個(gè)模型稱為「世界模型」,如果這樣的話,它也適用于之前的所有研究。不過現(xiàn)在人們愛玩PR游戲,這也不是他們的錯(cuò)。
via worldmodels.github.io,雷鋒網(wǎng)AI科技評(píng)論編譯。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。