11. SAC 算法
SAC 算法理论相对之前的算法要复杂一些,推导过程比较繁琐,但最终的结果是相对简洁的。读者可以根据自己的需求选择性阅读,只需要关注伪代码中变量的涵义以及结果公式即可。
具身智能视角:SAC 在机械臂操作、灵巧手控制等需要高样本效率的场景中广泛使用。由于 off-policy 特性,SAC 可以重用历史数据,在真实机器人(采样成本高)上特别有优势。
11.1 最大熵强化学习
11.1.1 确定性策略 vs 随机性策略
先回忆一下确定性策略和随机性策略的优劣:
确定性策略:
- 优势:稳定且可重复。在一些简单的环境下,更容易达到最优解
- 劣势:缺乏探索性。容易陷入局部最优,所以 DQN、DDPG 等确定性策略算法都会增加一些随机性来提高探索
随机性策略:
- 优势:更加灵活。能够探索未知的状态和动作,有助于避免陷入局部最优
- 劣势:不稳定。随机性太高可能导致收敛速度较慢
实际上,随机性策略相对确定性策略存在碾压性的优势。随机性策略中的随机性是我们人为赋予的、可控的。结合实际经验,就像在对战游戏中,招式和套路多的高手更难对付——即使相同的情况,高手可能有各种方式来应对。因此实际应用中,我们会尽量使用随机性策略,如 A2C、PPO 等。
11.1.2 最大熵目标
然而,最大熵强化学习认为,即使有了成熟的随机性策略,仍未达到"最优的随机"。因此引入信息熵,在最大化累积奖励的同时最大化策略的熵:
标准强化学习目标:
最大熵强化学习目标:
其中
策略越随机,熵越大。最大熵的好处:在不确定哪个动作最优时,倾向于保持更多选择,使策略更加鲁棒。
11.2 Soft Q-Learning
在最大熵框架下,需要重新定义 Q 值和 V 值函数。
传统的最优 Q 值函数:
在最大熵框架下,增加了熵项:
根据贝尔曼方程,可以得到 Soft Q 值函数:
Soft V 值函数:
进一步可以得到:
V 函数实际上是 Q 函数的 softmax 形式(而非 hardmax),这也是 "Soft" 名称的由来。当
Soft Q-Learning 的损失函数:
11.3 SAC 算法
SAC 有两个版本:2018 年的 v1 和 2019 年的 v2。v2 主要增加了温度因子的自动调节。
11.3.1 SAC v1(2018)
SAC v1 包含三个网络:V 网络、Q 网络和策略网络。
V 网络目标函数:
其中
Soft Q 函数目标:
策略目标函数:

11.3.2 SAC v2(2019)— 自动调节温度因子
v1 中温度因子
这样目标变成了在最小期望熵的约束条件下最大化累积奖励期望:
利用动态规划的思想,将策略
首先固定温度因子
这样就能实现温度因子的自动调节。v2 由于引入了温度因子的自动调节,不需要额外的 V 值网络,直接使用两个 Q 网络(包含目标网络和当前网络)来作为 Critic 估计价值即可。这使得 SAC v2 几乎不需要手动调参,大大提高了实用性。
11.4 PPO vs SAC 对比
| 特性 | PPO | SAC |
|---|---|---|
| 策略类型 | on-policy | off-policy |
| 样本效率 | 较低(需大量并行环境) | 较高(可重用历史数据) |
| 经验回放 | 不使用 | 使用 |
| 动作空间 | 离散 + 连续 | 主要连续 |
| 探索方式 | 策略随机性 | 最大熵(更系统化) |
| 典型场景 | 大规模仿真并行 | 真实机器人、小批量数据 |
| 调参难度 | 简单 | 简单(v2 自动温度) |
在具身智能中,如果有 Isaac Gym 等大规模并行仿真环境,优先选择 PPO;如果是真实机器人或仿真采样成本高的场景,优先选择 SAC。
11.5 思考
为什么最大熵可以提高策略的鲁棒性?
最大熵鼓励策略保持多种可行动作的概率,而非把所有概率集中在某一个动作上。这意味着:
- 即使某个动作在训练环境中最优,策略也会保留其他备选动作
- 当环境发生微小变化(sim-to-real gap),策略仍有其他动作可选
- 这种"保守"的随机性恰好提供了对环境不确定性的天然抵抗力