上一節(jié)中我們介紹了一個(gè)特殊的MDP模型:線性二次型調(diào)節(jié)控制(LQR)。事實(shí)上很多問(wèn)題都可以用LQR來(lái)解決,即使動(dòng)態(tài)模型是非線性的腊脱。盡管LQR是一個(gè)非常漂亮的解決方案,但它還不夠通用州既。我們以倒擺(inverted pendulum)問(wèn)題為例來(lái)引出這一節(jié)的主題。倒擺問(wèn)題的狀態(tài)轉(zhuǎn)換過(guò)程為:
其中函數(shù)F取決于角度的余弦值萝映,顯然這是一個(gè)非線性函數(shù)吴叶。那么我們的問(wèn)題是:如何將該系統(tǒng)線性化處理?
動(dòng)態(tài)模型的線性化
假設(shè)在t時(shí)刻序臂,系統(tǒng)大部分時(shí)間都處于狀態(tài)s-t蚌卤,并且采取的行動(dòng)在a-t附近。對(duì)于倒擺問(wèn)題來(lái)說(shuō)奥秆,當(dāng)系統(tǒng)到達(dá)最優(yōu)解時(shí)逊彭,很顯然系統(tǒng)采取的行動(dòng)范圍很小,且不會(huì)偏離豎直方向太遠(yuǎn)构订。
我們將會(huì)使用泰勒展開(kāi)(Taylor expansion)的方法將動(dòng)態(tài)模型線性化侮叮。先考慮一個(gè)簡(jiǎn)單的場(chǎng)景,當(dāng)狀態(tài)是一維的并且狀態(tài)轉(zhuǎn)換函數(shù)F與行動(dòng)無(wú)關(guān)悼瘾,我們可以得到:
更一般地囊榜,當(dāng)F是關(guān)于狀態(tài)和行動(dòng)的函數(shù)時(shí),我們有:
所以st + 1是關(guān)于st和at的線性函數(shù)亥宿,這是因?yàn)槲覀兛梢园焉鲜礁膶?xiě)成:
其中κ是一個(gè)常數(shù)卸勺,A和B是矩陣。這種形式和我們之前在LQR中做的假設(shè)非常相似烫扼。
微分動(dòng)態(tài)規(guī)劃
當(dāng)我們的目標(biāo)是停留在某個(gè)狀態(tài)s*附近時(shí)曙求,上面介紹的方法可以很有效地解決。然而在某些情況下,目標(biāo)會(huì)變得更為復(fù)雜圆到。
假設(shè)我們的目標(biāo)是遵循某條軌跡(trajectory)怎抛,那么就需要用到微分動(dòng)態(tài)規(guī)劃(Differential Dynamic Programming (DDP))的方法了。這個(gè)方法會(huì)將軌跡按照時(shí)間片進(jìn)行離散化芽淡,并為每個(gè)時(shí)間片建立中間目標(biāo)。DDP的主要步驟如下:
步驟1: 選定標(biāo)稱軌跡(nominal trajectory)豆赏,這個(gè)是對(duì)我們想要追隨的軌跡的近似挣菲。
步驟2: 對(duì)每一個(gè)在s*t附近的軌跡線性化,即:
其中st和at是我們當(dāng)前的狀態(tài)和行動(dòng)掷邦。既然我們現(xiàn)在有了當(dāng)前點(diǎn)的線性近似白胀,我們可以利用上一小節(jié)的結(jié)論將下一個(gè)狀態(tài)改寫(xiě)成:
注意:我們也可以對(duì)獎(jiǎng)勵(lì)函數(shù)R(t)利用泰勒展開(kāi)作類似的推導(dǎo):
其中Hxy指的是R關(guān)于x和y在(st*, at*)處的Hessian矩陣。這個(gè)式子也可以被寫(xiě)成:
其中Ut和Wt是矩陣的形式抚岗。
步驟3: 現(xiàn)在我們證明了這個(gè)問(wèn)題已經(jīng)被轉(zhuǎn)化成了LQR問(wèn)題了或杠,因此我們只需要用LQR的方法求解出最優(yōu)策略πt。
步驟4: 現(xiàn)在我們有了最優(yōu)策略πt宣蔚,我們用它來(lái)產(chǎn)生新的軌跡:
注意當(dāng)我們生成新的軌跡時(shí)向抢,我們應(yīng)該用F而不是近似函數(shù)來(lái)計(jì)算下一個(gè)狀態(tài),也就是說(shuō):
計(jì)算出下一個(gè)狀態(tài)后胚委,我們?cè)倩氐讲襟E2挟鸠,不斷重復(fù)這幾步,直到收斂到某個(gè)值結(jié)束亩冬。
總結(jié)
- LQR只適用于狀態(tài)轉(zhuǎn)換函數(shù)是線性的場(chǎng)景艘希,當(dāng)狀態(tài)轉(zhuǎn)換函數(shù)是非線性時(shí),我們可以使用泰勒展開(kāi)的方法做線性近似
- 當(dāng)大部分狀態(tài)和行動(dòng)在某個(gè)小的局部范圍內(nèi)硅急,我們可以選擇局部中心做線性近似
- 當(dāng)狀態(tài)轉(zhuǎn)換函數(shù)遵循某條軌跡時(shí)覆享,可以使用微分動(dòng)態(tài)規(guī)劃(DDP)算法,其思想是在狀態(tài)轉(zhuǎn)換函數(shù)的多個(gè)點(diǎn)上依次做線性近似
參考資料
- 斯坦福大學(xué)機(jī)器學(xué)習(xí)課CS229講義 LQR, DDP and LQG
- 網(wǎng)易公開(kāi)課:機(jī)器學(xué)習(xí)課程 雙語(yǔ)字幕視頻