孫世光 蘭旭光 張翰博 鄭南寧
傳統(tǒng)的機器人控制大多基于定制化程序解決固定任務(wù),只適合簡單的結(jié)構(gòu)化環(huán)境.而對于各種復(fù)雜環(huán)境下的復(fù)雜任務(wù),機器人本身的最優(yōu)行為并不唯一,缺乏固定范式,因此無法對機器人策略進行預(yù)編程[1].近年來,學(xué)習(xí)算法的快速發(fā)展使解決此類問題成為可能.機器人學(xué)習(xí)(Robot Learning)是機器學(xué)習(xí)和機器人技術(shù)的交叉領(lǐng)域,目的是研究讓機器人通過與環(huán)境自主交互和學(xué)習(xí),獲得新技能以適應(yīng)環(huán)境,使機器人能完成復(fù)雜任務(wù).機器人學(xué)習(xí)涉及計算機視覺、自然語言處理、機器人控制等多個領(lǐng)域的研究.
在強化學(xué)習(xí)(Reinforcement Learning, RL)[2]中,機器人可通過與世界環(huán)境交互,從環(huán)境中獲得反饋并優(yōu)化自己的行動策略.深度強化學(xué)習(xí)(Deep RL, DRL)結(jié)合深度學(xué)習(xí),使用神經(jīng)網(wǎng)絡(luò)表征策略和狀態(tài),對復(fù)雜的環(huán)境更魯棒,更適用于機器人學(xué)習(xí)中的復(fù)雜任務(wù).而基于模型的強化學(xué)習(xí)(Model-Based RL, MBRL)作為強化學(xué)習(xí)的一個主要分支,通常會基于交互信息學(xué)習(xí)一個環(huán)境動力學(xué)模型(Dynamics Model),并基于該模型生成數(shù)據(jù)優(yōu)化行動策略,或利用模型進行規(guī)劃.無模型的強化學(xué)習(xí)(Model-Free RL, MFRL)不需要建模,簡單直觀,樣本效率較低,但是漸進性能較高,適用于游戲領(lǐng)域.而基于模型的強化學(xué)習(xí)需要學(xué)習(xí)模型,學(xué)到模型后會有較高的樣本效率,但缺陷是對于有些復(fù)雜任務(wù),模型不容易學(xué)到.在機器人控制領(lǐng)域,模型都有確定的物理規(guī)律作為指導(dǎo),動作空間相對較小,模型容易學(xué)到,因此基于模型的強化學(xué)習(xí)算法更適用.
目前在機器人控制領(lǐng)域,強化學(xué)習(xí)算法取得重要進展,OpenAI等[3]通過深度強化學(xué)習(xí)和虛擬到現(xiàn)實(Sim to Real)的方法,訓(xùn)練一只可玩魔方的機械手,靈活性甚至超過人類.相比無模型算法,基于模型的強化學(xué)習(xí)算法在機器人上應(yīng)用更廣泛.Levine等[4]基于引導(dǎo)策略搜索(Guided Policy Search),可讓機器人直接從攝像機原始像素中學(xué)習(xí)靈巧操作,實現(xiàn)端到端的機器人操作控制.Fazeli等[5]讓機器人學(xué)習(xí)融合視覺和觸覺的多模態(tài)的推理模型,結(jié)合規(guī)劃使機器人學(xué)會玩疊疊樂(Jenga).Fisac等[6]利用系統(tǒng)動力學(xué)模型的近似知識結(jié)合貝葉斯機制,構(gòu)建機器人控制的通用安全框架,有效提升機器人操作中的安全性.基于模型的機器人學(xué)習(xí)算法可從樣本中學(xué)習(xí)一個環(huán)境模型,基于模型學(xué)習(xí)操作技能,更適合高維圖像輸入,更接近人類的學(xué)習(xí)方式,有助于構(gòu)建人類期望中的機器人.
本文首先從機器人學(xué)習(xí)問題的建模入手,介紹馬爾科夫決策過程的相關(guān)概念,并將機器人學(xué)習(xí)問題形式化.詳細介紹機器人學(xué)習(xí)中基于模型的強化學(xué)習(xí)方法,包括主流的模型學(xué)習(xí)及模型利用的方法.主流的模型學(xué)習(xí)方法具體介紹前向動力學(xué)模型、逆向動力學(xué)模型和隱式模型.模型利用的方法具體介紹基于模型的規(guī)劃、基于模型的策略學(xué)習(xí)和隱式規(guī)劃,并對其中存在的問題進行探討.最后,結(jié)合現(xiàn)實中機器人學(xué)習(xí)任務(wù)面臨的問題,介紹基于模型的強化學(xué)習(xí)在其中的應(yīng)用,并展望基于模型的強化學(xué)習(xí)未來的研究方向.
將具有相似結(jié)構(gòu)的任務(wù)建模為一個MDP的集合(MDPs),稱為一個任務(wù)族.使用P(M)表示任務(wù)的分布,每個MDP都是一個特定的任務(wù).任務(wù)族中所有任務(wù)的動作空間都是相同的,由機器人決定.但是任務(wù)之間的狀態(tài)空間可能有所不同.第i個任務(wù)的狀態(tài)空間可表示為機器人自身的狀態(tài)空間和第i個任務(wù)環(huán)境的狀態(tài)空間的笛卡爾積:
Ri=C+Gi,
其中,C表示任務(wù)族中公共環(huán)境背景的損失函數(shù),Gi表示第i個任務(wù)的獎勵函數(shù).任務(wù)族中的多數(shù)任務(wù)環(huán)境可視為物體集合,因此也可由描述任務(wù)相關(guān)物體的變量集合描述.可將環(huán)境模型進一步分解為物體狀態(tài)的集合:
強化學(xué)習(xí)一般通過馬爾科夫決策過程建模,目標是求解特定任務(wù)的最優(yōu)策略.機器人學(xué)習(xí)中的長時決策問題也可建模成一個MDP,因此強化學(xué)習(xí)適合作為機器人學(xué)習(xí)的算法.無模型強化學(xué)習(xí)過程如圖 1所示.強化學(xué)習(xí)的主體稱為智能體(Agent).智能體首先對環(huán)境進行觀測,得知自身目前所處的狀態(tài)s,根據(jù)當前狀態(tài)進行決策,執(zhí)行某個動作a,環(huán)境接收到智能體的動作后會轉(zhuǎn)移到一個新的狀態(tài)s′,同時反饋給智能體一個獎勵r=R(s,a,s′),智能體再次對環(huán)境進行觀測執(zhí)行動作,直到到達終止狀態(tài).智能體和環(huán)境進行一次完整的交互,這個過程稱為一幕(Episode).記錄交互過程中的狀態(tài)動作,以時間序列的形式保存,稱為軌跡(Trajectory),表示為
τ={s0,a0,……,st,at,st+1,at+1,…}.
一次交互過程結(jié)束時的累積獎勵記為
圖1 無模型強化學(xué)習(xí)Fig.1 Model-free reinforcement learning
累積獎勵中折扣因子γ的存在降低未來回報對當前的影響.強化學(xué)習(xí)的最終目標是最大化累積獎勵.強化學(xué)習(xí)過程中智能體通過策略和環(huán)境交互,策略是狀態(tài)到動作的映射,可分為隨機策略和確定性策略.隨機策略會輸出一個動作的分布
a=π(·|s),
而確定性策略會輸出一個確定性的動作a=π(s).
為了優(yōu)化策略,需要評價策略的好壞,直觀方法是對比不同策略在某一特定狀態(tài)下的累計獎勵.在隨機策略π下,計算累積獎勵Gt會有多個可能值,無法進行對比,但可對Gt求期望,進行對比.因此定義累積獎勵在狀態(tài)s處的期望為狀態(tài)值函數(shù)(Value Function),簡稱值函數(shù),記為
Vπ(s)=E[Gt|st=s].
在某一狀態(tài)s處,選擇不同的動作a會導(dǎo)致不同的累積獎勵.定義在狀態(tài)s處選擇動作a的累積獎勵的期望為狀態(tài)-動作值函數(shù)(QFunction),簡稱Q值函數(shù),記為
Qπ(s,a)=E[Gt|st=s,at=a].
值函數(shù)和Q值函數(shù)關(guān)系如下[8]:
在強化學(xué)習(xí)問題中,策略與值函數(shù)一一對應(yīng),最優(yōu)策略對應(yīng)的值函數(shù)稱為最優(yōu)值函數(shù).可證明,最優(yōu)策略與最優(yōu)值函數(shù)具有等價性,該最優(yōu)值函數(shù)滿足貝爾曼最優(yōu)性原理[2]:
通常情況下,可通過迭代解法近似求解最優(yōu)值函數(shù)[2].求出最優(yōu)值函數(shù)后,可根據(jù)最優(yōu)值函數(shù)與最優(yōu)策略的關(guān)系進一步導(dǎo)出最優(yōu)策略:
無模型強化學(xué)習(xí)和基于模型的強化學(xué)習(xí)的主要區(qū)別是機器人決策過程中是否需要環(huán)境的動力學(xué)模型.無模型的強化學(xué)習(xí)方法中,機器人無法知道環(huán)境模型,只能通過不斷與環(huán)境交互,收集樣本,優(yōu)化策略以學(xué)習(xí).基于模型的強化學(xué)習(xí)會學(xué)習(xí)一個環(huán)境模型,并基于此模型進行策略優(yōu)化或規(guī)劃.基于模型的強化學(xué)習(xí)可定義為:基于一個已知或習(xí)得的模型,學(xué)習(xí)近似一個全局值函數(shù)或策略以求解MDP[9],過程如圖2所示.
圖2 基于模型的強化學(xué)習(xí)Fig.2 Model-based reinforcement learning
根據(jù)這個定義中的2個關(guān)鍵點——模型學(xué)習(xí)和策略優(yōu)化,可以將基于模型的強化學(xué)習(xí)劃分為3類[9].
1)模型已知,只需要通過規(guī)劃學(xué)習(xí)一個全局值函數(shù)或策略.
2)模型未知,需要學(xué)習(xí)模型,基于模型進行規(guī)劃而不需要學(xué)習(xí)全局值函數(shù)或策略.
3)模型未知,需要同時學(xué)習(xí)模型和全局值函數(shù)或策略.
在機器人操作領(lǐng)域,大多時候無法直接得到環(huán)境模型,因此第1類基于模型的強化學(xué)習(xí)方法應(yīng)用較少.對于一些棋牌游戲,規(guī)則是人類事先設(shè)定,可直接得到模型,如用于圍棋的AlphaGo Zero[10].第2類方法和第3類方法都需要學(xué)習(xí)環(huán)境模型,在機器人操作領(lǐng)域應(yīng)用較多.本文涉及的方法以第2類和第3類為主.
基于模型的強化學(xué)習(xí),學(xué)習(xí)環(huán)境的動力學(xué)模型是算法中不可或缺的一步.本文將動力學(xué)模型分為3類:1)前向動力學(xué)模型,2)逆向動力學(xué)模型,3)隱式模型.具體如圖3所示.
圖3 動力學(xué)模型分類Fig.3 Dynamics model taxonomy
前向動力學(xué)模型根據(jù)當前時刻狀態(tài)和當前動作預(yù)測下一時刻的狀態(tài),即(st,at) →st+1,這是目前應(yīng)用最廣的動力學(xué)模型.逆向動力學(xué)模型通過當前時刻狀態(tài)和下一時刻狀態(tài)推斷當前時刻應(yīng)采用的動作,即(st,st+1) →at,這種模型大多應(yīng)用在基于圖像為輸入的任務(wù)上.隱式模型不關(guān)注對下一時刻狀態(tài)的精確預(yù)測.
模型的學(xué)習(xí)主要有參數(shù)化方法和非參數(shù)化方法兩種.參數(shù)化方法是當前通用的模型近似方法,最基本的形式是表格模型,但僅能應(yīng)用于離散狀態(tài)空間,在早期的強化學(xué)習(xí)方法[11-12]中較常見,應(yīng)用受限,泛化性較差.機器人操作任務(wù)的狀態(tài)空間和動作空間通常都是連續(xù)的,例如,狀態(tài)可以是物體的連續(xù)位姿、機械臂的關(guān)節(jié)位置,動作是機械臂各關(guān)節(jié)的扭矩.因此環(huán)境模型也均為連續(xù)模型,故本文不再討論表格模型.參數(shù)化方法另一形式是函數(shù)近似,通過擬合一個函數(shù)以描述系統(tǒng)動力學(xué)模型.近似方法有多種,如線性回歸[13-14]、動態(tài)貝葉斯回歸(Dynamic Bayesian Networks, DBN)[15]、最近鄰[16]、隨機森林[17]、支持向量回歸[18]和神經(jīng)網(wǎng)絡(luò)[19-20].隨著深度學(xué)習(xí)的發(fā)展,深度神經(jīng)網(wǎng)絡(luò)已變?yōu)槟P蛯W(xué)習(xí)中最廣泛的方法.深度神經(jīng)網(wǎng)絡(luò)具有較優(yōu)的特征提取能力和良好的非線性函數(shù)逼近能力,能擴展到高維圖像輸入,契合機器人學(xué)習(xí)問題.
非參數(shù)化的方法主要有高斯過程(Gaussian Processes)[21]和局部加權(quán)回歸(Locally Weighted Regression)[22].這類模型雖然泛化性能有限,但樣本效率較高.此外,高斯過程還可用于描述模型中的不確定性.由于非參數(shù)化方法的計算復(fù)雜度取決于樣本數(shù)據(jù)集的大小,導(dǎo)致其難以擴展到高維問題.從某種意義上說,用于存放經(jīng)驗樣本的重放緩沖區(qū)(Replay Buffer)[23]也算是一種非參數(shù)化的模型.van Hasselt等[24]討論重放緩沖區(qū)和參數(shù)化模型的區(qū)別,并說明參數(shù)化模型在強化學(xué)習(xí)中的應(yīng)用時機.
動力學(xué)模型還可分為全局模型和局部模型.全局模型近似整個狀態(tài)空間,學(xué)習(xí)到的模型對整個狀態(tài)空間都是有效的.而局部模型只對動力學(xué)模型進行局部近似,圍繞局部模型進行規(guī)劃.局部模型的優(yōu)點是在近似環(huán)境時可選擇簡單函數(shù),如線性函數(shù),從而可配合某些特定的規(guī)劃算法.
此外,對于某些基于強化學(xué)習(xí)的算法來說,還需要學(xué)習(xí)一個獎勵函數(shù)模型.例如,利用潛在動力學(xué)模型進行策略學(xué)習(xí)過程依賴于定義在潛在空間上的獎勵函數(shù).
3.2.1 普通前向動力學(xué)模型
本節(jié)描述的普通前向動力學(xué)模型是指環(huán)境模型中的狀態(tài)可表示為低維向量的前向動力學(xué)模型,即輸入當前狀態(tài)和動作得到下一時刻的狀態(tài),一般形式是一個確定性函數(shù)f(st,at)=st+1或一個隨機分布
f(st,at)=P(st+1|st,at),
結(jié)構(gòu)如圖4所示.
圖4 前向動力學(xué)模型結(jié)構(gòu)圖Fig.4 Structure of forward dynamics model
模型的學(xué)習(xí)一般通過監(jiān)督學(xué)習(xí)的方式進行.給定當前狀態(tài),機器人執(zhí)行一個動作和環(huán)境交互,到達下一個狀態(tài),從而得到一組數(shù)據(jù)樣本{st,at,st+1}.收集足夠樣本后,可用監(jiān)督學(xué)習(xí)的方式學(xué)習(xí)模型.在基于模型的強化學(xué)習(xí)算法中,模型的學(xué)習(xí)和策略的優(yōu)化通常迭代進行,先通過監(jiān)督學(xué)習(xí)學(xué)到一個模型,基于此模型進行策略優(yōu)化,然后用新策略和環(huán)境交互得到數(shù)據(jù),再學(xué)一個更精確的模型,如此迭代進行.
學(xué)習(xí)到的動力學(xué)模型會存在不確定性.不確定性可分為2種:1)固有的隨機性,也稱為任意不確定性(Aleatoric Uncertainty),2)認知不確定性(Epistemic Uncertainty)[25].固有的隨機性是指模型在預(yù)測下一步狀態(tài)時,會有一個自帶的隨機性.例如,擲一個骰子,落下時朝上的一面是隨機的.認知不確定性是指因為數(shù)據(jù)樣本不可能完全覆蓋整個狀態(tài)空間,所以模型在狀態(tài)空間的某些區(qū)域必定是不準確的.
隨機性在機器人操作任務(wù)中很常見[22,26],通常使用概率模型捕捉噪聲并近似估計下一時刻狀態(tài)的分布.例如,在均方誤差損失上訓(xùn)練一個神經(jīng)網(wǎng)絡(luò)f(st,at)時,實際上該神經(jīng)網(wǎng)絡(luò)在學(xué)習(xí)輸出下一時刻狀態(tài)的均值和方差[27],通常使用這個均值和方差組成高斯分布,在分布中采樣得到下一時刻的狀態(tài).
模型的認知不確定性不同于隨機性.隨機性源于事物本身,無法減少.而認知不確定性源于數(shù)據(jù)不足,理論上可通過增加樣本數(shù)據(jù)以減小.在解決認知不確定性上較成功的方法是非參數(shù)的貝葉斯方法.貝葉斯方法建立概率動力學(xué)模型,捕捉模型預(yù)測中的不確定性[21,28].基于核的高斯過程是目前學(xué)習(xí)動力學(xué)模型通用的貝葉斯方法之一[21,29].Deisenroth等[30]提出PILCO (Probabilistic Inference for Learning Control),使用高斯過程對環(huán)境動力學(xué)進行建模,得到概率動力學(xué)模型,可表達學(xué)習(xí)到的動力學(xué)模型的不確定性,并將模型不確定性集成到長期的規(guī)劃和決策中.高斯過程存在的問題是難以擴展到高維情況.Gal等[31]使用貝葉斯網(wǎng)絡(luò)代替高斯回歸模型,成功將PILCO擴展到高維系統(tǒng)中.
在神經(jīng)網(wǎng)絡(luò)中解決認知不確定性的典型方法如下.Kurutach等[32]提出模型集成(Model-Ensemble)方法,使用相同真實世界中的樣本數(shù)據(jù)擬合一組動力學(xué)模型集合{fφ1,fφ2,…,fφk}.這些模型的不同僅在于初始權(quán)重不同及訓(xùn)練時從真實世界中抽取樣本的抽取小批量(Mini-batches)樣本的順序不同.此外在策略優(yōu)化的過程中隨機選擇一個模型預(yù)測給定當前狀態(tài)和動作的下一個狀態(tài).模型集成的方法減小不確定性,使學(xué)習(xí)的過程更穩(wěn)定,簡單靈活,在基于模型的強化學(xué)習(xí)中被廣泛應(yīng)用.模型不確定性目前仍是基于模型的強化學(xué)習(xí)和深度學(xué)習(xí)的熱點問題之一.
學(xué)習(xí)到環(huán)境模型之后,可進行規(guī)劃.規(guī)劃過程會得到一條決策序列.上述涉及的均是單步預(yù)測模型,在規(guī)劃過程中反復(fù)利用模型進行單步預(yù)測,但是由于存在隨機性和不確定性,學(xué)到的模型中會存在誤差.而在多次單步預(yù)測過程中,會累積模型誤差,從而導(dǎo)致序列與真實情況相背離.這一問題廣泛存在于基于模型的強化學(xué)習(xí)中[33-34].
如何獲得更好的多步預(yù)測,目前主要有2種方法.1)改進損失函數(shù).Abbeel等[35]提出在模型的訓(xùn)練過程中包括多步的預(yù)測損失.通過最大似然法得到模型網(wǎng)絡(luò)參數(shù):
模型仍然是單步預(yù)測,但是不同于預(yù)測下一時刻狀態(tài)的普通模型,該模型的損失函數(shù)中包括多步之后的預(yù)測損失.
2)Asadi等[36]提出學(xué)習(xí)一個預(yù)測n步的動力學(xué)模型.模型可表示為
Tn(s,s′,π)=Pr(st+n=s′|st=s,π),
即基于當前時刻的狀態(tài)和未來的動作序列預(yù)測當前時刻之后第n步的狀態(tài)分布.通過實驗說明此模型長期預(yù)測的累積誤差小于單步預(yù)測模型.相比預(yù)測n步的動力學(xué)模型,Mishra等[37]進一步提出預(yù)測整個序列的模型.對于多步預(yù)測的模型,如何更好地衡量模型性能也是一個問題.
利用環(huán)境動力學(xué)模型可大幅提高強化學(xué)習(xí)的樣本效率,但模型誤差會降低基于模型的強化學(xué)習(xí)的性能,因此學(xué)習(xí)模型時如何降低模型的不確定性及控制模型誤差是當前的主要挑戰(zhàn).
3.2.2 基于圖像的動力學(xué)模型
本節(jié)討論基于圖像的動力學(xué)模型的學(xué)習(xí).人類感知環(huán)境最基本的方式是視覺.類似于人類,機器人也可通過攝像頭感知環(huán)境.此時機器人能接收到的原始狀態(tài)就是攝像頭傳遞的圖像輸入,通常稱為觀測(Observation).相比普通狀態(tài),圖像輸入的顯著特點就是維度變大.普通低維狀態(tài)可能從幾維到幾十維,而以一幅64×64的RGB圖像作為狀態(tài),維度高達12 288維.高維的難點在于:1)維度增加,計算量也會大幅增加,即維度詛咒;2)高維圖像輸入中有許多冗余信息,影響機器人的學(xué)習(xí).
高維圖像的動力學(xué)模型幾乎只能靠深度神經(jīng)網(wǎng)絡(luò)完成.Levine等[4]實現(xiàn)端到端的機器人操作,輸入圖像,輸出動作.經(jīng)過巧妙推導(dǎo),得出不需要學(xué)習(xí)一個圖像轉(zhuǎn)移模型,而是需要學(xué)習(xí)一個狀態(tài)轉(zhuǎn)移模型p(xt+1|xt,ut) 和一個觀測分布p(ot|xt)的結(jié)論,并且只在訓(xùn)練中需要觀測分布,在測試時不需要.雖然實現(xiàn)策略以圖像輸入作為狀態(tài)產(chǎn)生動作,但是算法訓(xùn)練過程仍需要知道系統(tǒng)的狀態(tài)xt,狀態(tài)不僅需要包含機器人本身的信息,還需要知道物體的位置信息等.
Finn等[38]真正提出可應(yīng)用于機器人的基于圖像的環(huán)境動力學(xué)模型,利用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network, CNN)和長短時記憶網(wǎng)絡(luò)(Long Short-Term Memory, LSTM),可預(yù)測從當前幀到下一幀的隨機像素流變換(Pixel Flow Transformation),可在先前幀直接獲取圖像的背景信息,合并兩者,能更好地預(yù)測未來多步視頻序列.該模型真正實現(xiàn)輸入機器人狀態(tài)、動作和圖像,輸出下一幀圖像,而不需要標簽物體的信息.此后,F(xiàn)inn等[39]進一步將該模型結(jié)合規(guī)劃算法,真正應(yīng)用在機器人控制上.
Ebert等[40]基于Finn等的工作進一步改進模型,提出SNA(Skip Connection Neural Advection Model).SNA可使用時間上的跳躍連接處理遮擋問題,當一個像素被機器人手臂或其它物體遮擋時,仍可在序列的后面重新出現(xiàn).
基于圖像的動力學(xué)模型還存在部分可觀測的(Partial Observability)問題.當觀測(Observation)不能提供關(guān)于MDP真實狀態(tài)的所有信息時,MDP會產(chǎn)生部分可觀測性.圖像觀測多數(shù)時無法反映真實狀態(tài)的所有信息,如環(huán)境中有遮擋,無法知道遮擋后的物體信息.Levine等[4]的方法需要知道真實的狀態(tài)信息,因此規(guī)避部分可觀測性.部分可觀測性源于當前觀測中信息的缺乏,但可通過納入以前的觀測信息以部分緩解,因此Finn和Ebert等提出的基于圖像的環(huán)境動力學(xué)模型都使用循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network, RNN)或LSTM,以此緩解部分可觀測帶來的問題.
對于部分可觀測性還可通過串聯(lián)n個觀測,作為一個狀態(tài)來處理.這在以圖像為輸入的強化學(xué)習(xí)中較常見,DQN(DeepQ-Network)及其衍生系列算法[41-48]就使用這種方法.
3.2.3 潛在動力學(xué)模型
基于圖像的動力學(xué)模型的缺點在于需要重構(gòu)圖像,即使訓(xùn)練好模型,測試時也需要重構(gòu)圖像,耗費算力.因此研究者們提出使用表示學(xué)習(xí)(Representation Learning)結(jié)合潛在的動力學(xué)模型(Latent Dynamics Model)緩解此問題.表示學(xué)習(xí)主要用于降維,本身也是機器學(xué)習(xí)一個重要研究領(lǐng)域.
一個潛在動力學(xué)模型可分為3部分:1)編碼器(Encoder)zt=fφ(ot),將觀測結(jié)果ot映射到潛在狀態(tài)(Latent State)zt上;2)潛在狀態(tài)轉(zhuǎn)移函數(shù)zt+1=fθ(zt,at),根據(jù)當前潛在狀態(tài)和動作計算得到下一個潛在狀態(tài);3)解碼器(Decoder)ot+1=fψ(zt+1),將潛在狀態(tài)重新映射回觀測.編碼器、轉(zhuǎn)移函數(shù)和解碼器均為深度神經(jīng)網(wǎng)絡(luò),φ、θ、ψ為對應(yīng)的網(wǎng)絡(luò)參數(shù).
潛在動力學(xué)模型的重點如下:1)要學(xué)到一個足夠好的緊湊表示;2)潛在轉(zhuǎn)移函數(shù)能確保進行規(guī)劃.
當前強化學(xué)習(xí)中較優(yōu)的表示學(xué)習(xí)方法是深度神經(jīng)網(wǎng)絡(luò),其中生成模型,如變分自編碼器(Variational Auto-Encoder, VAE)[49],應(yīng)用尤為廣泛.VAE通過最大化條件觀測p(ot|zt) 的似然函數(shù)進行學(xué)習(xí)表示,即需要從潛在狀態(tài)對觀測進行像素級的重構(gòu).許多基于模型的強化學(xué)習(xí)工作[50-52]在學(xué)習(xí)表示時都采用VAE.
學(xué)到足夠好的緊湊表示,意味著潛在狀態(tài)能盡可能多地編碼觀測中的有用信息.通過標準VAE學(xué)習(xí)表示需要進行像素級重構(gòu),這表明其潛在狀態(tài)含有與任務(wù)無關(guān)的信息,不夠緊湊.目前有如下2種思路幫助學(xué)習(xí)緊湊的表示.1)加入先驗知識,學(xué)到一個緊湊表示.Diuk等[53]提出OO-MDPs(Object-Oriented MDPs),旨在學(xué)習(xí)到場景中的物體及其交互.這類方法的難點在于如何加入先驗知識,一種方法是通過使用明確的物體識別器.例如,F(xiàn)ragkiadaki等[54]結(jié)合物體識別器學(xué)習(xí)場景中物體運動的規(guī)律以泛化到稍有不同的其它環(huán)境,Kansky等[55]結(jié)合物體識別器,試圖描述物體的局部因果關(guān)系并結(jié)合到規(guī)劃中.另一種方法是將先驗知識嵌入神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)中.在圖神經(jīng)網(wǎng)絡(luò)的一些研究中[56-57],圖的節(jié)點對應(yīng)物體,邊對應(yīng)物體的關(guān)系,物體間的相互作用通過圖神經(jīng)網(wǎng)絡(luò)建模.Kipf等[58]提出C-SWMs(Contrastively Trained Structured World Models),通過圖神經(jīng)網(wǎng)絡(luò)對物體的關(guān)系進行建模,并利用對比學(xué)習(xí)的損失函數(shù)進行訓(xùn)練.Watters等[59]采用MONet(Multi-object Network)[60]學(xué)習(xí)場景的表示,MONet是一個自動回歸的VAE,可在無監(jiān)督的情況下學(xué)習(xí)將場景分解為實體,用于學(xué)習(xí)更有效的表示.Veerapaneni等[61]提出OP3(Object-Centric Perception, Prediction, and Planning)框架,試圖讓機器人理解什么是對象.引入的先驗知識為場景中的物體遵循相同的物理規(guī)律,故場景建??赊D(zhuǎn)為對物體和決定物體間交互的局部物理過程的建模,使用一個以物體為中心的函數(shù)(Entity-Centric Function)建模,再將此函數(shù)應(yīng)用于場景中的每個物體,簡化多物體動態(tài)場景.因此OP3可將潛在狀態(tài)分解為局部物體狀態(tài),每個局部狀態(tài)均可通過相同的函數(shù)進行處理.
2)改進損失函數(shù)以學(xué)習(xí)緊湊表示.典型的做法是結(jié)合對比學(xué)習(xí)(Contrastive Learning)的思想構(gòu)造對比損失.Ma等[62]結(jié)合對比學(xué)習(xí),在標準VAE中使用對比損失替換觀測重構(gòu)項p(ot|zt),學(xué)習(xí)一個緊湊表示.Sermanet等[63]構(gòu)造專家樣本時從不同視角記錄相同的動作序列,構(gòu)造對比損失函數(shù)強制同一狀態(tài)不同視角在潛在空間中相互接近,以此學(xué)習(xí)好的表示.Ghosh 等[64]構(gòu)造基于兩個狀態(tài)之間相互抵達所需動作次數(shù)的損失,使通過較少次數(shù)動作就可相互抵達的狀態(tài)對在表示空間中也較接近.由此學(xué)得的緊湊表示更有利于規(guī)劃.改進損失函數(shù)也可和先驗知識結(jié)合,即通過改進損失函數(shù)體現(xiàn)先驗知識.Jonschkowski等[65]將物理學(xué)規(guī)律作為先驗知識,通過改進損失函數(shù)將其引入以學(xué)習(xí)緊湊表示.Kipf等[58]的方法也可看作引入先驗知識和改進損失函數(shù)兩者的結(jié)合.
潛在狀態(tài)轉(zhuǎn)移函數(shù)能確保進行規(guī)劃意味著要保證轉(zhuǎn)移函數(shù)預(yù)測的下個潛在狀態(tài)與編碼的當前觀測的潛在狀態(tài)在同個嵌入空間.通常做法是增加一個損失函數(shù),強制轉(zhuǎn)移函數(shù)預(yù)測的下個潛在狀態(tài)接近下一時刻真實觀測通過編碼器得到的潛在狀態(tài)[50].此外,有時還可對潛在狀態(tài)轉(zhuǎn)移函數(shù)進行一些額外限制,以配合特定的規(guī)劃算法.例如,線性二次調(diào)節(jié)器(Linear Quadratic Regulator, LQR)適用于線性動力學(xué)函數(shù),因此在一些工作[50-51]中,研究者將其潛在狀態(tài)轉(zhuǎn)移函數(shù)進行局部線性化,可應(yīng)用線性二次調(diào)節(jié)器進行規(guī)劃.
潛在動力學(xué)模型的研究重點還是在表示學(xué)習(xí)上,一個好的表示能提升算法學(xué)習(xí)與性能.目前許多工作都集中在確保潛在狀態(tài)盡可能多地蘊含有用信息,然而一個好的表示也需要盡可能剔除無關(guān)信息.如何引入先驗知識,使表示中更多地蘊含有用信息同時剔除無關(guān)信息是一個值得研究的問題.
與前向的潛在動力學(xué)模型類似,逆向動力學(xué)模型在強化學(xué)習(xí)中通常也是和表示學(xué)習(xí)結(jié)合,即通過編碼器將觀測ot映射到潛在狀態(tài)st上,再通過前后兩個時刻的潛在狀態(tài)預(yù)測當前時刻應(yīng)采取的動作:(st,st+1) →at,結(jié)構(gòu)如圖5所示.逆向動力學(xué)模型的引出是因為在狀態(tài)表征復(fù)雜、前向動力學(xué)模型學(xué)習(xí)困難的任務(wù)中,逆向動力學(xué)結(jié)合某些先驗知識效果更優(yōu),同時輸出動作可作為監(jiān)督信息.
圖5 逆向動力學(xué)模型結(jié)構(gòu)圖Fig.5 Structure of inverse dynamics model
Pathak等[66]提出 ICM(Intrinsic Curiosity Module),集成逆向模型和前向模型.作者認為使用逆向模型可學(xué)習(xí)到有用的信息,忽視無關(guān)信息,由此學(xué)到一個好的表示.Agrawal等[67]聯(lián)合訓(xùn)練前向模型和逆向模型,在聯(lián)合訓(xùn)練中,逆向模型將觀測編碼為潛在狀態(tài),可為前向模型預(yù)測的潛在狀態(tài)提供監(jiān)督,實踐中聯(lián)合損失由逆向模型損失與前向模型損失之和構(gòu)成.
Shelhamer等[68]將逆向動力學(xué)作為輔助的損失函數(shù).初衷是為了增加獎勵,對于強化學(xué)習(xí)任務(wù),獎勵稀疏意味著缺乏監(jiān)督,逆向模型可從相鄰狀態(tài)預(yù)測動作.作者指出此動作和與環(huán)境交互的動作的誤差可起到自監(jiān)督的作用.Zhang等[69]將表示學(xué)習(xí)、獎勵函數(shù)、前向動力學(xué)模型和逆向動力學(xué)模型進行解耦,并指出逆向模型在穩(wěn)定學(xué)習(xí)方面具有重要作用.
其它一些工作[70-72]試圖利用逆向動力學(xué)學(xué)習(xí)環(huán)境中可控制的部分.逆向動力學(xué)模型在應(yīng)用中通常是針對狀態(tài)表征復(fù)雜、前向動力學(xué)模型學(xué)習(xí)困難的特殊任務(wù),和表示學(xué)習(xí)結(jié)合后形成逆向的潛在動力學(xué)模型.主要挑戰(zhàn)是如何將逆向和先驗知識有機結(jié)合,學(xué)到更好的表示.
一般的前向動力學(xué)模型通過當前狀態(tài)和動作預(yù)測環(huán)境的下一時刻狀態(tài),這是典型的顯式模型.強化學(xué)習(xí)的最終目的是找到針對特定任務(wù)的最優(yōu)策略.因此真正值得關(guān)心的并非狀態(tài),而是最優(yōu)價值或最優(yōu)策略.隱式模型通過學(xué)習(xí)其它函數(shù),可達到與顯式模型相同的效果.相比顯式模型,隱式模型不關(guān)注下一時刻狀態(tài)的精確預(yù)測.
Grimm等[73-74]提出價值等價模型(Value Equivalent Models),指出如果一個模型能預(yù)測價值,則狀態(tài)信息就不再重要,并說明在相同的貝爾曼算子下,兩個模型對一組函數(shù)和一組策略能產(chǎn)生相同的更新,則這兩個模型是價值等價的.Farquhar等[75]進一步提出自洽的價值等價模型.應(yīng)用價值等價模型的典型例子是MuZero[76].MuZero訓(xùn)練模型時從重放緩存區(qū)(Replay Buffer)中選擇一條軌跡,輸入第一個狀態(tài)和整個動作序列,將模型展開K步,其中展開的每步動作都是動作序列中的真實動作,預(yù)測獎勵值、價值和策略.聯(lián)合損失函數(shù)表示如下:
價值等價模型更早要追溯到Silver等[77]工作.他們的工作與MuZero不同之處在于只接收一個狀態(tài)作為輸入而不需要動作序列,展開模型只預(yù)測該狀態(tài)的價值.價值預(yù)測網(wǎng)絡(luò)(Value Prediction Network, VPN)[78]與MuZero類似,但預(yù)測獎勵、價值和折扣因子.價值等價模型經(jīng)常也和表示學(xué)習(xí)結(jié)合,從某種意義上說,可作為一種先驗知識以輔助學(xué)習(xí)緊湊表示.
隱式模型也存在著一些問題.以價值等價模型為例,學(xué)到的預(yù)測都集中在價值和獎勵信息上.而這些信息來源于獎勵這一簡單的標量信息,因此可能會遺漏環(huán)境的一些相關(guān)信息.此外,目前的隱式模型針對的環(huán)境動作空間較簡單,大都為離散動作空間,因此在機器人領(lǐng)域應(yīng)用較少.
學(xué)習(xí)到環(huán)境模型之后,下一步就是如何利用學(xué)到的模型.通常在基于模型的強化學(xué)習(xí)中,模型主要有3種用途:1)基于模型的規(guī)劃,對應(yīng)2.2節(jié)中的第2類方法;2)基于模型的策略學(xué)習(xí),對應(yīng)2.2節(jié)中的第3類方法;3)隱式規(guī)劃,這是一類特殊的基于模型的強化學(xué)習(xí)方法,兼有前兩類的一些特點.
學(xué)習(xí)到環(huán)境的動力學(xué)模型后,可直接利用模型進行規(guī)劃.強化學(xué)習(xí)可轉(zhuǎn)化成一個最優(yōu)控制問題,通過規(guī)劃算法得到最優(yōu)策略,也可利用規(guī)劃算法產(chǎn)生較好的樣本輔助學(xué)習(xí).規(guī)劃算法種類繁多,應(yīng)用廣泛,按照交互方式主要可分為2類:開環(huán)規(guī)劃與閉環(huán)規(guī)劃.開環(huán)規(guī)劃中環(huán)境給出初始狀態(tài)s0,機器人根據(jù)動力學(xué)模型規(guī)劃一條完整的動作序列,如圖6(a)所示.閉環(huán)規(guī)劃中環(huán)境給出一個狀態(tài),機器人根據(jù)動力學(xué)模型進行規(guī)劃,執(zhí)行規(guī)劃動作,模型接收到機器人的動作后再給出下一個狀態(tài),往復(fù)循環(huán),如圖6(b)所示.
(a)開環(huán)規(guī)劃 (b)閉環(huán)規(guī)劃(a)Open-loop planning (b)Closed-loop planning圖6 規(guī)劃過程Fig.6 Planning process
由于隨機性和不確定性,模型會存在誤差,如果僅在得知初始狀態(tài)后進行規(guī)劃,可能造成很大的累積誤差.這是開環(huán)規(guī)劃本身存在的問題.為了解決這個問題,引出模型預(yù)測控制(Model Predictive Control, MPC).MPC并非一個固定算法,而是一個控制框架,可對其進行很多擴展.MPC的思想如下.在每次迭代中,第一步,在執(zhí)行某個動作后,根據(jù)環(huán)境動力學(xué)模型預(yù)測下一個狀態(tài).第二步,求解一個開環(huán)優(yōu)化問題,這一步可應(yīng)用某些具體的開環(huán)規(guī)劃算法,如CEM.第三步,執(zhí)行第二步求解的第1個動作,如此反復(fù)進行.可看到,MPC是閉環(huán)控制框架,但在每次迭代中都會優(yōu)化一個開環(huán)控制問題.MPC在基于模型的強化學(xué)習(xí)中應(yīng)用廣泛,機器人操作[39,79]、自動駕駛[80]、無人機[81]等均有應(yīng)用.CEM經(jīng)常作為MPC第二步的開環(huán)規(guī)劃算法,典型算法有Visual MPC[39]、PlaNet(Deep Planning Network)[82].MPC計算量較大,收斂較慢,適合簡單模型.
閉環(huán)規(guī)劃在強化學(xué)習(xí)中應(yīng)用最廣泛的是蒙特卡羅樹搜索(Monte Carlo Tree Search, MCTS)和線性二次調(diào)節(jié)器(Linear Quadratic Regulator, LQR).MCTS適用于離散動作空間,核心搜索過程可分為四步.第一步,選擇.從已知的樹節(jié)點中根據(jù)UCT(Upper Confidence Bounds for Trees)值選擇最值得探索的節(jié)點.第二步,擴展.從這個節(jié)點選擇一個沒被執(zhí)行過的行動,執(zhí)行這個行動得到下一個狀態(tài),然后根據(jù)這個狀態(tài)創(chuàng)建節(jié)點.第三步,根據(jù)擴展出的子節(jié)點,利用學(xué)到的模型進行模擬,直至結(jié)束產(chǎn)生結(jié)果.第四步,回傳信息.模擬結(jié)束后,將結(jié)果回傳給前面所有的父節(jié)點,更新它們的估計值.UCT值的計算公式為
其中,Q(st)表示某個狀態(tài)的價值,N(st)表示對某個狀態(tài)的探索次數(shù),st-1表示st的上一個狀態(tài),即父節(jié)點.上式平衡探索和利用,等號后的第1項可看作當前狀態(tài)的平均價值,第2項衡量探索次數(shù).參數(shù)C調(diào)整探索和利用之間的權(quán)重關(guān)系.可看到,一個節(jié)點要被選中,必須是價值較大或探索次數(shù)較少.MCTS適用于離散動作空間,在自動駕駛和機器人上均有應(yīng)用[83-84].
LQR適用于連續(xù)動作空間,源于控制論,但在控制領(lǐng)域的符號表示和強化學(xué)習(xí)有所不同.觀測狀態(tài)st→xt,動作at→ut,獎勵函數(shù)變?yōu)閾p失函數(shù)r(s,a)→c(x,u),最大化問題轉(zhuǎn)為最小化問題.
假設(shè)獎勵函數(shù)r(st,at)為一個二次函數(shù),而狀態(tài)轉(zhuǎn)移函數(shù)f(st,at)為一個線形函數(shù),其優(yōu)化問題形式為
LQR包含反向計算和前向計算,具體過程可參考最優(yōu)控制.標準LQR中模型是線性確定的.針對隨機模型,可將高斯分布應(yīng)用到狀態(tài)轉(zhuǎn)移函數(shù)中,從而引入隨機性.LQR擴展的迭代線性二次調(diào)節(jié)器(Iterative LQR, iLQR)可應(yīng)用到非線性模型中.iLQR中的動力學(xué)模型近似是一階近似,將其擴展到二階,就是微分動態(tài)規(guī)劃(Differential Dynamic Programming, DDP).LQR及其擴展方法在基于模型的強化學(xué)習(xí)中應(yīng)用廣泛.LQR適用于誤差較小的模型,基于引導(dǎo)策略搜索(Guided Policy Search)的一類算法[4,85-86]是應(yīng)用LQR系列規(guī)劃方法的典型代表.
MPC、CEM存在的問題是計算量較大,收斂較慢.應(yīng)用MPC、CEM,每輸入一個狀態(tài),需再次規(guī)劃才能獲取輸出動作,而一個訓(xùn)練好的策略直接將狀態(tài)映射為動作,實際應(yīng)用中訓(xùn)練好的策略比規(guī)劃算法更快.LQR本身有敏感性的問題,初始動作中一點微小的改變會導(dǎo)致下游狀態(tài)變化很大,模型存在誤差時,這一點尤為嚴重.因而引導(dǎo)策略搜索一類算法[4,85-86]中利用iLQR/DDP產(chǎn)生好的樣本以引導(dǎo)策略學(xué)習(xí),最終仍會得到一個策略.
模型的另一種用法就是和無模型的強化學(xué)習(xí)算法結(jié)合,利用模型輔助無模型強化學(xué)習(xí)訓(xùn)練策略.可細分為2種:1)通過模型的預(yù)測能力生成虛擬訓(xùn)練數(shù)據(jù),如圖7(a)所示;2)利用模型的可微性實現(xiàn)模型學(xué)習(xí)梯度的端到端反向傳播,如圖7(b)所示.
(a)模型生成虛擬訓(xùn)練數(shù)據(jù)(a)Imaginary training data generated by model
(b)利用模型的可微性進行端到端學(xué)習(xí)(b)End-to-end learning based on model differentiability圖7 基于模型的策略學(xué)習(xí)Fig.7 Model-based policy learning
4.2.1 基于模型的虛擬數(shù)據(jù)生成
這類算法主要是將模型虛擬展開,生成數(shù)據(jù),混合真實數(shù)據(jù)和虛擬數(shù)據(jù)以訓(xùn)練算法,這也是MBRL樣本效率較高的原因.該類算法典型代表是文獻[11].由于隨機性和不確定性,模型會存在誤差.此外,用于近似模型的函數(shù)也可能存在近似誤差,同時模型誤差還會累積傳播形成復(fù)合誤差.如何減小模型誤差的影響是一個問題.
Kurutach等[32]通過模型集成表達環(huán)境的不確定性,同時指出建模時數(shù)據(jù)較少的區(qū)域模型誤差會較大,而在這些區(qū)域探索會增加模型誤差的影響.因此作者在TRPO(Trust Region Policy Optimization)上增加一個迭代閾值,限制策略朝著環(huán)境不熟悉的地方迭代,以此減小模型誤差的影響.
Kalweit等[87]認為誤差較大的模型提供的數(shù)據(jù)質(zhì)量較低,會影響算法的最終效果.因此作者把DDPG(Deep Deterministic Policy Gradient)的重放緩存區(qū)一分為二,傳統(tǒng)的重放緩存區(qū)存儲真實環(huán)境數(shù)據(jù),想象的重放緩存區(qū)存儲虛擬環(huán)境的數(shù)據(jù).通過計算Q值的不確定性,得到一個動態(tài)概率P,以此決定從哪個重放緩存區(qū)中獲取數(shù)據(jù).這樣增加對真實數(shù)據(jù)的利用,減少對模型生成數(shù)據(jù)的利用,限制模型誤差的影響.
Gu等[88]針對環(huán)境模型預(yù)估不準的問題,采用基于時間序列的線性模型建模環(huán)境,但為了達到最佳效果,在訓(xùn)練中會啟發(fā)式地停用模型.Feinberg等[89]闡明上述方法可能是無效的,因此提出MVE(Model-Based Value Expansion),將模型的展開保持在一個固定深度,控制模型的不確定性,目標Q值是先通過環(huán)境模型模擬H步之后,再進行Q值估計.于是Q值的估計融合基于環(huán)境動力學(xué)模型的短期預(yù)估及基于目標Q值網(wǎng)絡(luò)的長期預(yù)估,步數(shù)H限制復(fù)合誤差的累積,提高Q值的準確性.
Buckman等[90]改進MVE,提出STEVE(Stochastic Ensemble Value Expansion).文章指出MVE要想獲得好的效果,需要依賴調(diào)整展開(Rollout)的步數(shù)H,但在復(fù)雜環(huán)境中H過大會引入較大誤差,而簡單環(huán)境步數(shù)H過小又會減小Q值的估計精度.作者在不同環(huán)境中展開特定步數(shù),計算每步的不確定性,動態(tài)調(diào)整及整合不同步數(shù)之間Q值的權(quán)重,并且確保僅在不引入重大誤差時才使用模型,以此限制模型誤差的影響.
對于模型誤差的影響,有些學(xué)者試圖從理論上分析.Luo等[91]從理論上說明模型誤差的表示,并量化模型不確定性的指標,提出SLBO(Stochastic Lower Bound Optimization),保證算法能單調(diào)提升.Janner等[92]針對環(huán)境模型和采樣可能導(dǎo)致的總偏差C,提出每次更新后,策略的累積回報在模型上的改善若大于C,就能保證在真實環(huán)境中提高策略性能.文章提出分支展開(Branched Rollout),在軌跡中間采樣一個狀態(tài)后,該狀態(tài)作為分支點,展開模型,訓(xùn)練策略.但由于誤差的存在,只能在模型上展開k步,文章對k值進行理論分析,但是策略單調(diào)改善的理論分析不夠嚴謹.
Lai等[93]提出BMPO(Bidirectional Model-Based Policy Optimization),建議另外構(gòu)造一個后向動力學(xué)模型,同時使用前向模型和后向模型進行展開.由于使用雙模型展開,當展開軌跡的總步數(shù)相等時,前向模型和后向模型各自展開的步數(shù)均小于僅使用前向模型展開的步數(shù),因此復(fù)合誤差累積顯著小于完全使用單向模型的情形.作者通過理論分析和實驗驗證說明BMPO比MBPO(Model-Based Policy Optimization)復(fù)合誤差更小,訓(xùn)練效果更優(yōu).
4.2.2 基于模型可微性的端到端學(xué)習(xí)
除了利用模型虛擬展開生成數(shù)據(jù)外,如果模型是神經(jīng)網(wǎng)絡(luò)或其它可微函數(shù),還可同時利用模型可微的特點直接輔助策略的學(xué)習(xí),這種方法更進一步利用模型.
Heess等[94]提出SVG(Stochastic Value Gradients),利用模型的可微性計算值函數(shù)的梯度.該文思想較簡單,利用鏈式法則和模型的可微性直接對值函數(shù)求導(dǎo),利用梯度上升法優(yōu)化值函數(shù),學(xué)習(xí)策略.對于隨機性的環(huán)境和策略,可通過重參數(shù)化技巧引入噪聲.SVG利用真實樣本擬合模型,利用模型的可微性優(yōu)化值函數(shù),在優(yōu)化過程中只利用真實樣本,并未利用模型產(chǎn)生虛擬數(shù)據(jù).這樣做的好處是可緩解模型不準確造成的影響,但同時由于不利用模型產(chǎn)生虛擬數(shù)據(jù),樣本效率并未得到較高提升.
Clavera等[95]在SVG的基礎(chǔ)上更進一步,采用執(zhí)行者-評論家(Actor-Critic)框架,提出MAAC(Model-Augmented Actor-Critic).除了利用模型的梯度外,采用H步自舉(Bootstrapping)的Q值函數(shù)作為強化學(xué)習(xí)的目標函數(shù):
同時重放緩存區(qū)中的數(shù)據(jù)既有和真實環(huán)境交互的數(shù)據(jù)也有模型虛擬展開的數(shù)據(jù).超參數(shù)H可使目標函數(shù)在模型的準確性和Q值函數(shù)的準確性之間權(quán)衡.Hafner等[96]提出Dreamer,值函數(shù)估計采用另一種平衡方差和偏差的方式,但Dreamer是圖像輸入,學(xué)習(xí)潛在模型,利用潛在模型的H步展開和可微性.
利用模型的可微性延時反向傳播計算梯度可能會遇到深度學(xué)習(xí)中存在的一類問題——梯度消失和梯度爆炸.MAAC中采用終端Q函數(shù)(TerminalQ-Function)[32]緩解此問題,SVG和Dreamer并未討論這個問題,在實現(xiàn)時使用梯度裁剪的技巧.此外,利用模型可微性還存在容易陷入局部最優(yōu)的問題.
隱式規(guī)劃是一種特殊的基于模型的強化學(xué)習(xí)方法,規(guī)劃過程可嵌入到計算圖中,如圖8所示.典型例子是值迭代網(wǎng)絡(luò)(Value Iteration Network, VIN)[97].
圖8 隱式規(guī)劃過程Fig.8 Process of implicit planning
VIN設(shè)計值迭代模塊,并嵌入CNN中.類似的工作還有UPN(Universal Planning Networks)[98]和QMDP-Net[99].UPN在一個目標導(dǎo)向的策略中嵌入可微分的規(guī)劃模塊.QMDP-Net在一個RNN中嵌入QMDP(QValues of the Underlying MDP)和貝葉斯濾波器,求解POMPD(Partially Observable MDP).
還有一類隱式規(guī)劃是去學(xué)習(xí)規(guī)劃.在一系列任務(wù)中優(yōu)化規(guī)劃器,得到更好的規(guī)劃算法.典型例子是MCTSNets(Monte-Carlo Tree Search Networks)[100].MCTSNets優(yōu)化MCTS過程中的各個步驟,如選擇、回傳和最終的動作輸出.另一個例子是I2As(Imagination-Augmented Agents)[101],設(shè)計想象核,先學(xué)習(xí)動力學(xué)模型,使用此模型想象未來軌跡.想象的信息會被編碼并用于輔助策略的學(xué)習(xí).所有模塊都整合在一個計算圖中.類似的工作還有IBP(Imagination-Based Planner)[102].
隱式規(guī)劃的缺陷是規(guī)劃過程中可能會利用任務(wù)中的無關(guān)特征,同時計算圖通常較大,計算要求較高,優(yōu)化容易不穩(wěn)定.這些缺點導(dǎo)致隱式規(guī)劃目前在機器人領(lǐng)域應(yīng)用較少.
現(xiàn)實中的機器人學(xué)習(xí)任務(wù)面臨的問題主要有如下3處.1)高維視覺輸入.類似人通過眼睛觀察世界,視覺也是機器人感知環(huán)境的重要方式,研究者們希望機器人能以圖像為輸入完成操作任務(wù),不以視覺為輸入的機器人猶如盲人摸象,缺乏實際意義.2)樣本效率問題.機器人學(xué)習(xí)的一個問題是樣本效率低下,無模型的強化學(xué)習(xí)算法需要和環(huán)境交互,通過試錯學(xué)習(xí),這需要大量樣本,對于機器人操作任務(wù),采樣通常麻煩且耗時.3)安全問題.機器人在學(xué)習(xí)時需要探索,真實環(huán)境中,無效探索增加機器人的磨損,因此需要好的探索方法.為了安全起見,可以在虛擬環(huán)境中進行訓(xùn)練,再遷移到現(xiàn)實世界中,在虛擬環(huán)境中訓(xùn)練策略往往比直接在現(xiàn)實世界中進行更安全.本節(jié)從圖像輸入、樣本效率、探索和遷移介紹基于模型的強化學(xué)習(xí)在機器人上的應(yīng)用.
高維視覺輸入的難點主要有:1)數(shù)據(jù)維度較高,計算耗費較大;2)視覺輸入往往是真實環(huán)境動力學(xué)模型的非線性函數(shù),導(dǎo)致圖像動力學(xué)模型的學(xué)習(xí)及基于此模型的規(guī)劃非常困難.基于模型的強化學(xué)習(xí)適合高維視覺輸入的任務(wù).Levine等[4]推導(dǎo)不需要學(xué)習(xí)圖像動力學(xué)模型,而是需要學(xué)習(xí)一個狀態(tài)轉(zhuǎn)移模型p(xt+1|xt,ut) 和一個觀測分布p(ot|xt)的結(jié)論,并且僅在訓(xùn)練策略時需要觀測分布,測試時不再需要,實現(xiàn)端到端的機器人操作,輸入圖像,機器人會輸出動作,實現(xiàn)操作任務(wù).Finn等[38]通過CNN和LSTM學(xué)習(xí)前后兩幀像素流的變換,結(jié)合先前幀中的背景信息,真正學(xué)到基于圖像的環(huán)境動力學(xué)模型,可通過機器人當前狀態(tài)、當前幀和動作預(yù)測下一幀,并結(jié)合規(guī)劃算法,應(yīng)用在真實機器人操作上.潛在動力學(xué)模型結(jié)合表示學(xué)習(xí)將高維圖像觀測嵌入低維潛在空間中,在此低維潛在空間中學(xué)習(xí)動力學(xué)模型及基于模型進行規(guī)劃都相對容易.許多工作[51,103]結(jié)合潛在動力學(xué)模型,都實現(xiàn)高維圖像輸入的真實機器人操作任務(wù).
基于模型的強化學(xué)習(xí)優(yōu)勢是樣本效率較高,因為模型可提供虛擬樣本,因此在機器人控制中,利用機器人與環(huán)境交互得到的真實樣本學(xué)到一個模型,利用模型產(chǎn)生大量的虛擬樣本以學(xué)習(xí)策略,大幅提升樣本效率.但是模型誤差的存在會降低算法性能,因此需要更多的真實樣本以學(xué)習(xí)更精確的模型,提升算法性能,這相當于降低樣本效率.PILCO[30]使用高斯過程表征模型的不確定性,并將不確定性集成到長期決策中,將模型誤差納入算法的考慮范圍中.因此PILCO可提供高質(zhì)量的虛擬樣本,實驗中只需要七八個迭代周期就解決真實小車倒立擺的控制問題,只需約4 min就可學(xué)習(xí)一個復(fù)雜物塊堆疊任務(wù),同時使用知識遷移時,時間可進一步減少到90 s.E2C(Embed to Control)[50]學(xué)習(xí)一個局部線性的潛在動力學(xué)模型,可結(jié)合iLQR進行規(guī)劃,在倒立擺的實驗中,平均15次實驗就可達到90%的成功率.SOLAR(Stochastic Optimal Control with Latent Re-presentations)[51]利用概率圖模型結(jié)構(gòu)學(xué)習(xí)更精確的潛在動力學(xué)模型,只需要訓(xùn)練2 h就可完成真實環(huán)境中以圖像為輸入的Baxter機器人操作任務(wù).
為了安全起見,在機器人學(xué)習(xí)中,必須限制機器人在真實環(huán)境中的探索.當學(xué)到環(huán)境動力學(xué)模型后,可利用模型輔助探索.Lowrey等[104]學(xué)習(xí)多個值函數(shù)組成內(nèi)在獎勵,在規(guī)劃時用于指導(dǎo)探索,在MuJoCo(Multi-joint Dynamics with Contact)[105]任務(wù)和虛擬的機械臂操控魔方上都有不錯效果.Sekar等[106]在規(guī)劃軌跡中計算內(nèi)在獎勵,使用基于模型的方法最大化規(guī)劃軌跡中的內(nèi)在獎勵,預(yù)測對未來軌跡的好奇心以增加探索.Nair等[103]學(xué)習(xí)一個狀態(tài)的密度模型,并從中選擇目標,訓(xùn)練機器人完成這個想象中的目標,在測試時機器人就有可能泛化完成新的目標.這一思想類似Hindsight Experience Replay[107].
在虛擬環(huán)境中訓(xùn)練機器人再遷移到現(xiàn)實世界,可相對保證機器人的安全,是促進機器人學(xué)習(xí)相關(guān)算法落地應(yīng)用的重要手段.虛擬到現(xiàn)實(Sim to Real)的遷移關(guān)鍵點為虛擬環(huán)境和虛擬到現(xiàn)實的差距(Simulation-to-Reality Gap).目前機器人學(xué)習(xí)領(lǐng)域常用的虛擬環(huán)境主要有MuJoCo[105], Pybullet和Gaze-bo[108].MuJoCo被廣泛用于作為強化學(xué)習(xí)算法性能的測試環(huán)境.MuJoCo和Pybullet與深度學(xué)習(xí)和強化學(xué)習(xí)的相關(guān)庫結(jié)合較好,能提供快速訓(xùn)練.Gazebo被集成到機器人操作系統(tǒng)(Robot Operating System, ROS)中,更適合較復(fù)雜的場景.
而針對虛擬到現(xiàn)實的差距目前主要有兩類方法——域隨機化(Domain Randomization)和域適應(yīng)(Domain Adaption).域隨機化的思想為,不去過多關(guān)注虛擬環(huán)境和現(xiàn)實的差距,而是盡可能隨機化生成虛擬環(huán)境,盡量覆蓋現(xiàn)實環(huán)境.域隨機化的具體做法有2類.1)視覺隨機化,隨機生成的域數(shù)據(jù)涉及工作臺上物體的形狀、數(shù)目、顏色、紋理、位置、工作臺的紋理、攝像機的位置角度、背景的噪聲等,這些不會改變環(huán)境動力學(xué)模型,這方面的機器人學(xué)習(xí)研究主要有Tobin等[109]的工作.2)域隨機化是動力學(xué)隨機化,虛擬環(huán)境中隨機生成的數(shù)據(jù)涉及摩擦系數(shù)、關(guān)節(jié)質(zhì)量、關(guān)節(jié)阻尼系數(shù)、動作時間步長等,這些數(shù)據(jù)的改變會影響環(huán)境動力學(xué)模型,這方面的研究有Peng等[110]和Andrychowicz等[111]的工作.視覺隨機化和動力學(xué)隨機化也可結(jié)合起來,如OpenAI靈巧手操控魔方的工作[3].域適應(yīng)的重點是可獲取少量真實環(huán)境的一些知識,結(jié)合到虛擬環(huán)境的訓(xùn)練中,提高完成真實環(huán)境中任務(wù)的性能.域適應(yīng)在純視覺領(lǐng)域應(yīng)用很多,結(jié)合機器人學(xué)習(xí)也有一些值得關(guān)注的工作[112-113].基于模型的強化學(xué)習(xí)算法可輔助機器人虛擬到現(xiàn)實的遷移.Christiano等[114]學(xué)習(xí)一個逆向動力學(xué)模型,決定真實機器人執(zhí)行什么樣的動作會更容易實現(xiàn)虛擬環(huán)境中下一時刻的狀態(tài),以此實現(xiàn)遷移.Nagabandi等[115]利用元學(xué)習(xí)(Meta-Lear-ning)訓(xùn)練動力學(xué)模型先驗,再結(jié)合最新數(shù)據(jù)快速學(xué)習(xí)環(huán)境模型,實現(xiàn)快速遷移.
目前基于模型的強化學(xué)習(xí)也存在一些不足.首先,模型存在不確定性和近似誤差,雖然有很多工作緩解這個問題,然而大多都是針對虛擬環(huán)境,而真實的機器人環(huán)境更復(fù)雜,因此對模型要求更高,如何在真實環(huán)境中減小模型誤差是一個問題.其次,基于模型的強化學(xué)習(xí)的漸進性能不如無模型的強化學(xué)習(xí),這是限制其應(yīng)用的一個原因,因此利用MBRL的高樣本效率的同時需要設(shè)法達到MFRL的高漸進性能.針對視覺輸入,潛在動力學(xué)模型是一個有效方法,但是通常需要學(xué)習(xí)一個表示,如何結(jié)合先驗知識學(xué)習(xí)一個更好的表示也是未來值得研究的方向.此外,考慮安全問題和采樣效率,機器人學(xué)習(xí)適合先在虛擬環(huán)境中訓(xùn)練再遷移到真實世界,這方面的研究可考慮集成遷移學(xué)習(xí)中域隨機化和域適應(yīng)的方法,是未來研究方向的一個重點.最后,基于模型的強化學(xué)習(xí)通常有更多的超參數(shù)和網(wǎng)絡(luò)模型,可能存在計算量較大、不穩(wěn)定的問題,這個問題可能無法避免,需要在算法研究中盡量設(shè)法減輕.針對這些問題,基于模型的強化學(xué)習(xí)還有很大的研究空間.
機器人學(xué)習(xí)作為人工智能領(lǐng)域的研究熱點,受到研究者們的廣泛關(guān)注.強化學(xué)習(xí)由于適合解決決策問題,因此被視為解決機器人學(xué)習(xí)的一種有效方法,而基于模型的強化學(xué)習(xí)(MBRL)存在許多優(yōu)點,更接近人類的學(xué)習(xí)方式,也更適合機器人學(xué)習(xí).本文首先介紹機器人學(xué)習(xí)的形式化.然后,介紹基于模型的強化學(xué)習(xí)算法的基礎(chǔ)理論,詳細論述當前MBRL中模型的學(xué)習(xí)和模型的利用.最后,基于MBRL的優(yōu)點介紹其在機器人學(xué)習(xí)中的應(yīng)用,并展望MBRL未來的研究方向.隨著基于模型的強化學(xué)習(xí)的發(fā)展,其在機器人學(xué)習(xí)中存在的問題會逐一解決,機器人也將更多地出現(xiàn)在工程和生活之中.