當前位置:
首頁 > 最新 > Google,OpenAI提出層次強化學習新思路

Google,OpenAI提出層次強化學習新思路

層次強化學習(HRL)中的自動Skill Discovery思路

文:CreateAMind陳七山

1

前言:關於層次強化學習(HRL)

如何解決強化學習在反饋稀疏時的困難,一直是學界重點研究的方向。一種思路是採用層次化的思想 (Hierarchical Reinforcement Learning,簡稱HRL)。這並不是一個新興的方向,20年前就有相關論文發表[1][2]。但由於始終沒有達到理想的效果,所以最近各大機構如OpenAI, DeepMind, UCB都在進行這方面的研究,NIPS2017也有一個針對HRL的Workshop。

其中一個典型的工作是一篇MIT[3]的論文。當年DeepMind介紹QLearning玩Atari遊戲的時候,著重介紹表現超過人類的打磚塊等遊戲,而在這個表的最底部,是一個Q-Learning得分為0的遊戲,叫做Montezuma"s Revenge。這個遊戲的核心玩法在於,需要玩家先找到鑰匙再開門,先找寶劍再打怪。為什麼這個遊戲對於Q-Learning非常困難呢?因為這個遊戲的反饋(Reward)非常稀疏,只有在開門或者打怪成功之後才會得到獎勵,這對於一個採取隨機探索策略的模型來說,獲得一次正反饋就如同大海撈針。

MIT的Joshua等人[3]則採用HRL的思想,成功將這個遊戲玩到了較高的分數。他們的做法其實很簡單,將遊戲策略分為兩層,上層(Meta Controller)負責處理先找鑰匙再開門的邏輯,而下層(Skills)負責給定任意目標位置時,如何移動遊戲角色到目標位置。訓練時分開訓練,先訓練下層的Skills到收斂,再訓練上層。測試時上下層統一起來,上層給下層發目標位置,下層?移動遊戲角色即可。這樣分層後,相比於不分層直接探索,探索空間是極大地減小了,因此它能夠成功得分並通過第一關。

雖然通關了這個遊戲,但這樣的HRL是並不理想的,因為這樣的HRL並不具有通用性。對於每一個不同的任務,不同的遊戲,它都需要人工制定好層次化結構與Skills的含義(如這裡的找鑰匙-尋路任務結構)。事實上,大多數HRL的論文其實都是人工指定並訓練好Skills的,典型工作如HRL與模仿學習 (Imitation Learning)結合[4],以及用HRL玩Minecraft遊戲[5]。

那麼如何在訓練過程中自動形成層次化結構(Skill Discovery)呢?這就引出了這篇文章的主要內容,關於層次強化學習(HRL)中的自動Skill Discovery思路。

Skills的定義主要能分為兩種,一種是時間上的連續Action的抽象,另一種是具有實現子目標功能的模塊(這裡比較概括,後文會詳細介紹)。接下來我就分兩種Skills的定義,來介紹下兩種不同的Skill Discovery的思路。

2

作為連續Action抽象的Skill:MLSH

考慮一個馬爾科夫決策過程 (MDP) 中的連續Action軌跡:a1, a2, a3 ... at。連續Action的抽象即是說,定義一個Skill,使用這個Skill就意味著輸出這個Action序列:a1, a2, a3 ... at。自動學習連續Action的方法有使用類似EM方法的DDO[6],以及Meta-Learning Shared Hierarchies(MLSH)[7],接下來我著重介紹下MLSH的工作。

MLSH成功地實現了在模擬物理環境里,不僅讓小螞蟻能夠爬行,而且還能夠在迷宮內尋路:

MLSH的整體結構是,如下圖考慮一個兩層的結構,上層的Policy(θ)輸出Master-action選擇輸出下層Skills,下層的Skills(φ)輸出真正的Actions。例如在螞蟻的爬行任務中,Observation為地圖和自身的位置,Actions為每一隻腳的動作。通過一個兩層的結構完成尋路任務並不算創新,MLSH的關鍵在於「Skills代表什麼「是在過程中學習出來的。

學習Skills的演算法如下圖所示,首先將Skills隨機初始化,然後進入一個大循環,在循環中每次選擇一個任務(有多個不同的任務)輪換訓練上層Policy(θ)和聯合訓練下層Skills(φ)。值得注意的是,上層的Policy和下層的Skills觀察到的時間尺度是不一樣的,可以說是上層Policy只能觀察到Skills執行前後的狀態,而觀察不到執行過程中的,這樣做在時間尺度上形成了一個層次結構。

這個並不複雜的想法,為Skill Discovery提供了新的思路,並且也被成功應用到了真實的機械控制場景下[10],並相較於非Hierarchical的RL有更佳的表現。然而,文中的Skills雖然是模型自己學習得到的,但安排的任務順序卻是符合難度順序和層次結構的(先學爬行再學尋路),這說明MLSH也不能說是"Meta"的通用Skill Discovery方法,還需改進。

3

具有實現子目標功能的模塊Skill:DE-HRL

Data-Efficient Hierarchical Reinforcement Learning(DE-HRL)[8]是一篇Google今年5月23日放在Arxiv上的文章,主要思想是上層生成子目標交給下層完成。該文章實際上是對Feudal Networks[9]的改進,使得模型可以Off-policy地訓練,並去掉了Feudal Networks中的一些Tricks。

