OpenAI 基線: ACKTR & A2C
OpenAI 已為其 Baselines 框架發布了兩個新實現:ACKTR(使用克羅內克分解信任區域的 Actor-Critic)和 A2C(優勢 Actor-Critic)。這些發布為研究人員提供了工具,以提升強化學習中的樣本效率,並提供一種更具計算效率、同步的替代方案,取代異步的 A3C 演算法。
ACKTR: 高樣本效率與可擴展性
ACKTR 的設計目標是比一階方法(如 A2C)和其他信任區域方法(如 TRPO)更具樣本效率。它通過在自然梯度方向而非標準梯度方向上進行步驟來實現此目標。
技術基礎
ACKTR 結合三種核心技術來優化策略改進:
- Actor-Critic 方法:結合基於策略和基於價值的學習。
- 信任區域優化:通過限制 KL 散度來確保持續改進新政策不會與舊政策有極端不同的行為,從而避免性能崩潰。
- 分散式克羅內克因子分解:用於同時提升可擴展性和樣本效率。
樣本與計算複雜度
ACKTR 優化了互動時間步數(樣本複雜度)與數值運算次數(計算複雜度)之間的權衡:
- 樣本複雜度:ACKTR 的樣本複雜度優於一階方法,因為自然梯度能識別參數空間中,在輸出分佈每單位變化下能實現目標最大瞬間改進的方向。
- 計算複雜度:ACKTR 所使用的 KFAC 更新每個更新步驟僅比標準梯度更新貴 10–25%。這使其顯著高於 TRPO,後者需要昂貴的共軛梯度計算。
效能與擴展性
ACKTR 的效能隨著批次大小而良好擴展。由於它利用每個批次的資訊來近似參數空間的局部曲率,因此在大規模分布式訓練中(此時常使用大批次)特別有效。
A2C: A3C 的同步替代方案
A2C 是異步優勢 Actor-Critic(A3C)演算法的同步、確定性變體。儘管 A3C 具影響力,但 OpenAI 發現 A3C 的異步性並未帶來效能提升。
A2C 與 A3C 比較
- 機制:與 A3C 異步更新不同,A2C 會等待每個行動者完成其經驗片段後再進行更新,並對所有行動者取平均。
- 效能:OpenAI 的同步 A2C 實現優於其異步實現。他們未發現異步引入的噪聲提供任何正則化或探索好處的證據。
- 效率:在單 GPU 機器上,A2C 更具成本效益,因為它能更有效地利用大批次的 GPU。此外,在使用較大策略時,它也比僅 CPU 的 A3C 實現更快。
基準測試與應用
OpenAI 發布了基準測試,評估 ACKTR 與 A2C 在多項任務上對 PPO 和 ACER 的表現。ACKTR 在 49 個 Atari 遊戲上進行測試,超參數僅以 Breakout 遊戲進行調校。
ACKTR 已被應用於學習以下控制策略:
- 模擬機器人:以像素作為輸入、連續動作空間。
- Atari 代理:以像素作為輸入、離散動作空間。
Sources
- OriginalOpenAI Baselines: ACKTR & A2C