DYNAMICS-AWARE UNSUPERVISED DISCOVERY OF SKILLS


發表時間:2020(ICLR2020)
文章要點:這篇文章提出了一個無監督的model-based的學習算法Dynamics-Aware Discovery of Skills (DADS),可以同時發現可預測的行爲以及學習他們的dynamics。然後對於新任務,可以直接用zero-shot planning的方法選擇最優動作。這個文章的點就是學習skill的方式是無監督的,通過基於互信息的探索策略,來發現skill。
具體的,定義skill空間,表示爲\(z\)。然後定義一個基於skill的狀態轉移函數\(q(s^\prime|s,z)\)。再定義一個將skill轉化成具體動作的policy \(\pi(a|s,z)\)。有了這個之後,定義關於skill的互信息

訓練的目標就是最大化這個互信息。也就是最大化\(s\)\(s^\prime\)的熵,並且最小化給定skill \(z\)之後的熵。這個目標函數的思路就是讓一個skill的狀態轉移差異儘可能大,同時在給定skill \(z\)之後,讓這個\(s^\prime\)更加確定,也就是能預測(predictable)。
這個目標函數可以寫成

其中\(p\)是真正的狀態轉移函數,利用變分推斷引入前面定義的\(q\)

所以目標就轉變成了最大化右邊的期望值。然後將訓練過程的reward直接設置爲

這個分母是對\(p\)的近似

然後整個流程如前圖所示,先設定一個\(z\)的先驗分佈,比如均勻分佈。每次先採樣一個\(z\),然後用policy \(\pi(a|s,z)\)轉換成動作序列到環境裏執行得到\(s^\prime\)。根據這個狀態轉移更新dynamics函數\(q\),然後根據式子(6)計算reward,接着就用強化訓練policy \(\pi\)。這個過程就是skill發現的過程,以及學習對應的dynamics以及skill對應action的policy。
有了這個之後,就可以直接用online planning的方式來解具體的任務了,文章裏面用的model predictive control,具體流程如下圖

思路就是採樣多個\(z\),用\(q\)去做planning得到reward最大的那個\(z\),然後用\(\pi\)\(z\)轉換成動作序列\(a\)去環境裏執行,然後重複這個過程。
總結:這個方法就有點像分層強化,先學習skill,並且學習skill到action序列的對應關係。然後就用planning的方法在skill層面進行online planning,最後再轉換成具體的action去執行。整個過程是make sense的,具體效果可能還是要看具體任務以及調參了。
疑問:看起來還是挺有道理的,但是這個利用互信息去自己探索skill的方式,到底能不能收斂,還是有點疑問的。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章