AI時代系列(3) 機器學習三部曲: 📘 第三部:《強化學習 —— AI 的決策與進化》
66/100 第七週:📌 高階強化學習演算法
66.Soft Actor-Critic(SAC)🔥 高效學習 + 高熵探索 = 穩定又聰明!
Soft Actor-Critic(軟策略演算法) 是在 Actor-Critic 基礎上,額外最大化行為多樣性的熵獎勵,讓強化學習在連續動作空間中同時擁有穩定收斂與良好探索能力的先進演算法。
________________________________________
🎯 單元學習目標
• 了解 SAC 的創新理念:「最大熵強化學習」
• 掌握 SAC 的演算法結構與損失函數
• 理解 SAC 相對於 DDPG / TD3 的優勢與應用情境
• 建立對「穩定性」與「探索性」的雙重兼顧策略
________________________________________
🔥 一、SAC 是什麼?為什麼它這麼強?
Soft Actor-Critic(SAC) 是一種最先進的離線與在線強化學習演算法,適用於連續動作空間,同時擁有:
能力 原因
📈 高效率 actor + critic + 自動溫度調整
🎯 穩定性高 使用雙 Q 結構 + 目標網路
🌪 超強探索性 將熵(entropy)最大化納入目標函數
🧠 自我調節策略 自動平衡「探索 vs 利用」的強化學習核心矛盾
________________________________________
🧠 二、最大熵強化學習原理
SAC 不只想獲得高獎勵,還希望保持策略的「不確定性」:
傳統的強化學習目標主要是讓策略最大化累積獎勵,也就是單純追求「做出回報最高的行動」;而 Soft Actor-Critic(SAC) 則在此基礎上加入了「最大熵原則」,希望策略除了追求高報酬外,還能保持一定程度的隨機性與探索性。
具體目標變成最大化 E[ ∑ (r(s_t, a_t) + α ⋅ H(π(·|s_t)) )],
其中 H 代表策略的熵(entropy),熵值越高表示策略越多樣、探索範圍越廣;而 α 是溫度參數,用來平衡回報與探索的重要性。透過這種設計,SAC 能在訓練過程中主動保留不確定性,不容易陷入過早收斂或局部最優,特別適合在連續動作空間中執行穩定而有效的學習。
SAC 的精神不是「盲目追高」,而是「邊賺錢邊保持好奇心探索」。
這樣長期下來,能學出既穩定又多樣性的策略,不容易掉進錯誤單一路線,尤其在連續動作控制中特別重要。
________________________________________
🏗 三、SAC 架構組成
組件 功能
🎭 Actor(策略網路) 輸出機率分佈 (\pi(a
🧮 Twin Critic(Q1, Q2) 評估動作好壞,減少 Q-value 過估計
🧭 Value Network(可選) 有些版本使用,幫助穩定計算
💡 Target Network 提供穩定的目標 Q 值
🌡 自調整 α\alphaα 讓系統動態平衡探索與 exploitation
________________________________________
📘 四、SAC 損失函數拆解
________________________________________
1️⃣ Critic 損失(Q-function)
LQ=E(s,a,r,s′)[(Q(s,a)−y)2]
y=r+γ⋅(min(Q1′,Q2′)−αlogπ(a′∣s′)
SAC 中的 Q 損失 (L_Q) 是讓 Q 函數學會預測「眼前獎勵加上未來回報(取雙 Q 的較小值,並考慮探索熵)」的總收益,透過最小化 Q 值與目標值 y 之間的平方誤差來更新。
________________________________________
2️⃣ Actor 損失(Policy)
Lπ=Es[αlogπ(a∣s)−min(Q1(s,a),Q2(s,a))]
SAC 的 Actor 損失 (L_π) 是讓策略在考慮行動價值(取雙 Q 的較小值)基礎上,同時鼓勵保持隨機性(透過熵 α log π(a|s)),讓學到的策略能在探索多樣性中穩定找到高報酬行動。
這是最大熵項與預期 Q 的組合,鼓勵「不確定性中選好動作」
________________________________________
3️⃣ 熱度參數損失(α)
Lα=Ea[−α⋅(logπ(a∣s)+Htarget)]
SAC 中的 L_α 讓 α 自動學習調整,當策略熵(log π(a|s))低於目標熵 H_target 時會提高 α,鼓勵更多探索;當熵已夠高時則降低 α,幫助策略穩定收斂。
SAC 可以學會調整 α,而不是固定值!
________________________________________
🛠 五、SAC 實作流程圖
1. 初始化 actor、雙 critic、target Q
2. 收集資料進 replay buffer
3. 抽樣資料:(s, a, r, s')
4. 更新 Q1, Q2(Critic)
5. 每步都更新 policy(Actor)
6. 自動調整 α(可選)
7. 同步 target network
________________________________________
🧪 六、超參數建議表
在實務訓練 SAC 時,常用的超參數設定如下:
Actor 與 Critic 的學習率通常設為 3e-4,搭配 batch size 為 256,可以在穩定與收斂速度間取得良好平衡;折扣因子 γ 設為 0.99,以兼顧長期報酬的累積;目標網路的軟更新係數 τ 建議為 0.005,讓 target network 隨學習緩慢平穩更新;溫度參數 α 初始可設為 0.2,或啟用自適應 auto α 來自動平衡探索與穩定性;經驗回放緩衝區 buffer size 建議設為 100 萬筆 (1e6),以保證樣本多樣性與充分學習;在動作取樣時,先從 N(0, 1) 正態分布取樣,再乘以標準差,最後經過 tanh 限制在合法動作空間內,避免極端行為出現。這些設定已被廣泛驗證適用於多數連續控制任務,能有效發揮 SAC 穩定又高效的學習特性。
________________________________________
📊 七、SAC vs DDPG vs TD3
在連續控制任務中,DDPG、TD3 與 SAC 是三個經典演算法。
DDPG 結構簡單,僅使用單一 Q 網路,缺乏防高估機制與熵探索,因此穩定性與探索能力較弱;TD3 在 DDPG 基礎上加入雙 Q 網路與目標策略平滑,顯著提升穩定性,探索能力中等,已被廣泛應用在許多工業場景;
而 SAC 在 TD3 進一步引入最大熵原則與自動調整的溫度參數 α,不僅具備雙 Q 與平滑策略,更能同時兼顧穩定性與高度探索能力,在複雜環境下表現極為穩健,工業應用成熟度也最高。整體來說,SAC 代表目前連續控制領域穩定性與實用性的最高標準。
________________________________________
✅ 單元總結
關鍵要素 重點
最大熵策略 同時最大化報酬與策略的不確定性
雙 Q + target network 增加估值穩定性
Actor 用隨機策略 探索性極強,善於處理多解情境
自動 α 調整 幫助演算法動態平衡探索與利用
________________________________________
🎓 延伸任務與實驗建議
• ✅ 用 SAC 訓練 Pendulum-v1 與 LunarLanderContinuous-v2
• ✅ 對比固定 α 與學習 α 時的收斂差異
• ✅ 調整熵目標 Htarget,觀察策略探索力
________________________________________
📦 實務應用場景
• 🔧 機器人精細控制(臂機、輪移)
• 🚗 自駕車決策系統
• 🎮 多解的策略遊戲學習
• 💬 NLP 回饋式訓練(RLHF 的熵項延伸應用)