
我們開發了一種分層強化學習演算法,能夠學習有助於解決多種任務的高等級行動,可快速完成需要數千個時間步驟的任務。如應用於特定導航問題,我們的演算法可發現一系列朝不同方向行走和爬行的高等級行動,能使代理程式迅速掌握新的導航任務。
人類在解決複雜問題時,會將它們分拆為多個細小且較易處理的部分。例如,煎薄餅由一系列高等級行動組成,包括量好麵粉、攪拌雞蛋、將混合物倒入平底鍋、開啟爐灶等。即使任務或牽涉數百萬個低等級行動(如個別肌肉收縮),人類仍能透過將這些已學會的部分排序,藉此快速掌握新任務。
相比之下,現今的強化學習方法僅透過強行搜尋低等級行動來解決新任務,因此需要大量的嘗試才能完成。在處理需要大量時間步驟的任務時,這些方法非常缺乏效率。
我們的解決方案以分層強化學習的概念為基礎,代理程式會透過一系列簡短的高等級行動重現複雜行為。這使我們的代理程式能夠解決更困難的任務:即使解決方案可能牽涉 2,000 個低等級行動,分層策略可將其轉化為 10 個連串的高等級行動,而搜尋 10 個連串步驟的效率遠高於搜尋 2,000 個連串的步驟。

我們的演算法稱為「元學習共享層次結構」(Meta-Learning Shared Hierarchies, MLSH),它學習一種分層策略,而當中的主策略會在一系列子策略之間切換。主策略每 N 個時間步驟(例如 N=200)選取一個行動,而執行 N 個時間步驟的子策略則構成一個高等級行動;以我們的導航任務為例,子策略對應向不同方向行走或爬行的行動。
在過往的大多數工作中,分層策略通常經由人手設計。相反,我們的目標是透過與環境的互動,自動發現這種層次結構。從元學習的角度出發,我們將「良好的層次結構」定義為能在從未見過的任務上快速獲得高回報的結構。因此,MLSH 演算法的目標是在前所未見的任務中,快速學習子策略。
我們分多個任務進行訓練,並在共享子策略的同時,在每項抽到的任務學習新的主策略。此流程透過反覆訓練新的主策略,自動尋找順應主策略學習動態的子策略。
在 AntMaze 環境中,我們將 MuJoCo 的 Ant 機械人分配到 9 個不同的迷宮,並要求它必須從起點前往終點。透過與環境互動,我們的演算法成功找到一系列不同的子策略,並將它們拼湊在一起以解決迷宮任務。然後,這些子策略將可用於解決比訓練任務更複雜的問題(請參閱貼文開頭部分的視訊)。
我們將推出用於訓練 MLSH 代理程式的程式碼(在新視窗中開啟),以及為了評估這些演算法而建立的 MuJoCo 環境。


