基于模型的強(qiáng)化學(xué)習(xí)(Model-Based Reinforcement Learning)
本節(jié)主要介紹基于模型的強(qiáng)化學(xué)習(xí),主要包括
- 基本的基于模型的強(qiáng)化學(xué)習(xí)算法: 如何學(xué)習(xí)模型,使用模型進(jìn)行控制
- 討論基于模型強(qiáng)化學(xué)習(xí)算法的不確定性(uncertainity)
- 討論基于模型強(qiáng)化學(xué)習(xí)算法在復(fù)雜觀測中的情況
一、原始模型(Naive model)
如果我們知道(或者
為隨機(jī)的情況),原始算法最直觀的思路是:首先運(yùn)行策略,通過與環(huán)境交互獲得數(shù)據(jù),利用它們?nèi)M合模型,然后通過之前《最優(yōu)控制與規(guī)劃》中介紹的方法選擇決策動作。其基本流程如下版本0.5的算法.

這也是在傳統(tǒng)機(jī)器人領(lǐng)域做系統(tǒng)識別(system identification)的方法,如果能夠有精心設(shè)計(jì)的動態(tài)表征(dynamics representation)以及好的基礎(chǔ)策略,將非常有利于提高學(xué)習(xí)速度。
但是這種簡單方法的缺點(diǎn)與模仿學(xué)習(xí)(Imitiation Learning)一樣有分布不一致(distribution mismatch)的問題。比如如下這張圖,黃色是真實(shí)的獎勵函數(shù),其曲線先上后掉落。但是基礎(chǔ)策略的探索僅僅局限于前面上升的部分,在這個部分學(xué)習(xí)到的分布與實(shí)際的分布的差距很大。

聯(lián)系到在模仿學(xué)習(xí)中的DAgger算法,其通過人工對新的數(shù)據(jù)進(jìn)行再標(biāo)記,從而修正這種問題。在這里同樣可以采用這樣的思路,DAgger是數(shù)據(jù)的標(biāo)簽不準(zhǔn)確,而此處是模型不準(zhǔn)確。如果我們可以根據(jù)實(shí)時返回的新數(shù)據(jù)進(jìn)行模型的更新,就可以保證數(shù)據(jù)的正確性,這樣就產(chǎn)生如下版本1.5的算法。

這里還是存在一個問題,正常情況下是要對模型進(jìn)行一個完整的規(guī)劃過程,然后將所有的決策動作執(zhí)行完才進(jìn)行下次的擬合,也就是個開環(huán)(open-loop)規(guī)劃的形式。由于模型存在誤差,則會導(dǎo)致規(guī)劃的誤差累計(jì),從而使得規(guī)劃后面的數(shù)據(jù)質(zhì)量變差。

二、重新規(guī)劃(Replan)
基于上面的問題,引入replan,每次規(guī)劃后的結(jié)果只選擇第一個動作執(zhí)行,然后重新進(jìn)行規(guī)劃:

這里的重點(diǎn)就在第三步,在第四步執(zhí)行了首個動作后,將數(shù)據(jù)添加到緩存中,就可以進(jìn)行下一次的規(guī)劃。Replan進(jìn)行得越多,對于模型以及單次規(guī)劃的質(zhì)量要求就更低。在很多時候,即使只是隨機(jī)采樣(random sampling)都可以達(dá)到不錯的效果。
三、強(qiáng)化學(xué)習(xí)中的不確定性( Uncertainty in model-based RL)
直觀解釋
先從直覺上來看看不確定性,前面引入了replan版的MBRL算法,看起來似乎是很完美,而在實(shí)際試驗(yàn)中會發(fā)現(xiàn)它往往效果都比較差,如下圖:

這篇Nagabandi, Kahn, Fearing, L. ICRA 2018的圖是在Cheetah環(huán)境上跑的結(jié)果,前面綠色是純model-based的結(jié)果,它已經(jīng)陷入了局部最優(yōu),而經(jīng)過distillation處理之后訓(xùn)練一個model-free的模型,會發(fā)現(xiàn)它其實(shí)比純model-free效果要好,說明它其實(shí)是有學(xué)習(xí)的潛力在里面的。但是為什么會停止在這個點(diǎn)呢?一個解釋是,在前面的規(guī)劃中由于model存在誤差,而由于規(guī)劃的時候都是在最大化獎勵值,這往往會使得模型傾向于樂觀估計(jì),這個也類似于DQN的over estimation的原理,從而許多時候會作出相對錯誤的決策。

