0
當我們跳出這個怪圈兒,將一直所追求的“優(yōu)化目標”變成“泛化能力”時,說不定能夠事半功倍,得到意想不到的好處。比如,我們甚至可以去要求那種高深莫測的“直覺”。
編譯 | Don
編輯 | 青暮
在這篇文章中,谷歌機器人方向研究科學家Eric Jang將介紹一個深度學習構(gòu)建工程中的大殺器,也是他在工作學習中經(jīng)常使用、總結(jié)和堅信的一個關(guān)鍵的工程設(shè)計原則。
“這個原則指導著我,并讓我形成如今的“研究品味”,也構(gòu)成了我工作中的設(shè)計思路。這樣的習慣或者設(shè)計原則讓我走的更遠,指導著我構(gòu)建出大規(guī)模、通用的機器學習系統(tǒng)。”
以下為全文分享:
近年來,隨著“神經(jīng)網(wǎng)絡縮放法則(Neural Scaling Laws)”的誕生,人們能夠更加方便的利用起互聯(lián)網(wǎng)上大規(guī)模的數(shù)據(jù),也就是使用無監(jiān)督的方法進行預訓練操作,當然還有一些其他關(guān)于模型的工作。這就為機器學習未來的發(fā)展指出了一條令人興奮的道路:
對于泛化來說,數(shù)量巨大而內(nèi)容豐富的數(shù)據(jù)是很重要的,遠比那些巧妙的模型設(shè)計技巧更加有效。
如果你相信上一點的話,那么你所訓練的模型的泛化能力,將和你喂給模型的數(shù)據(jù)的多樣性以及速度,呈現(xiàn)出明顯的正比例關(guān)系。
所以很多人認為,如果你使用有監(jiān)督的數(shù)據(jù)去訓練你的深度學習模型,那么你的模型就會像個容量很大的“數(shù)據(jù)海綿”一樣——它們可以記住大量的數(shù)據(jù),并且可以通過數(shù)以萬計的批量訓練過程,快速的學習、記憶并且輸出模型結(jié)果。
也許你會說數(shù)據(jù)多了也沒用,好多模型的學習容量就僅此而已。但是目前來看,ResNet和Transformers這樣的現(xiàn)代深度學習架構(gòu)還處于一種“沒有吃飽”的狀態(tài),他們在訓練的過程中還能吃下更多的有監(jiān)督數(shù)據(jù)。
我們知道,在模型訓練的過程中,如果損失函數(shù)(或者叫經(jīng)驗風險)降低到最低的時候,這個模型在理論上就已經(jīng)“記住”了喂入的訓練集。從傳統(tǒng)的意義上來講,當損失函數(shù)降低到最小之后,如果繼續(xù)訓練的話,會出現(xiàn)過擬合的問題。
但是對于參數(shù)量和泛化能力驚人的深度學習模型來說,似乎即便是過擬合了,它的泛化能力表現(xiàn)的也還不錯。以下是“Patterns, Prediction, and Actions”一書中關(guān)于“雙重下降(Double Descent)”現(xiàn)象的描述:它說明了在某些問題上,即使訓練損失完全最小化,過度的訓練模型也能繼續(xù)減少測試誤差或測試風險。
在最近ICLR的一個Workshop中的論文也研究了這一現(xiàn)象,他們在一個合成數(shù)據(jù)集上進行了實驗。
結(jié)果表明,如果你的模型已經(jīng)收斂,損失函數(shù)很低,并且在這種零訓練損失的模式下仍然繼續(xù)訓練,當訓練的時間足夠長的時候,模型就會突然有一種“頓悟Epiphany”,并在接下來的訓練過程中學著去歸納總結(jié)(作者將之稱作“摸索Grokking”)。此外,該論文還提出了證據(jù),表明增加訓練數(shù)據(jù),實際上減少了歸納所需的優(yōu)化操作次數(shù)。
這就像我的同事Chelsea Finn曾經(jīng)跟我說的那樣:“記憶是走向泛化的第一步!”
結(jié)果中表示,如果我們過度訓練,用這樣的方式訓練出來的最先進的神經(jīng)網(wǎng)絡模型,能夠做出真正讓人印象深刻的事情。我們在這里展示一個DALL-E模型。當我們告訴它,要生成一個“一只香蕉在表演脫口秀”的時候,它畫出了這樣的圖片:
一張不過癮?再來一個。如果我們讓DALL-E生成“一個戴著耳機的熊貓寶寶盯著鏡子里的倒影”的圖片。
請注意,在我們喂給模型的訓練數(shù)據(jù)中并沒有“熊貓照鏡子”或者“香蕉樣子的喜劇演員”這樣的圖片(我覺得),所以這些結(jié)果表明,DALL-E模型已經(jīng)學會從文本中區(qū)分并解釋不同的概念,然后在圖像中渲染對應的事物實體,并讓它們在一定程度上做出我們想要的動作或狀態(tài)。
細思極恐,我們只要通過這種“單純命令(Just Ask)”的語言命令,就能指導深度學習模型來輸出或執(zhí)行一些我們甚至都不知道是什么玩意兒的東西。這啟發(fā)了我們!讓我們覺得,這種“提示工程Prompt engineering”式的模型,能夠用來改善我們的機器學習模型。這里我們展出一條推文,討論了用“虛幻引擎Unreal Engine”這個詞兒給VQGAN+CLIP模型打底,是怎么讓圖像質(zhì)量大幅提高的。
進一步來說,如果我們能夠?qū)?/span>“只要求泛化”這一原則擴展到其他無法進行性能分析的挑戰(zhàn)性問題上呢?
與監(jiān)督學習相比,強化學習算法在面對大量差異化的數(shù)據(jù)時,其利用能力和計算效率要低的多。為了深入了解為什么會這樣,讓我們考慮一個思想實驗:我們要去訓練一個通用的機器人,讓這個機器人在非結(jié)構(gòu)化的環(huán)境中完成數(shù)百萬的任務。
標準的馬爾可夫決策過程設(shè)置如下:策略被表示為行動的狀態(tài)條件分布,p(a|s);而環(huán)境則由獎勵函數(shù)組成:r(st,at);轉(zhuǎn)換函數(shù)表示為p(st+1|st,at)。初始狀態(tài)和任務目標被編碼在初始狀態(tài)s0中,它是一個從分布p(s0)中取樣的。
我們算法的目標是使整個事件中的獎勵函數(shù)之和最大化,在不同的初始狀態(tài)下取樣自p(s0):
讓我們假設(shè)存在某種“最優(yōu)策略”,該策略可以實現(xiàn)最大化的激勵max0(R0)?!癝upremum”可能在這種情況下更合適,但是為了讓這個式子更好的計算和記憶,我們簡化之。我們想讓模型p(theta(a|s)盡可能的接近于p*(a|s).
如果我們能夠得到最優(yōu)策略p*(a|s),并將之稱作“上帝視角Oracle”,并可以像有監(jiān)督的數(shù)據(jù)集一樣通過查詢上帝視角來獲取其標簽。這樣的話,我們就可以去訓練一個前饋策略,將狀態(tài)映射到上帝視角上,并且享受一切監(jiān)督學習方法所特有的優(yōu)點:穩(wěn)定的訓練過程和操作、大批量、多樣化的離線數(shù)據(jù)集,不用費勁兒和環(huán)境互動。
然而,在強化學習中,我們往往沒有專家系統(tǒng)可以查詢,所以,我們必須從模型自身所收集的經(jīng)驗數(shù)據(jù)中找到監(jiān)督信息,并據(jù)此改進我們的策略。要做到這一點,我們需要估計出,能夠使模型策略更接近于最優(yōu)點的梯度,這就需要得到當前策略在這個環(huán)境中的平均偶發(fā)回報值(average episodic return of the current policy),然后估計該回報相對于參數(shù)的梯度。如果你把環(huán)境收益當做一個關(guān)于某些參數(shù)的黑箱來看的話,你可以使用對數(shù)衍生技巧(log-derivative)來估計這些梯度。
這個梯度估計包含兩個期望組成,我們需要對其進行數(shù)學近似。首先是計算其本身,它是對起始狀態(tài)的一個期望值。在我之前的文章中,我提到過對二項式變量(例如機器人在單一任務上的成功率)的精確估計可能需要成千上萬次的實驗,這樣才能達到百分之幾的統(tǒng)計確定性。這是對于當時我那篇文章中假設(shè)的通用型機器人來說的。
但是我們的任務可能包括數(shù)以百萬計的任務和數(shù)不清的超多場景,那這使得精確評估的成本過高,可能我們強化學習算法還沒學會,時間卻過去幾百年了。
第二個期望是在策略梯度的估計中遇到的一些算法,比如CMA-ES,直接從策略參數(shù)分布中采樣樣本,而其他強化學習算法,如PPO,則是從策略分布p_theta(a|s)中抽取樣本,并使用反向傳播法則來計算收益相對于參數(shù)的梯度。
而后者通常是實際中最常用的解決方法,因為行動參數(shù)的搜索空間,通常要比策略參數(shù)的搜索空間要小(因此需要更少的環(huán)境交互來估計梯度)。
如果在一個單一的上帝視角標記的標簽a~p*(a|s)上進行監(jiān)督的克隆操作,會得到一些監(jiān)督的梯度向量g*。但是如果使用強化學習的話,想要達到同樣的效果,是需要相當于O(H(s0)*H(a))倍的梯度向量監(jiān)督才能實現(xiàn)的,而且其估計只能看做是一個相對較低的變異估計(low-variance estimate)。這種操作無疑是十分復雜的,會讓我們的人工成本和操作過程十分復雜,手忙腳亂。在這種操作中,我們需要假設(shè)初始狀態(tài)的熵分布有一個乘法系數(shù)O(H(s0)),并用其來估計R(theta)的分布。而且還要用O(H(a))來估計Delta_thetaR(theta)本身。
所以說,強化學習,尤其是在獎勵稀疏化、多樣化、任務可能是多樣性的場景中進行在線的強化學習,是需要大量的輪回滾動來準確估計回報以及他們的梯度向量的。
你必須在每一個小批量(mini-batch)的更新中來提供這些信息,這是這種操作所必須的成本!當環(huán)境需要處理繁復多樣化的場景,并要求對未見過的情況進行歸納、總結(jié)和預測的時候,會需要在訓練的過程中提供更多更全面的訓練數(shù)據(jù)樣本,也要求數(shù)據(jù)樣本具有更加全面的多樣化。
OpenAI DOTA的開發(fā)團隊發(fā)現(xiàn),在訓練過程中,只有他們的mini-batch中擁有數(shù)以百萬計的樣本的時候,才能將梯度噪聲降低到可以接受的水平。
這在直覺上是可以講的通的:如果我們是模型R(theta),在我們進行訓練和學習的時候,每次接收mini-batch個樣本,而我們需要去對s0個場景進行學習區(qū)分,而且還不能狗熊掰棒子似的學著新的而慢慢忘了之前的,那么當我們從監(jiān)督學習轉(zhuǎn)變成在線強化學習的時候,可能就會需要更大的訓練樣本量,更多的訓練batch,這個樣本個數(shù)的增加可能是數(shù)倍、數(shù)十倍的增加。
既然在線強化學習不太行,那離線版本的強化學習會不會更好呢?我們現(xiàn)在討論一下Deep Q-Learning這樣的離線強化學習方法在(S,A,R,S)這樣的數(shù)據(jù)集上的表現(xiàn)。
這種方法是通過bootstrapping來工作的。其中我們將價值函數(shù)回歸到的目標值是使用相同網(wǎng)絡對下一個狀態(tài)的最佳動作值估計的副本來計算的。
這些離線強化學習方法的吸引力在于,你可以從不同的、離策略的數(shù)據(jù)中得到最佳的策略,因此就不需要去和環(huán)境進行交互。像QCL這樣的Q learning的改進版本的算法,在離線數(shù)據(jù)集上的效果還能更好,并且在數(shù)據(jù)量較小的模擬控制環(huán)境中還顯示出了出色的性能和令人興奮的前景。
但不幸的是,bootstrapping并不能和泛化很好的結(jié)合起來。眾所周知,函數(shù)近似(function approximation)、Bootstrapping和Off Policy data(學習來自目標策略之外的數(shù)據(jù))這三個操作都會導致訓練的不穩(wěn)定性。
我認為在強化學習中,這個問題只會越來越嚴重,越來越被放大,因為我們擴大了數(shù)據(jù)集的規(guī)模,并期望在越來越抽象和一般化的任務上訓練它們。
這項工作表明,反復的bootstrapping會迭代地降低神經(jīng)網(wǎng)絡的泛化能力和容量。如果你也同意深層神經(jīng)網(wǎng)絡的過度訓練是泛化的關(guān)鍵這一觀點的話,那么對于相同的神經(jīng)網(wǎng)絡架構(gòu),離線強化學習就不像監(jiān)督學習那樣具有“數(shù)據(jù)吸收 Data Absorbent”的能力。
在實踐中,即便是一些優(yōu)化后的強化學習算法,比如CQL,它們在數(shù)據(jù)量很大、真實世界的數(shù)據(jù)集上進行擴展和調(diào)試的話,仍然具有很大的挑戰(zhàn)性。我的同事曾經(jīng)在大規(guī)模機器人問題上嘗試了AWAC和CQL的幾種擴展變化的算法,發(fā)現(xiàn)它們比行為克隆(Behavior Cloning)這樣的原始的方法更難處理、更棘手。
那么我們自然會想到,與其費勁周折折騰半天,不如將經(jīng)歷放在深層網(wǎng)絡所擅長的方面——通過有監(jiān)督的學習和對大規(guī)模的數(shù)據(jù)泛化來快速獲取數(shù)據(jù),這樣做的話,效果如何?我們是否能夠通過利用泛化的工具而不是直接優(yōu)化的操作來完成強化學習的學習目的?
如果我們將泛化作為算法設(shè)計的首要任務,或者說一等公民,并將其他的一切都視作是為其服務的二等公民,會發(fā)生什么呢?然后當我們可以通過監(jiān)督學習簡單地學習所有的策略,并“禮貌的要求just ask nicely”般地要求其進行某些策略學習,又會發(fā)生什么呢?
讓我們來看一下最近新興的關(guān)于Decision Transformer(DT)的工作,作者沒有對單一的策略進行建模,而是用強化學習對齊進行迭代改進,他們只是用監(jiān)督學習加上一個順序模型來預測許多不同的策略的軌跡。
這個模型以回報率作為條件,以便它可以預測于實現(xiàn)這些回報的這個策略相一致的行動。Decision Transformer只是用監(jiān)督學習對所有策略,包括好的和壞的,進行建模,然后利用深度學習泛化的魔力,從專家挑戰(zhàn)的策略中進行推斷。
這些現(xiàn)象其實已經(jīng)在之前的一些同時期進行的工作結(jié)果中被發(fā)現(xiàn),并且得到了一些利用和發(fā)展,比如獎勵條件策略(Reward-Conditioned Policies)、顛倒強化學習(Upside Down Reinforcement Learning)和“強化學習作為一個大序列建模問題Reforcement Learning as One Big Sequence Modeling Problem”。
AlphaStar團隊還發(fā)現(xiàn),以人類玩家的統(tǒng)計數(shù)據(jù)(例如他們最終建造的未來單位)為條件,用來模仿所有的玩家數(shù)據(jù),比只去模仿專家級別的建造命令的訓練效果要好。
這種技術(shù)也常用于自動駕駛的汽車領(lǐng)域,對好的司機和技術(shù)不佳的司機進行聯(lián)合的建模,盡管自動駕駛策略只被用來模仿好的駕駛行為,但是這樣的訓練方法通常會得到較好的訓練結(jié)果和模型。
在一些高層級語義的場景中,Decision Transformer將監(jiān)督下的學習目標以一些高層次的描述為條件,這些描述根據(jù)g的值來劃分策略在未來會做什么。
對于強化學習任務來說,反向的操作(return to go)是強化學習中很占分量的操作,但是你也可以通過目標狀態(tài)或《星際爭霸》的構(gòu)建順序,甚至是對所完成的工作的自然語言描述來表達未來的結(jié)果。
在"Learning Latent Plans from Play"一文中,作者將任意的算法軌跡與事后的自然語言命令描述內(nèi)容進行配對,然后訓練一個模型來克隆那些以語言描述為條件的行為。
在測試的過程中,他們則會簡單的要求這個策略以零為起點的方式完成一項新的任務。這些技術(shù)的好處是,它們對于在像螞蟻迷宮這樣的強化學習任務中,以少量探索(即稀疏)的目標驅(qū)動是與生俱來的。這就支持了這樣的說法:在長周期的任務中,跨目標條件的泛化、概括和推理可以比對單一稀疏目標的暴力搜索做的更好。
語言是作為條件輸入的一個良好的選擇,因為它不僅可以用來劃分算法軌跡,還可以按任務進行劃分,按照策略的探索成都劃分,按照它所達到的“動物性”的程度進行劃分,還按照人類可能對算法軌跡的任何其他觀察和評價指標進行劃分。
輸入的語言句子可以是臨時拼湊的,比較隨意,不用特意為機器人可能完成的所有結(jié)果,特意開發(fā)一個正式的專業(yè)語法甚至語言。
對于現(xiàn)實世界的結(jié)果和行為的多樣性,語言是一種理想的“模糊”標識,隨著我們要對越來越多的數(shù)據(jù)集進行操作、劃分和分割,用自然語言進行命令的輸入和執(zhí)行,將會越來越重要。
我最近發(fā)現(xiàn)了一項有意思的工作,并且從中受到啟發(fā):D-REX,它解決了從次有策略的演示和數(shù)據(jù)中推斷出環(huán)境的獎勵函數(shù)的問題。
之前的時候,我們的訓練場景中,都是默認輸入給我們的系統(tǒng)和模型的都是最佳的策略,在這種情況中,我們能夠使用離策略算法,比如Q learning來估計價值函數(shù)。
使用深度神經(jīng)網(wǎng)絡的離線價值估計方法可能會對不在演示軌跡中的狀態(tài)-動作數(shù)據(jù)對產(chǎn)生不良的泛化作用,因此需要仔細調(diào)整算法,以確保價值函數(shù)的收斂。
一個收斂性差的算法會使訓練損失最小化,從而使得泛化的能力和最終收斂到的狀態(tài)十分脆弱。
D-REX提出了一個非常聰明和睿智的小技巧,來在數(shù)據(jù)策略是次優(yōu)的情況下,繞過根本沒有任何獎勵標簽的問題:
給出一個次優(yōu)的策略pi_theta,通過允許策略于環(huán)境的互動來生成軌跡滾動圖。在軌跡滾動圖中,向動作數(shù)據(jù)中添加一定量的噪聲sigma。
假設(shè)添加噪聲的操作會讓次優(yōu)的策略的效果更差,也就是R(tao)>R(tao+sigma).
訓練一個評分模型f_theta(tao_i, tao_j)來預測tao_i和tao_j誰有更高的評分,然后返回更高者。
評分模型可以神奇地推斷出tao_theta能夠推斷出的模型中,哪個的效果比較好,即便評分模型從未在軌跡上訓練得比pi_theta更優(yōu)。
實話說,我很喜歡這種方法,因為評分模型訓練起來是很穩(wěn)定的,它們只是一些分類器,而且這種方法不是通過貝爾曼不等式的方法明確構(gòu)建或者通過學習模型的隱性規(guī)劃來實現(xiàn)優(yōu)于示范者的行為,而是通過對一系列擾動的推斷來實現(xiàn)的。
在前文中,我們描述了如何“泛化和推斷”從而繞過搜索,甚至可以從稀疏的獎勵結(jié)果中進行逆向的強化學習。但是,我們是否想過“根據(jù)策略自身的經(jīng)驗進行改進,tabular rasa”呢?這是人們?nèi)淌軐崿F(xiàn)RL算法的痛苦的主要原因。我們可以用監(jiān)督學習算法和一些泛化來替代它嗎?
強化學習的目標是從當前的參數(shù)集合theta^n和一些收集到的策略經(jīng)驗tao,來變化學習成一組新參數(shù)theta^(n+1),從而來實現(xiàn)更高的回報和價值結(jié)果。那么,我們是否可以不使用“適當?shù)摹睆娀瘜W習算法來更新智能體函數(shù),而是轉(zhuǎn)而通過監(jiān)督深度學習f:(theta^n,tao)->theta^(n+1)來直接學習這個映射呢?
這個想法有時候也被成為“元強化學習meta reinforcement learning”,因為它的目標,涉及到了學習比現(xiàn)成的強化學習算法更好的強化學習函數(shù)。
我和我的同事將這個想法應用于一個項目之中。在這個項目中,我們訓練了一個神經(jīng)網(wǎng)絡,它從一個較小的策略經(jīng)驗的視頻中預測“改進的策略行為”。即使我們從未在最優(yōu)策略軌跡上進行訓練,也許足夠的數(shù)據(jù)增強可以使得一般改進算子外推到參數(shù)的最優(yōu)策略機制。
人們經(jīng)常將這種策略改進行為與DQN和PPO等“強化學習算法”混為一談,但實際上,它們的行為與實現(xiàn)有些差異。“策略改進操作Policy improvement operator” f:(theta^n,tao)->theta^(n+1)可以通過你選擇的強化學習或監(jiān)督學習來進行學習,但以類似強化學習的方式進行部署,從而來和環(huán)境進行交互。
下面,我給出一個表格,表格中總結(jié)了前面提到的強化學習的問題,并比較了如何使用“泛化和推斷”的方法,而不是直接優(yōu)化的方式,來解決其中的每個問題。
目標 | 直接優(yōu)化方法 | 泛化+推斷的方法 |
具有稀疏獎勵的強化學習 | 找到p*(at|st) 來讓Rt=1, 使用暴力搜索思路 | DT:從眾多策略中學習p(at|st, Rt),推斷p(at|st, Rt=1)。H.E.R推斷收集軌跡最佳的任務,然后學習p(trajectory|task)。然后推斷所需任務的最佳軌跡。 |
從次優(yōu)軌跡中學習獎勵函數(shù) | 離線反向強化學習 | D-REX:軌跡增強+推斷更好的軌跡。 |
從經(jīng)驗中改進策略 | Q Learning,策略梯度 | Watch Try Learn:學習p(theta^n+1|theta^n, tao, task)。 |
在真實的環(huán)境中微調(diào)模擬策略 | 樣本高效的強化學習微調(diào) | 領(lǐng)域隨機:在仿真數(shù)據(jù)和環(huán)境中訓練,然后規(guī)則推測出在測試和預測階段中這是屬于那個世界(infers which world)。 |
用高概括的語言進行控制的方式很簡單。如果你想找到問題xi的解決方法yi,可以考慮首先設(shè)定問題和解決方案的配對所構(gòu)成的數(shù)據(jù)集(x1, y1), ..., (x2, y2),然后預訓練一個深度神經(jīng)網(wǎng)絡y=f_theta(x),這個神經(jīng)網(wǎng)絡就能根據(jù)你輸入的高級自然語言指令,映射到解決方案上。然后替換你想要的xi并讓深層神經(jīng)網(wǎng)絡推斷出解決方案。“問題”是最抽象的術(shù)語,它可以指代強化學習深度學習的環(huán)境、數(shù)據(jù)集,甚至是單個實例?!敖鉀Q方法/解決方案”可以標識為策略或神經(jīng)網(wǎng)絡的最佳參數(shù),或者單個預測。
目標重新標記(Goal Relabeling Techniques)等技術(shù)有助于從解決方案中生成事后的問題,但也可以通過數(shù)據(jù)集增強技術(shù)來搭建這樣的數(shù)據(jù)集。從本質(zhì)上來說,我們正在將一個困難的優(yōu)化問題轉(zhuǎn)化為一個推理問題,并在問題的分布上訓練一個監(jiān)督學習模型,這些問題的解決方案的成本相對較低。
在此,我們總結(jié)這種方法中的三個建議:
選擇一種能夠?qū)⒑A繑?shù)據(jù)集的訓練損失最小化的方法,即最大似然的監(jiān)督學習。這將有助于擴展到復雜、多樣化的數(shù)據(jù)集中,并從預測預算中獲得最大的泛化成果和達到最佳的里程碑。
如果你想學習p(y|x, task=g*),并用它來執(zhí)行任務預測g*,那就可以嘗試為許多相關(guān)但不同的任務學習p(y|x, task) g~p(g), g!=g*,那么在測試的時候只需要滿足g*就可以了。
制定出有助于劃分數(shù)據(jù)分布的條件變量,同時仍然允許對來自p(g)的保留樣本進行泛化。自然語言編碼是一個不錯的選擇。
我們可以將優(yōu)化問題轉(zhuǎn)化成為推理問題,這個操作其實并不是什么稀奇事兒。例如,SGD優(yōu)化器可以轉(zhuǎn)化為近似貝葉斯推理,因此可以通過AICO進行優(yōu)化控制。這些工作都在理論上支撐了“近似可以作為優(yōu)化的近似品”的理論根基,因為問題和算法可以相互來回轉(zhuǎn)換。
盡管如此,但是我所建議的和上述觀點稍有區(qū)別。我們沒有將順序決策問題轉(zhuǎn)化為等效的順序推理問題,我們更多的是構(gòu)建“元問題”:它們的問題描述擁有類似的分布,很容易獲得解決方案。然后我們通過將問題直接映射到解決方案來使用監(jiān)督學習解決元問題主題。
不要想的太多,我們只要用最簡單的方式訓練深度神經(jīng)網(wǎng)絡,然后要求它進行泛化就可以了。
也許在不久的未來,我們就能夠通過輸入一些特別虛幻的泛化描述("generalize to unseen")來實現(xiàn)我們的目標。
作為直接優(yōu)化的替代品,我們可以將“泛化和推斷”的原則延伸到多遠呢?這是一個“意識驅(qū)動的方法Recipe for consciousness”,也許這種方法能夠達到一些意想不到的效果:
訓練一個以自然語言為輸入的多策略模型p_theta(a|s,g),可以通過Decision Transformer或者其他的類似工具實現(xiàn)。
然后我們用這個模型來模仿各種策略:pi_1,..., pi_N,并且以這些自然語言的代理描述g為預測函數(shù)的條件輸入。
在測試時,一些默認策略p(a|s, g=Behave as yourself)與另一個智能體描述交互pi測試多個步驟,之后我們指示模型,讓它“表現(xiàn)得好像你是pi測試”。這種模型需要一種“對他人的元認知”的能力,因為它必須推斷出什么政策pi_test會在特定情況下進行。
我們復制了多策略模型p_phy~p_theta,并在單個場景中嵌入步驟(1)的多個測試時間迭代,具有數(shù)十個智能體。其中兩個智能體的最初條件是p_theta(a|s,g=表現(xiàn)得像我自己),以及p_phy(a|s,g=表現(xiàn)得像我自己)。
這會產(chǎn)生一些智能體模仿其他智能體的情況,并且所有智能體都觀察到這種行為。然后我們問p_phy,發(fā)出帶有條件上下文的動作“表現(xiàn)的好像是pi_theta冒充你”。這將需要pi_phy建模pi_theta的模仿能力,以及pi_theta知道pi_phy當前狀態(tài)的信息。
很多研究人員,比如Jurgen Schmidhuber之前曾經(jīng)討論過一個話題,就是為什么實體智能體的動態(tài)模型(或者叫世界模型)為何已經(jīng)是“有意識的”了,因為他們發(fā)現(xiàn)成功地模擬自己周圍環(huán)境的動態(tài)需要將自我表示為環(huán)境中的實體參與者。
雖然我認為“自我表示”是規(guī)劃和動態(tài)預測問題的必要條件,但是我還是認為這個框架太空洞了。它無法用于再現(xiàn)令人新服的意識模仿現(xiàn)象。你想,畢竟在每個想象的軌跡展開的過程中,都會明確的標識“自我”的任何規(guī)劃算法在當前的這種定義下都是有意識的。而其實一個A*迷宮規(guī)劃起maze-planner就能滿足意識的這種定義。
在此,我所提議的是使用一種“更有說服力”的意識形式,而不僅僅是基于“對自我進行規(guī)劃的必要表示”。
算法更需要的,其實是基于對自我的理解,這種理解可以通過與任何特定目標無關(guān)的語言和行為進行傳播。例如,這個模型不僅需要了解給定的策略是如何看待自己的,還需要了解其他各種政策是如何解釋這個策略的行為,就像是扭曲一面游樂園中的鏡子一樣。我們假設(shè),通過展示對“扭曲的自我反思”的理解,這種策略將能夠?qū)W會識別自己,并模擬智能體與智能體交互中其他智能體的內(nèi)部的動機和信念。
行文至此,還有一些重要的實現(xiàn)細節(jié)我沒能詳細說明,但是在更高的層次上,我真的認為監(jiān)督學習和自然語言作為條件輸入,以及強大的智能體交互數(shù)據(jù)集是學習有趣行為的,十分優(yōu)秀的工具。這種工具能夠使得代理具有某種自我意識,也能讓其他智能體的元認知能力朝著令人新服的意識模仿的方向,邁出重要的一步。
Igor Mordatch先生在評閱本文的時候提出了一些有趣的問題,我們進行了相應的討論。我在這里解釋了他的問題,并在本節(jié)中給出答復。
你討論了監(jiān)督學習和強化學習,那么你是如何看待無監(jiān)督學習和“蛋糕類比The Cake Analogy”問題的呢?
答:我認為無監(jiān)督學習只是針對不同任務的監(jiān)督學習而已,它具有可比的梯度方差,因為除了增強之外,目標通常不會被嘈雜有噪地估計。最大似然估計和對比算法,比如InfoNCE,似乎都有助于促進龐大模型的泛化。
對于穩(wěn)重強化學習的第一個難點,也就是評估成功,是否也和當前的生成模型有類似的地方?我們很難妥善的去評估語言模型,比如我們可以看到很多人對BLEU分數(shù)的不滿,也能看到基于非似然性的生成圖像模型評估似然性是很困難的。
答:與無似然生成模型類似,它需要大量計算來進行訓練、采樣,或者似然估計。然而,在實踐中,我認為評估所帶來的負擔是不能直接拿來比較的,因為邊緣化對此類模型的觀察的計算費用,與強化學習中成功率估計的邊緣化相比的話,相形見絀。在強化學習中,你必須在O(硬幣反轉(zhuǎn))*O(初始化狀態(tài)分布)*O(動作分布)上推斷出環(huán)境,從而獲得“在所有狀態(tài)和任務中提高成功率”的低方差策略梯度。O(反轉(zhuǎn)硬幣)是O(1000)個樣本級別的操作,用于在統(tǒng)計確定性的情況下,局部改進幾個百分點,而我認為,如果使用Langevin采樣O(minibatch=32)等技術(shù)的話,隱含可能性的邊緣化成本往往是更便宜的。此外,Langevin動力學中使用的反向傳播傳遞,通常比運行完整的環(huán)境模擬(在每一步都向前傳遞神經(jīng)網(wǎng)絡)更便宜。
當前語言模型工作的一項發(fā)現(xiàn)是,你真正想要的智能體目標函數(shù),其實已經(jīng)足夠好了。簡單的下一個token的預測方法會導致泛化問題。但是,在大型模型的領(lǐng)域中,如果你想讓代理和你想要的結(jié)果真正保持一致的話,還是一個難題,而且我們還沒有很好的解決方法(其實很諷刺的是,迄今為止,許多嘗試都是和強化學習一起來使用)。
答:對齊目標可能缺少每個樣本實例的替代損失。但是在“泛化,然后推斷”的流派中,我會簡單地建議去學習p(y|x, alignment objective)這一目標,與眾多事后對齊目標的最大似然,然后在測試的時候簡單的以所需的對象對齊為條件進行模型構(gòu)建。人們可以通過簡單的實時運行模型來獲得對齊描述的分布,然后用模型實現(xiàn)的相應對齊,進行事后標記。然后我們就可以簡單的調(diào)用Connor Leahy的這個方法:
僅僅讓AI去做某件事,這個方法聽起來好像很輕率和不靠譜,但是在看到DALL-E和其他大規(guī)模多模態(tài)模型的表現(xiàn)之后,我們能夠發(fā)現(xiàn),似乎隨著模型變大,泛化效果會變得更好。因此,反過來,我們應該更認真的對待這些簡單的、邊緣幼稚的想法。
對于強化學習(梯度估計)的第二個難點,我們能夠通過環(huán)境動態(tài)進行反向傳播,從而獲得更加準確的策略梯度。但是這樣做,通常會導致更糟糕的結(jié)果。
答:這個問題讓我想起了Yann Lecun的一篇舊聞,是關(guān)于FB的評論。他是討論ReLU激活估計Hessian向量乘積的方法的,其中說可以使用隨機估計器而不是精確的計算來分析Hessian,因為Relu的二階曲率是0,并且我們其實想得到的是函數(shù)平滑版本的Hessian向量乘積。
如果你不想使用動態(tài)信息,也不想使用無偏隨機估計,而是想用可微分的模擬方式進行訓練,那么我認為你又需要進行很繁瑣的估計的怪圈之中。因為很多時候,你需要經(jīng)過多次推導來推出平滑模擬方程,并減少其方差。但是,也許估計一個平滑的策略梯度所需的樣本量是一個合理的權(quán)衡,而這正是獲得梯度的一個良好的方法。
為什么像你文中提出的(概括然后推斷)這種方法看起來很簡單,但是目前為止還沒有人做出來?
答:其實一些研究員其實已經(jīng)在研究這個方向了。我的猜測是,科研界傾向于獎勵增加智能復雜性的敘述,并認為“我們需要更好的算法”。而人們則是天天嚷嚷著想要“簡單的想法”,但是很少有人愿意真正的追求簡單性的極致,并擴展現(xiàn)有的想法。
另一個原因則是,研究人員通常不會將泛化視為理所當然的事情,因此,他們通常會增添明確的歸納偏置,而不去把歸納作為第一等需要考慮的事情來做,也不會專門兒去為了支持它而調(diào)整其他的設(shè)計和設(shè)定。
你關(guān)于意識的建議很好玩,它和Schmidhuber的“世界中的意識”,F(xiàn)riston的“自由能量原理”,以及霍金的“思想記憶”的想法,有什么關(guān)系呢?
我認為Schmidhuber和Friston的統(tǒng)一理論,或多或少的說明了“優(yōu)化控制需要良好的未來預測,而我在其中的未來預測,則需要自我呈現(xiàn)”。如果我們拿大型語言模型中的下一個單詞預測做類比的話,也許就能完美地優(yōu)化下一個狀態(tài)的預測就足以歸納出所有意識類型的腥味,比如心智理論和我上面提到的有趣的自我反思的例子。然而,這需要一個環(huán)境,在這個環(huán)境中,準確預測這種動態(tài)對觀察的可能性有很大的影響。我對Schmidhuber和Fristo的框架其實也有一些不同的想法,就是它們太籠統(tǒng)了,甚至可以普遍適用于海蛞蝓和人類。如果未來的預測需要一定的環(huán)境復雜性,以產(chǎn)生人類能接受的有意識的東西,那么主要的挑戰(zhàn)是明確系統(tǒng)中的最小的復雜性是什么。
霍金的“意識是感知記憶”的理論似乎等多的與意識的主觀質(zhì)感方面有關(guān),而不是與心靈理論相關(guān)。請注意,大多數(shù)人并不認為一個連接numpy數(shù)組的程序能夠像人類那樣“體驗到質(zhì)感”的感覺。也許缺少的是元認知方面的一些事情,比如策略需要表現(xiàn)出的行為表明,它在思考它所經(jīng)歷的事情。同樣的,這需要一個精心設(shè)計的環(huán)境來要求這種元認知行為。
我認為這可以從我前文描述的心智理論模仿問題的訓練部分中出現(xiàn),因為代理函數(shù)將需要訪問關(guān)于它如何感知事物的一致性表征,并通過各種“其他代理的視角”來轉(zhuǎn)化它。能夠通過自己對其他代理 的感知能力的表征,來投射自己對感覺觀察的表征,這種靈活的特性讓我相信,這種代理理解了它可以對質(zhì)感進行充分的元認知。
你對意識的表述只關(guān)注心智理論的行為,那對于注意力行為來說又是什么樣的呢?
答:可以參考回答6的第二段。
在Rich Sutton的Bitter Lesson Essay中,他認為搜索和學習都很重要。你也認為搜索可以完全被學習方法所取代嗎?
答:我是這樣認為的:如果在你的程序中有一點搜索的話,是能夠?qū)W習和整體的表現(xiàn)有極大的幫助的。但這有點像蛋生雞和雞生蛋的關(guān)系一樣。我們想一下,AlphaGo的成功是因為MCTS使用了一個可學習的價值函數(shù)來搜索所帶來的?然后策略的蒸餾只是因為搜索才起作用的嗎?我的建議是,當搜索變得太難的時候(很多強化學習任務都是如此),那么可以使用更多的學習操作來進行訓練。其實,在進行監(jiān)督學習的時候,你仍然在進行搜索,有所區(qū)分的是,你在每一次計算中都能得到更多的梯度信號而已。
原文鏈接:https://evjang.com/2021/10/23/generalization.html
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。