論文的主要思想如上圖所示,首先從環境得到狀態表示,高層μ(hi)在大時間尺度上作決策,低層μ(lo)在小時間尺度上做決策。高層決策時,生成一個目標交給低層,低層則不斷通過Actions與環境交互去實現這個目標。圖中的h是指的目標轉移函數 (Goal Transition Function),定義如下:

舉個例子,考慮一個2D平面中的尋路問題,S[t] = (2,3) 表示當前狀態是在(2,3)位置,g[t]是(2,0)表示向右方向移動兩格,而當Agent做出一個Action a[t]使得自己位置變為s[t+1] = (3,3)時,下一次的g[t+1] = h(s[t], g[t], s[t+1])為(1,0),就是說還需要向右移動一格。而這一步得到的Reward則設定為R[t] = -||h||,即是說 g[t+1]=h(s[t], g[t], s[t+1]) 越大,距離實現目標越遠,Reward越小。訓練過程如下圖所示:

收集到Experience之後,使用Off-policy的方式分別訓練高層和低層。低層的訓練如圖所示很明確了,高層的訓練這裡使用了一個目標重標記 (Goal Relabeling) 的Trick。因為考慮到在訓練過程中,高層的數據來源並不是當前的低層,而是之前的低層,所以為了保持高低層訓練的一致性,將目標重標記成最能夠使得當前低層產生這些Actions的目標。

實驗部分,文章搭建了一些更加複雜的環境,如下圖所示,螞蟻不僅需要學會爬行,還需要將紅色方塊向右推,以達到綠色標記的位置。下圖中藍色標記為高層的給出的目標位置。

從實驗結果上看,作者提出的HIRO在這一系列複雜任務中取得了很好的效果。下圖中FuN是Feudal Networks[9]。FuN representation, FuN transition PG, FuN cos similarity為Feudal Networks[9]中作者提出的3個trick,實驗中將這3個trick應用到HIRO上,發現效果反而不好。SNN4HRL[11]是將Stochastic Neural Networks應用到HRL中?,VIME是一個非Hierarchical的模型。

總的來說,這篇文章通過高層給低層設置目標的方式來實現,並且目標是高層自動學習生成的,可以看做是高層的Action。但是仔細研究發現,實驗中的狀態表示和目標設置都是簡單的位置坐標,這可能是因為在這個架構中,讓高層生成複雜的目標比較困難。所以該工作應該只適用於狀態簡單的情形(如坐標),遇到狀態複雜的情況(如圖像)就還需改進優化。同時,這種固定兩層的結構也沒有拓展到更多層次的Hierarchy的能力。

4

總結

層次化對於智能體來說是很自然也很重要的。例如對於一個在商場里尋找飯店的情形,對於人來講,顯然存在一個(想要去飯店 / 規劃路徑去飯店 / 選擇向前走或轉向或停下 / 控制腿部肌肉的活動) 的層次化結構。一方面,層次化結構能極大地減少探索的消耗,畢竟如果去飯店過程中每一個肌肉動作都需要思考,可能走一年也走不到飯店。另一方面,層次化結構蘊含很強的任務遷移能力,例如走路技能不論走哪裡都是需要的,不應該重複學習。

雖然當前的HRL工作相較於非HRL的結構,解決問題的能力上有所突破,但改進的空間還很大。例如多層的HRL,不固定時間尺度的HRL,更有效的Skill Discovery策略等,都有待我們進一步探索。

參考文獻

[1] Richard S. Sutton and Doina Precup and Satinder P. Singh. Between MDPs and Semi-MDPs: A Framework for Temporal Abstraction in Reinforcement Learning. 1999.

[2] Thomas G. Dietterich. Hierarchical Reinforcement Learning with the MAXQ Value Function Decomposition, 1999.

[3] Kulkarni T D, Narasimhan K, Saeedi A, et al. Hierarchical deep reinforcement learning: Integrating temporal abstraction and intrinsic motivation[C]//Advances in neural information processing systems. 2016: 3675-3683.

[4] Le H M, Jiang N, Agarwal A, et al. Hierarchical Imitation and Reinforcement Learning[J]. arXiv preprint arXiv:1803.00590, 2018.

[5] Tessler C, Givony S, Zahavy T, et al. A Deep Hierarchical Approach to Lifelong Learning in Minecraft[C]//AAAI. 2017, 3: 6.

[6] Fox, Roy, et al. "Multi-level discovery of deep options." arXiv preprint arXiv:1703.08294 (2017).

[7] Frans, Kevin, et al. "Meta learning shared hierarchies." arXiv preprint arXiv:1710.09767 (2017).

[8] Nachum, Ofir, et al. "Data-Efficient Hierarchical Reinforcement Learning." arXiv preprint arXiv:1805.08296 (2018).

[9] Vezhnevets, Alexander Sasha, et al. "Feudal networks for hierarchical reinforcement learning." arXiv preprint arXiv:1703.01161 (2017).

[10] Kojcev, Risto, et al. "Hierarchical Learning for Modular Robots." arXiv preprint arXiv:1802.04132 (2018).

[11] Florensa, Carlos, Yan Duan, and Pieter Abbeel. "Stochastic neural networks for hierarchical reinforcement learning." arXiv preprint arXiv:1704.03012 (2017).

關於CreateAMind


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 CreateAMind 的精彩文章:

TAG:CreateAMind |