流式深度學習終於奏效了!強化學習之父Richard Sutton力薦
機器之心報道
機器之心編輯部
自然智能(Natural intelligence)過程就像一條連續的流,可以實時地感知、行動和學習。流式學習是 Q 學習和 TD 等經典強化學習 (RL) 算法的運作方式,它通過使用最新樣本而不存儲樣本來模仿自然學習。這種方法也非常適合資源受限、通信受限和隱私敏感的應用程序。
然而,在深度強化學習中,學習器(learners )幾乎總是使用批量更新和重放緩衝區,這種方式使得它們在計算上很昂貴,並且與流式學習不兼容。
研究認爲批量深度強化學習之所以普遍,是因爲它的樣本效率高。流式深度強化學習存在樣本效率問題,經常出現不穩定和學習失敗的情況。這一現象稱爲流式障礙。
就像下圖展示的,流式強化學習需要從即時單個樣本進行更新,而無需存儲過去的樣本,而批量強化學習則依賴於存儲在重放緩衝區中的過去樣本的批量更新。
爲了解決流式障礙,本文來自阿爾伯塔大學等機構的研究者提出了 stream-x 算法,這是第一類深度強化學習算法,用於克服預測和控制流式障礙,並匹配批量強化學習的樣本效率。
論文作者還提供了 stream-x 算法的最小實現(大約 150 行代碼),感興趣的讀者可以參考原項目。
本文證明了 stream-x 算法能夠克服流式障礙。
在電力消耗預測任務、MuJoCo Gym、DM Control Suite、MinAtar 和 Atari 2600 上的結果證明,該方法能夠作爲現成的解決方案,克服流式障礙,提供以前無法通過流式方法實現的結果,甚至超越批量 RL 的性能。特別是,stream AC 算法在一些複雜的環境中達到了已知的最佳性能。
如下所示,經典的流方法(例如 Classic Q )和批處理 RL 方法的流式版本(例如 PPO1)由於流式障礙而表現不佳。相比之下, stream-x 算法(例如 stream Q )克服了流式障礙,並與批處理 RL 算法競爭,證明了其穩定性和魯棒性。
這項研究得到了強化學習之父 Richard Sutton 的轉發和評論:
「最初的強化學習(RL)算法受自然學習的啓發,是在線且增量式的 —— 也就是說,它們是以流的方式進行學習的,每當新的經驗增量發生時就學習,然後將其丟棄,永不再次處理。
流式算法簡單而優雅,但在深度學習中,RL 的首次重大成功並非來自流式算法。相反,像 DQN(深度 Q 網絡)這樣的方法將經驗流切割成單獨的轉換(transitions),然後以任意批次進行存儲和採樣。隨後的一系列工作遵循、擴展並完善了這種批量方法,發展出異步和離線強化學習,而流式方法卻停滯不前,無法在流行的深度學習領域中取得良好效果。
直到現在,阿爾伯塔大學的研究人員已經證明,在 Atari 和 Mujoco 任務上,流式強化學習(Streaming RL) 算法可以與 DQN 一樣有效。
在我看來,他們似乎是第一批熟悉流式強化學習算法的研究人員,認真地解決深度強化學習問題,而不受批量導向的軟件和批量導向的監督學習思維方式的過度影響。」
還有網友表示,流式算法確實塑造了強化學習的格局。
方法介紹
本文通過引入流式深度強化學習方法 ——Stream TD (λ)、Stream Q (λ) 和 Stream AC (λ),這些統稱爲 stream-x 算法,並利用資格跡,來解決流式障礙問題。
該方法無需使用重放緩衝區、批量更新或目標網絡,即可從最新的經驗中進行學習。與普遍認知相反,本文證明了流式深度強化學習可以是穩定的,並且在樣本效率上可與批量強化學習相當。
由於流式學習方法在使用樣本後必須將其丟棄,因此可能會導致樣本效率低下。爲此,本文提出了兩種技術來提高流式學習方法的樣本效率:1)稀疏初始化,2)資格跡。
算法 1 展示了本文提出的稀疏初始化技術 — SparseInit。此稀疏初始化方案可用於全連接層和卷積層。
算法 3 展示瞭如何構建一個優化器,該優化器使用有效步長這一條件來控制更新大小。
下面爲 stream-x 算法僞代碼。爲了提高算法可讀性,作者使用了以下顏色編碼:紫色表示層歸一化,藍色表示觀測規一化,橙色表示獎勵縮放,青色表示步長縮放,棕色表示稀疏初始化。
實驗結果
爲了演示 Stream-x 算法的有效性,該研究首先展示了在不同環境中經典方法失敗的流式障礙,而 Stream-x 算法克服了這一障礙,並且與其他批處理方法性能相當。
克服流式障礙
流式深度強化學習方法經常會遇到不穩定和學習失敗的情況,稱爲流式障礙。圖 2 顯示了三個不同的具有挑戰性的基準測試任務中的流障礙:MuJoCo、DM Control 和 Atari。
Stream-x 算法的樣本效率
該研究通過比較不同算法的學習曲線來研究 stream-x 方法的樣本效率。圖 3 顯示了不同深度 RL 方法在四個連續控制 MuJoCo 任務上的性能。
圖 4 展示了流 Q (0.8) 與其對應經典方法以及 DQN1 和 DQN 在 MinAtar 任務上的性能。
Stream-x 算法在擴展運行中的穩定性
接下來,研究團隊探究了 Stream-x 算法在長時間運行時的穩定性,以有效地揭示方法是否可以長時間運行而不出現任何問題。實驗結果如下圖 5 所示:
圖 6 顯示了不同智能體在總共經歷 2 億幀的 Atari 遊戲上的性能:
感興趣的讀者可以閱讀論文原文,瞭解更多研究內容。