Open Source Robotics

精选高质量开源机器人项目、工具和软件,推动机器人社区发展。

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

相关术语

  • Reinforcement Learning
  • Proximal Policy Optimization
  • Sim2Real

相关项目

  • 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

本网站需要 JavaScript 才能正常运行。请启用 JavaScript 以浏览我们的开源机器人项目。