Soft Actor-Critic
- 又稱: SAC
- 類別: Learning & autonomy › RL & simulation
- 標籤: reinforcement-learning, off-policy, actor-critic, maximum-entropy, robot-learning, continuous-control
一種異策略的強化學習演算法,訓練隨機策略同時最大化獎勵與動作熵,並重複使用經驗回放緩衝區中的過往經驗以提高樣本效率。
定義
Soft Actor-Critic(SAC)是一種針對連續動作空間的異策略(off-policy)actor-critic 強化學習演算法,由 Tuomas Haarnoja 與其同事於 2018 年提出。它建立在最大熵框架之上:策略不只是最大化期望獎勵,而是最大化獎勵再加上對其動作之熵(也就是隨機性)的獎勵項。一個溫度參數決定兩者之間的平衡。熵項會鼓勵廣泛的探索,並避免策略過早收斂到單一行為上。
SAC 學習一個隨機策略(actor),通常是一個高斯分布,其樣本會經 tanh 函數壓縮以符合動作限制,同時學習兩個 Q 函數 critic。計算學習目標時取兩個 critic 中的較小值,可以減少 Q 學習中常見的高估偏差,這項技巧與 TD3 演算法相同;緩慢更新的目標網路則讓學習保持穩定。SAC 的後續版本會自動調整溫度,讓策略的熵維持在選定的目標附近,從而免去最敏感的超參數之一。
由於 SAC 是異策略的,機器人經歷的每一次狀態轉移都會存進經驗回放緩衝區,並在多次梯度更新中重複使用。這讓它的樣本效率明顯高於 PPO 等同策略方法,後者在每次更新後都會捨棄資料。這項特性使 SAC 成為直接在實體機器人上學習的常見選擇,因為在實體機器人上,每一分鐘的互動都要付出時間與磨耗的代價;它也常用於模擬很慢或無法使用模擬的任務。
其代價在於運算量與擴展性。SAC 每個環境步都要執行許多次網路更新,而且在新資料取得成本低廉的大規模平行 GPU 模擬中,它過去從中獲得的好處一直比 PPO 少。在高維度動作空間中或使用大型網路時,訓練也可能變得不穩定,而目前的研究正在探討如何把 SAC 等異策略方法擴展到大量平行環境,以及關節眾多的機器人上。
為何重要
SAC 讓深度強化學習在資料昂貴的情境中變得實際可行,包括直接在真實機器人硬體上學習。它至今仍是連續控制的標準基準方法之一,其熵正則化的表述也影響了許多後來的異策略方法與以模型為基礎的方法。
主要應用
- 在真實硬體上學習 — 在有限的機器人使用時間內訓練操作與行走運動技能
- 連續控制基準測試 — 模擬機器人任務的標準基準方法
- 操作 — 以稀疏或經過塑形的獎勵學習抓取、推動與插入策略
- 微調預訓練策略 — 以線上強化學習改進經由行為複製得到的策略
- 車輛與無人機控制 — 學習連續的轉向與推力指令
實際應用
使用 SAC 的團隊通常會把機器人或模擬器包裝在標準的環境介面中,選用 Stable-Baselines3 等函式庫中的實作,並設定經驗回放緩衝區大小、批次大小、學習率,以及梯度更新次數與環境步數的比例。在硬體上學習時,他們會加上動作的安全限制、自動重置,以及可由機載感測器量測的獎勵訊號,並常以示範資料或先前執行的資料預先填入經驗回放緩衝區。工程師會留意 critic 損失、溫度值與策略的熵;溫度降到接近零,或 critic 估計值無止境地增長,都是訓練需要調整的常見徵兆。
常見誤解
- SAC 一定比 PPO 好 — SAC 的樣本效率較高,但當數千個模擬環境平行執行時,以實際耗時計算,PPO 往往訓練得更快
- 熵獎勵會讓最終策略變得隨機 — 部署時通常使用平均動作,而且自動溫度調整會隨著學習進展降低熵
- SAC 不需修改就能處理離散動作 — 標準演算法針對的是連續動作;離散變體需要經過修改
- 異策略代表任何舊資料都能用 — 與目前策略之行為相差甚遠的資料,仍可能導致價值估計不穩定,在完全離線的設定中尤其如此
誰需要了解
- 在實體硬體上進行訓練的機器人學習研究人員
- 從事連續控制的強化學習實務工作者
- 使用線上微調的操作工程師
- 學習 actor-critic 方法的學生
相關技術
- 近端策略最佳化(Proximal Policy Optimization)
- TD3
- 深度確定性策略梯度(Deep Deterministic Policy Gradient,DDPG)
- 經驗回放緩衝區(Replay Buffer)
- 最大熵強化學習(Maximum Entropy Reinforcement Learning)
- Stable-Baselines3
相關術語
相關專案
- LeRobot: HuggingFace ML library for real-world robotics in PyTorch
- MuJoCo: DeepMind physics engine for robotics and ML research
- PyBullet: Python physics simulator for robotics and RL research with fast CPU-based simulation
- OpenPI: Physical Intelligence VLA foundation models for general robot control
- Microduck: Pollen Robotics' $399 walking duck robot: open-source software, closed hardware
- Isaac Lab: NVIDIA robot learning framework: one task API across Newton, PhysX and Isaac Sim
影片
- L5 DDPG and SAC (Foundations of Deep RL Series): Pieter Abbeel