如何求解這個問題?后面的主要方法整體而言是基于這樣一個觀察:對于同一個點(diǎn)(獎勵值的理論均值一樣),方差比較高的預(yù)測的樣本累積獎勵都比較高。例如下圖中,假設(shè)目標(biāo)點(diǎn)處在懸崖邊上,對于兩個預(yù)測模型來說,理論上做動作的平均獎勵都是一樣的,但是對于方差高的預(yù)測模型,那么它會更有可能掉入懸崖中,獲得比較低的獎勵,從而樣本累積獎勵會比較低。因此在同一個點(diǎn),最大獎勵是可能一樣的,但是平均大則代表方差比較小。

所以將uncertainty納入考慮中,利用平均獎勵替代最大獎勵更有利于降低方差,既不過于樂觀,也不過于悲觀。
主要思想
在介紹具體的idea之前,首先介紹兩種形式的uncertainty,包括statistical uncertainty和model uncertainty。

前者通常是描述由于數(shù)據(jù)的統(tǒng)計(jì)指標(biāo)上的問題導(dǎo)致模型的uncertainty,例如如果數(shù)據(jù)本身噪音比較大,對于一個自變量它的因變量方差很大,那么學(xué)習(xí)到的模型對點(diǎn)的預(yù)測就會存在很大的uncertainty。
而model uncertainty則是形容模型對自己預(yù)測的確信程度,它通常從模型本身的性質(zhì)得到的,例如Gaussion process就是通過在接觸過某個區(qū)域的點(diǎn)的數(shù)量來得到這個區(qū)域的uncertainty。在諸如神經(jīng)網(wǎng)絡(luò)之類的模型中通常是沒有這一項(xiàng)的。
例如在上面的懸崖的例子中,如果使用神經(jīng)網(wǎng)絡(luò)來輸出,那么它的statistical uncertainty可能會比較小,也就是說它更傾向于樂觀估計(jì),選擇邁向終點(diǎn)。但是如果在探索次數(shù)比較少的情況下,它的model uncertainty其實(shí)會是非常大的。

神經(jīng)網(wǎng)絡(luò)輸出層使用entropy
第一個想法,就是通過判斷output的entropy,也就是描述output的不確定程度,這個其實(shí)就是在描述statistical uncertainty,通過上面的描述也知道,僅僅刻畫這種uncertainty是不夠的,所以需要找到方法刻畫model uncertainty,并將兩者結(jié)合:

評估模型的不確定性
一般情況下,我們做估計(jì)其實(shí)是為了達(dá)到這么一個目的:

也就是說參數(shù)和數(shù)據(jù)可以相互生成,給定一批數(shù)據(jù),一定可以導(dǎo)出某個參數(shù),給出這個參數(shù),則一定可以生成對應(yīng)的一批數(shù)據(jù),也就是數(shù)據(jù)與它的分布一一對應(yīng)。從強(qiáng)化學(xué)習(xí)的角度來看,可以理解做closed-loop的過程中,通過策略與環(huán)境交互得到數(shù)據(jù),利用這些數(shù)據(jù)修正策略,這分別就是右左兩遍的式子,最終網(wǎng)絡(luò)收斂,也就是數(shù)據(jù)與參數(shù)都趨于穩(wěn)定,最終等號也就成立了。
在這里,如果希望考量model uncertainty,那么可以將前面一部分摘出來,估計(jì)利用數(shù)據(jù)生成一批參數(shù)(也就是一個新的模型)的概率,這也就是model uncertainty。

然后將它與statistical uncertainty結(jié)合在一起,得到模型在不同的參數(shù)下的期望概率,這也就是將兩種uncertainty結(jié)合的方法:。

模型
接下來就介紹兩種實(shí)現(xiàn)上面主要思想的模型。
貝葉斯神經(jīng)網(wǎng)絡(luò)(Bayesian neural networks)
首先就是BNN,在常規(guī)的NN中,節(jié)點(diǎn)之間相鄰的邊都是通過weight進(jìn)行連接的,它是一個數(shù)值。而在BNN中則是通過distribution進(jìn)行相連,每過一條邊相當(dāng)于過一個分布,利用分布的方差,就可以衡量variance:

通常而言,其中做的approximation就是引入某種分布,并利用分布輸出的乘積表征model uncertainty,如下圖中分布的mean表示的就是expected weight,variance表征的就是關(guān)于weight的uncertainty。

Bootstrap ensembles
第二種方法則是引入機(jī)器學(xué)習(xí)中常見的ensembles方法:

通過多個model進(jìn)行加權(quán),從而減少方差,因此model uncertainty就可以描述為多個predict的mean:

而整體刻畫也即是output的mean:

