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