從Transformer到擴(kuò)散模型,一文了解基于序列建模的強(qiáng)化學(xué)習(xí)方法
大規(guī)模生成模型在近兩年為自然語(yǔ)言處理甚至計(jì)算機(jī)視覺(jué)帶來(lái)的巨大的突破。最近這股風(fēng)潮也影響到了強(qiáng)化學(xué)習(xí),尤其是離線強(qiáng)化學(xué)習(xí)(offline RL),諸如 Decision Transformer (DT)[1], Trajectory Transformer(TT)[2], Gato[3], Diffuser[4]這樣的方法,將強(qiáng)化學(xué)習(xí)的數(shù)據(jù)(包括狀態(tài),動(dòng)作,獎(jiǎng)勵(lì)和 return-to-go)當(dāng)成了一串去結(jié)構(gòu)化的序列數(shù)據(jù),并將建模這些序列數(shù)據(jù)作為學(xué)習(xí)的核心任務(wù)。這些模型都可以用監(jiān)督或自監(jiān)督學(xué)習(xí)的方法來(lái)訓(xùn)練,避免了傳統(tǒng)強(qiáng)化學(xué)習(xí)中比較不穩(wěn)定的梯度信號(hào)。即便使用復(fù)雜的策略提升 (policy improvement) 和估值 (value estimation) 方法,它們?cè)陔x線強(qiáng)化學(xué)習(xí)中都展現(xiàn)了非常好的表現(xiàn)。
本篇將簡(jiǎn)單談?wù)勥@些基于序列建模的強(qiáng)化學(xué)習(xí)方法,下篇筆者將介紹我們新提出的,Trajectory Autoencoding Planner(TAP),一種用 Vector Quantised Variational AutoEncoder (VQ-VAE)進(jìn)行序列建模并進(jìn)行高效的隱動(dòng)作空間(latent action space)內(nèi)規(guī)劃的方法。
Transformer 與強(qiáng)化學(xué)習(xí)
Transformer 架構(gòu) [5] 于 2017 年提出之后慢慢引發(fā)了自然語(yǔ)言處理的革命,后續(xù)的 BERT 和 GPT-3 逐漸將自監(jiān)督 + Transformer 這個(gè)組合不斷推向新的高度,在自然語(yǔ)言處理領(lǐng)域不斷涌現(xiàn)出少樣本 (few-shot) 學(xué)習(xí)等性質(zhì)的同時(shí),也開(kāi)始向諸如計(jì)算機(jī)視覺(jué)的領(lǐng)域不斷擴(kuò)散[6][7]。
然而對(duì)于強(qiáng)化學(xué)習(xí)來(lái)說(shuō),這個(gè)進(jìn)程似乎在 2021 年之前都不是特別明顯。在 2018 年,多頭注意力機(jī)制也被引入強(qiáng)化學(xué)習(xí) [8],這類工作基本都是應(yīng)用在類似半符號(hào)化(sub-symbolic) 的領(lǐng)域嘗試解決強(qiáng)化學(xué)習(xí)泛化的問(wèn)題。之后這類嘗試就一直處于一種不溫不火的狀態(tài)。根據(jù)筆者個(gè)人的體驗(yàn),實(shí)際上 Transformer 在強(qiáng)化學(xué)習(xí)上也并沒(méi)有展現(xiàn)出穩(wěn)定的壓倒性的優(yōu)勢(shì),而且還很難訓(xùn)練。在 20 年我們的一個(gè)用 Relational GCN 做強(qiáng)化學(xué)習(xí)的工作中 [9],我們其實(shí)也在背后試過(guò) Transformer,但是基本比傳統(tǒng)結(jié)構(gòu)(類似 CNN)差得多,很難穩(wěn)定訓(xùn)練得到一個(gè)能用的 policy。為什么 Transformer 和傳統(tǒng)在線強(qiáng)化學(xué)習(xí)(online RL)的相性比較差還是個(gè)開(kāi)放問(wèn)題,比如 Melo[10] 解釋說(shuō)是因?yàn)閭鹘y(tǒng)的 Transformer 的參數(shù)初始化不適合強(qiáng)化學(xué)習(xí),在此我就不多做討論了。
2021 年年中,Decision Transformer (DT)和 Trajectory Transformer(TT)的發(fā)表掀起了 Transformer 在 RL 上應(yīng)用的新大潮。這兩個(gè)工作的思路其實(shí)很直接:如果 Transformer 和在線強(qiáng)化學(xué)習(xí)的算法不是很搭,那要不干脆把強(qiáng)化學(xué)習(xí)當(dāng)成一個(gè)自監(jiān)督學(xué)習(xí)的任務(wù)?趁著離線強(qiáng)化學(xué)習(xí)這個(gè)概念也很火熱,這兩個(gè)工作都將自己的主要目標(biāo)任務(wù)鎖定為建模離線數(shù)據(jù)集(offline dataset),然后再將這個(gè)序列模型用作控制和決策。
對(duì)于強(qiáng)化學(xué)習(xí)來(lái)說(shuō),所謂序列就是由狀態(tài)(state) s ,動(dòng)作(action) ,獎(jiǎng)勵(lì)(reward) r 和價(jià)值(value) v 構(gòu)成的軌跡(trajectory)
。其中價(jià)值目前一般是被用 return-to-go 來(lái)替代,可以被看成是一種蒙特卡洛估計(jì)(Monte Carlo estimation)。離線數(shù)據(jù)集就由這一條條軌跡構(gòu)成。軌跡的產(chǎn)生和環(huán)境的動(dòng)力學(xué)模型(dynamics)以及行為策略(behaviour policy)
有關(guān)。而所謂序列建模,就是要建模產(chǎn)生產(chǎn)生這個(gè)序列的概率分布(distribution),或者嚴(yán)格上說(shuō)是其中的一些條件概率。
Decision Transformer
DT 的做法是建模一個(gè)從過(guò)往數(shù)據(jù)和價(jià)值到動(dòng)作的映射 (return-conditioned policy),也就是建模了一個(gè)動(dòng)作的條件概率的數(shù)學(xué)期望 。這種思路很類似于 Upside Down RL[11],不過(guò)很有可能背后的直接動(dòng)機(jī)是模仿 GPT2/3 那種根據(jù)提示詞(prompt) 完成下游任務(wù)的做法。這種做法的一個(gè)問(wèn)題是要決定什么是最好的目標(biāo)價(jià)值
沒(méi)有一個(gè)比較系統(tǒng)化的方法。然而 DT 的作者們發(fā)現(xiàn)哪怕將目標(biāo)價(jià)值設(shè)為整個(gè)數(shù)據(jù)集中的最高 return,最后 DT 的表現(xiàn)也可以很不錯(cuò)。
Decision Transformer, Figure 1
對(duì)于有強(qiáng)化學(xué)習(xí)背景的人來(lái)說(shuō),DT 這樣的方法能取得很強(qiáng)的表現(xiàn)是非常反直覺(jué)的。如果說(shuō) DQN,策略梯度(Policy Gradient)這類方法還可以只把神經(jīng)網(wǎng)絡(luò)當(dāng)成一個(gè)能做插值泛化的擬合函數(shù),強(qiáng)化學(xué)習(xí)中的策略提升、估值仍然是構(gòu)造策略的核心的話。DT 就完全可以說(shuō)是以神經(jīng)網(wǎng)絡(luò)為核心的了,背后它如何把一個(gè)可能不切實(shí)際的高目標(biāo)價(jià)值聯(lián)系到一個(gè)合適的動(dòng)作的整個(gè)過(guò)程都完全是黑箱。DT 的成功可以說(shuō)從強(qiáng)化學(xué)習(xí)的角度來(lái)看有些沒(méi)有道理,不過(guò)我覺(jué)得這也正是這種實(shí)證研究的魅力所在。筆者認(rèn)為神經(jīng)網(wǎng)絡(luò),或者說(shuō) Transformer 的泛化能力可能超乎整個(gè) RL 社群之前的預(yù)期。
DT 在所有序列建模方法中也是非常簡(jiǎn)單的,幾乎所有強(qiáng)化學(xué)習(xí)的核心問(wèn)題都在 Transformer 內(nèi)部被解決了。這種簡(jiǎn)單性是它目前最受青睞的原因之一。不過(guò)它黑盒的性質(zhì)也導(dǎo)致我們?cè)谒惴ㄔO(shè)計(jì)層面上失去了很多抓手,傳統(tǒng)的強(qiáng)化學(xué)習(xí)中的一些成果很難被融入其中。而這些成果的有效性已經(jīng)在一些超大規(guī)模的實(shí)驗(yàn)(如 AlphaGo, AlphaStar, VPT)中被反復(fù)證實(shí)了。
Trajectory Transformer
TT 的做法則更類似傳統(tǒng)的基于模型的強(qiáng)化學(xué)習(xí) (model-based RL) 的規(guī)劃(planning)方法。在建模方面,它將整個(gè)序列中的元素都離散化,然后用了 GPT-2 那樣的離散的自回歸(auto-regressive)方式來(lái)建模整個(gè)離線數(shù)據(jù)集。這使得它能夠建模任意給定除去 return-to-go 的序列的后續(xù) 。因?yàn)榻A撕罄m(xù)序列的分布,TT 其實(shí)就成為了一個(gè)序列生成模型。通過(guò)在生成的序列中尋找擁有更好的估值(value estimation)的序列,TT 就可以輸出一個(gè)“最優(yōu)規(guī)劃”。至于尋找最優(yōu)序列的方法,TT 用了一種自然語(yǔ)言常用的方法:beam search 的一種變種?;旧暇褪怯肋h(yuǎn)保留已經(jīng)展開(kāi)的序列中最優(yōu)的一部分序列
,然后在它們的基礎(chǔ)上尋找下一步的最優(yōu)序列集
。
從強(qiáng)化學(xué)習(xí)的角度來(lái)說(shuō),TT 沒(méi)有 DT 那么離經(jīng)叛道。它的有趣之處在于(和 DT 一樣)完全拋棄了原本強(qiáng)化學(xué)習(xí)中馬爾可夫決策過(guò)程(Markov Decision Process)的因果圖結(jié)構(gòu)。之前的基于模型的方法比如,PETS, world model, dramerv2 等,都會(huì)遵循馬爾可夫過(guò)程(或者隱式馬爾可夫)中策略函數(shù)、轉(zhuǎn)移函數(shù)、獎(jiǎng)勵(lì)函數(shù)等的定義,也就是狀態(tài)分布的條件是上一步的狀態(tài),而動(dòng)作、獎(jiǎng)勵(lì)、價(jià)值都由當(dāng)前的狀態(tài)決定。整個(gè)強(qiáng)化學(xué)習(xí)社區(qū)一般相信這樣能提高樣本效率,不過(guò)這樣的圖結(jié)構(gòu)其實(shí)也可能是一種制約。自然語(yǔ)言領(lǐng)域從 RNN 到 Transformer 以及計(jì)算機(jī)視覺(jué)領(lǐng)域 CNN 到 Transformer 的轉(zhuǎn)變其實(shí)都體現(xiàn)了:隨著數(shù)據(jù)增加,讓網(wǎng)絡(luò)自己學(xué)習(xí)圖結(jié)構(gòu)更有利于獲得表現(xiàn)更好的模型。
DreamerV2, Figure 3由于 TT 基本上把所有序列預(yù)測(cè)的任務(wù)都交給了 Transformer,Transformer 就能更加靈活地從數(shù)據(jù)中學(xué)習(xí)出更好的圖結(jié)構(gòu)。如下圖,TT 建模出的行為策略根據(jù)不同的任務(wù)和數(shù)據(jù)集展現(xiàn)出不同的圖結(jié)構(gòu)。圖左對(duì)應(yīng)了傳統(tǒng)的馬爾可夫策略,圖右對(duì)應(yīng)了一種動(dòng)作滑動(dòng)平均的策略。
Trajectory Transformer, Figure 4
Transformer 強(qiáng)大的序列建模能力帶來(lái)了更高的長(zhǎng)序列建模精度,下圖展示了 TT 在 100 步以上的預(yù)測(cè)仍然保持了高精度,而遵循馬爾可夫性質(zhì)的單步預(yù)測(cè)模型很快因?yàn)轭A(yù)測(cè)誤差疊加的問(wèn)題崩潰了。
Trajectory Transformer, Figure 2TT 雖然在具體建模和預(yù)測(cè)方面和傳統(tǒng)方法有所不同,它提供的預(yù)測(cè)能力還是給未來(lái)融入強(qiáng)化學(xué)習(xí)的其它成果留出了很好的抓手。然而 TT 在預(yù)測(cè)速度上有一個(gè)重要問(wèn)題:因?yàn)樾枰U麄€(gè)序列的分布,它將序列中所有的元素按照維度進(jìn)行離散化,這也就是說(shuō)一個(gè) 100 維的狀態(tài)就需要占用序列中的 100 個(gè)位置,這使得被建模的序列的實(shí)際長(zhǎng)度很容易變得特別長(zhǎng)。而對(duì)于 Transformer,它關(guān)于序列長(zhǎng)度 N 的運(yùn)算復(fù)雜度是 ,這使得從 TT 中采樣一個(gè)對(duì)未來(lái)的預(yù)測(cè)變得非常昂貴。哪怕 100 維以下的任務(wù) TT 也需要數(shù)秒甚至數(shù)十秒來(lái)進(jìn)行一步?jīng)Q策,這樣的模型很難被投入實(shí)時(shí)的機(jī)器人控制或者在線學(xué)習(xí)之中。
Gato
Gato 是 Deepmind 發(fā)表的“通才模型”,其實(shí)就是一個(gè)跨模態(tài)多任務(wù)生成模型。用同一個(gè) Transformer 它可以完成從自然語(yǔ)言問(wèn)答,圖片描述,玩電子游戲到機(jī)器人控制等各類工作。在針對(duì)連續(xù)控制(continous control)的建模方面 Gato 的做法基本上和 TT 類似。只不過(guò) Gato 嚴(yán)格意義并不是在做強(qiáng)化學(xué)習(xí),它只是建模了專家策略產(chǎn)生的序列數(shù)據(jù),然后在行動(dòng)時(shí)它只需要采樣下一個(gè)動(dòng)作,其實(shí)是對(duì)專家策略的一種模仿。
?
Gato Blog
其它序列生成模型:擴(kuò)散模型
最近在圖片生成領(lǐng)域擴(kuò)散模型(Diffusion Model)可以說(shuō)是大紅大紫,DALLE-2 和 Stable Diffusion 都是基于它進(jìn)行圖片生成的。Diffuser 就將這個(gè)方法也運(yùn)用到了離線強(qiáng)化學(xué)習(xí)當(dāng)中,其思路和 TT 類似,先建模序列的條件分布,然后根據(jù)當(dāng)前狀態(tài)采樣未來(lái)可能的序列。
Diffuser 相比 TT 又擁有了更強(qiáng)的靈活性:它可以在設(shè)定起點(diǎn)和終點(diǎn)的情形下讓模型填充出中間的路徑,這樣就能實(shí)現(xiàn)目標(biāo)驅(qū)動(dòng)(而非最大化獎(jiǎng)勵(lì)函數(shù))的控制。它還可以將多個(gè)目標(biāo)和先驗(yàn)的達(dá)成目標(biāo)的條件混合起來(lái)幫助模型完成任務(wù)。
Diffuser Figure 1Diffuser 相對(duì)于傳統(tǒng)的強(qiáng)化學(xué)習(xí)模型也是比較顛覆的,它生成的計(jì)劃不是在時(shí)間軸上逐步展開(kāi),而是從整個(gè)序列意義上的模糊變得逐漸精確。擴(kuò)散模型本身的進(jìn)一步研究也是計(jì)算機(jī)視覺(jué)中的一個(gè)火熱的話題,在其模型本身上很可能未來(lái)幾年也會(huì)有突破。
不過(guò)擴(kuò)散模型本身目前相比于其它生成模型有一個(gè)特別的缺陷,那就是它的生成速度相比于其它生成模型會(huì)更慢。很多相關(guān)領(lǐng)域的專家認(rèn)為這一點(diǎn)可能在未來(lái)幾年內(nèi)會(huì)被緩解。不過(guò)數(shù)秒的生成時(shí)間目前對(duì)于強(qiáng)化學(xué)習(xí)需要實(shí)時(shí)控制的情景來(lái)說(shuō)是很難接受的。Diffuser 提出了能夠提升生成速度的方法:從上一步的計(jì)劃開(kāi)始增加少量噪音來(lái)重新生成下一步的計(jì)劃,不過(guò)這樣做會(huì)一定程度上降低模型的表現(xiàn)。