它需要注意的是不同的模型之間是要獨(dú)立的,故而數(shù)據(jù)也是要獨(dú)立的,在傳統(tǒng)方法中通常用sampled with replacement的方式,也就是有放回重采樣的方式保證independent。而在神經(jīng)網(wǎng)絡(luò)中,由于隨機(jī)初始化,以及SGD本身的隨機(jī)性,所以model就以及足夠獨(dú)立的,因此也可以忽略此步。
使用uncertainty做規(guī)劃
在上面提到的兩類模型中,都是經(jīng)過N個部分的平均得到最終結(jié)果,故而整體而言的目標(biāo)函數(shù)轉(zhuǎn)化成了:

因此整體的流程也就可以描述成如下的形式:

首先從data生成parameter的分布中采樣出一組分布,通過model得到transition,相乘得到probability,計(jì)算累積reward,經(jīng)過多次迭代得到平均累積reward。
四、Latent space models
在前面通過uncertainty的角度來提高算法的表達(dá)能力,但是通常就直接假設(shè)dynamics的learning是能夠做得比較好的,但是在復(fù)雜場景中的dynamics學(xué)習(xí)實(shí)際是比較困難的:environment可能是partial observability的,state可能是高維且存在較多冗余的。

所以在這節(jié)中則是會考慮如何從結(jié)構(gòu)設(shè)計(jì)的角度使得model的學(xué)習(xí)變得更加容易。
Latent space models
回顧MDP的結(jié)構(gòu)圖:

在partial observability的環(huán)境中,agent從environment中獲取到的observation后,如果需要建模model,首先要處理得到的信息,需要學(xué)習(xí)observation model,也就是如何從observation中得到與decision相關(guān)的state,這個部分是一個高維到低維的映射。接著基于這個observation model進(jìn)一步學(xué)習(xí)dynamics model,得到關(guān)于environment如何產(chǎn)生transition的過程,并同時學(xué)習(xí)reward model,得到關(guān)于reward的信息。
在上面的描述中,其實(shí)可以看出它的核心步驟是如何做從observation到state的mapping,這個也就是latent space model的名稱由來,latent space就是表示state space。
從model fitting的目標(biāo)函數(shù)來看,最基本的方式就是對sample得到的transition做maximum likelihood estimation:

而在latent space models中,將原始的dynamics拆分成observation model與dynamics model,所以這里需要MLE的是兩者的乘積:

這里的expectation是針對這個分布的:

如何理解這個sample,它其實(shí)就相當(dāng)于是首先從所有的action和observation中學(xué)習(xí)到一個關(guān)于transition的分布,然后利用這個進(jìn)行sample。
MBRL with latent space models
** Latent space MBRL with dynamic**
針對上面提到的目標(biāo)函數(shù)來看,它的重點(diǎn)在于如何學(xué)習(xí)這個分布:

在常規(guī)模式中,通常是學(xué)習(xí)一個approximate posterior :

作為一個encoder。
第一個點(diǎn)是學(xué)習(xí)到這個encoder是怎么用到它的?假設(shè)現(xiàn)在有t+1步之前的sample,那么就可以用t步前的sample得到state t,從t-1步前的sample得到state t+1,從而得到同一套的state transition,從而能夠近似上面的分布。
第二個點(diǎn)是這個posterior的形式,是否需要condition on這么多輸入?這個其實(shí)也是類似MC與TD的爭議,使用越多的輸入,信息越多,自然就越準(zhǔn)確,但是學(xué)習(xí)起來就會比較復(fù)雜。在本節(jié)中處于簡單考慮,我們都假設(shè)僅僅使用當(dāng)前的observation作為輸入,從而expectation的對象就變成這種形式:


討論完它的形式以及如何使用它,接下來就討論如何如何學(xué)習(xí)它。同樣也是為了簡化討論,這里假設(shè)observation model是deterministic的,也就是observation與state是一一對應(yīng)的,因此encoder就可以直接轉(zhuǎn)化為function的形式,在lecture14中會具體討論stochastic case的情況。

故而目標(biāo)函數(shù)也就轉(zhuǎn)化為,其中的每個部分都是differentiable的,這也就可以直接用BP來訓(xùn)練。

其中第一部分是通過transition進(jìn)行約束,第二部分則是通過reconstruction的約束保證映射過程可逆,通常其實(shí)可以提高學(xué)習(xí)的穩(wěn)定性。
** Latent space MBRL with reward model **
在上節(jié)中,利用approximate posterior將MDP做了簡化,得到了新的目標(biāo)函數(shù):

在這節(jié)中,則是考慮引入reward model相關(guān)的信息,其實(shí)也就是在目標(biāo)中加了reward model相關(guān)的學(xué)習(xí):

將它嵌入前面的model-based RL的流程中,這節(jié)其實(shí)就是考慮到observation的復(fù)雜性,利用latent space的方法,將步驟二的fit model變得更容易學(xué)習(xí)了:
