Contents — find the section you need

Q学习和DQN从有限的动作集中进行选择。然而,轮速、无人机推力或机械臂扭矩是连续的。策略梯度方法更新策略\pi_\theta,该策略输出连续动作的分布。Actor-Critic方法增加了一个Critic来评估这些动作;PPO和SAC方法则增加了在机器人研究中广泛应用的实用稳定性。

30秒总结

  • 策略梯度直接增加预期收益J(\theta)。它们能够自然地处理连续动作,但单轨迹估计的方差较大。

  • Actor-Critic方法使用值估计作为基线。优势衡量动作是否优于同一状态下的平均动作。

  • PPO方法限制新旧策略之间的概率比,因此一次更新不会偏离目标太远。它简单直接,但策略内数据难以重用。

  • SAC方法最大化奖励和策略熵。它采用非策略控制,利用回放技术,并且非常适合连续控制。

  • 两种方法均不提供安全限制。请将动作边界、速率限制、底层 PID/MPC 和紧急停止等功能置于学习器之外。

1. 直接优化策略

Diagram 1 · Use the button to switch views
Actor–Critic: update the policy from experience

图 1 — Actor 提出一个连续分布,Critic 评估其回报。在硬件上,该动作会经过经过验证的底层控制器,而不是直接发送到 Torque。

对于随机策略 \pi_\theta(a\mid s),预期回报 J(\theta)=\mathbb{E}_{\pi_\theta}[G_t] 的梯度可以用对数概率的梯度来表示:

\nabla_\theta J(\theta)=\mathbb{E}_{\pi_\theta}\left[\nabla_\theta\log\pi_\theta(a_t\mid s_t)\,G_t\right]

产生高回报的动作概率会增加。由于 G_t 存在噪声和延迟,减去状态相关的基线 b(s_t) 可以降低在不改变预期梯度的情况下,方差如下:

\nabla_\theta J(\theta)=\mathbb{E}\left[\nabla_\theta\log\pi_\theta(a_t\mid s_t)\,(G_t-b(s_t))\right]

2. Advantage 和 Actor-Critic

Critic 学习 V_\phi(s),并使用 A_t=Q(s_t,a_t)-V(s_t) 估计动作是否优于状态平均值。一步 TD 近似为:

\hat A_t=r_{t+1}+\gamma V_\phi(s_{t+1})-V_\phi(s_t)

广义优势估计 (GAE) 结合了多个步骤,并引入了偏差-方差超参数 \lambda。当 \lambda 接近 1 时,它使用更长的预测范围和更低的偏差,但更高的方差。对于快速姿态循环,请使用任务的实际延迟和时间尺度,而不是复制基准设置。

Actor 损失为:

L_\pi=-\mathbb{E}[\log\pi_\theta(a_t\mid s_t)\hat A_t]

Critic 最小化平方值误差:

L_V=\mathbb{E}[(V_\phi(s_t)-\hat V_t)^2]

当共享图像编码器时,一个梯度两种估计值都会改变。不同的学习率、梯度裁剪和固定的观测归一化记录使得故障更容易诊断。

3. PPO:不要一次性大幅改变策略

基于策略的策略梯度会收集当前策略的展开结果。重复使用当前策略进行过多更新会使新策略偏离数据分布。PPO 计算旧策略 \pi_{\theta_{old}} 和新策略

r_t(\theta)=\frac{\pi_\theta(a_t\mid s_t)}{\pi_{\theta_{old}}(a_t\mid s_t)}
之间的概率比

并最大化裁剪后的目标函数

L^{CLIP}=\mathbb{E}\left[\min\left(r_t\hat A_t,\operatorname{clip}(r_t,1-\epsilon,1+\epsilon)\hat A_t\right)\right]

正优势的概率不能无限增加,负优势的概率也不能无限减少。较小的 \epsilon 值较为保守;较大的值允许更大胆的更新。裁剪并非安全约束,因此关节、速度和力限制仍然是分开的。

一个实现会收集固定的展开结果,对优势进行归一化,并训练几个小批量 epoch。保存旧的对数概率,区分从真正的终止状态超时,并在评估时冻结归一化统计数据。否则,即使权重相同,两次运行的结果也可能不同。

4. SAC:奖励加熵

软 Actor-Critic (SAC) 将策略熵 \mathcal{H}(\pi) 添加到未来的奖励中作为目标:

J(\pi)=\mathbb{E}\left[\sum_t\gamma^t\left(r_t+\alpha\mathcal{H}(\pi(\cdot\mid s_t))\right)\right]

熵项防止同样优秀的动作过早地合并为一个动作,它就像一个温度 \alpha,使探索得以持续。SAC 是离策略的,并使用回放缓冲区,因此每个现实世界的转换都可以重复使用。这提高了样本效率,但过时的数据、奖励尺度和温度调整仍然很重要。

对于连续动作,Actor 输出高斯分布的均值 \mu_\theta(s) 和标准差 \sigma_\theta(s),然后使用 tanh 或其他变换将其映射到边界。对数概率需要进行雅可比矩阵校正。变换。孪生 Q 网络和较小的 Q 估计值可以减少高估。决定部署时是使用确定性均值还是保留探索噪声。

5. 选择 PPO 或 SAC

方面 PPO SAC
数据 策略内展开 策略外重放
探索 策略分布和熵奖励 熵是目标函数的一部分
采样效率 低到中等 通常较高
主要缺陷 对数概率、终端标志、裁剪 Q 高估、奖励缩放、tanh 校正
典型适用场景 多个并行仿真器 连续扭矩和稀缺硬件数据

当多个仿真环境可以并行运行时,PPO 通常很稳定。当每次实际转换都很耗费资源时,SAC 可能很有吸引力。这两种方法都不能自动模拟传感器延迟、电机死区或执行器饱和。

6. 仿真到实际是一个边界,而不是一个切换

仿真与现实之间的差距源于质量和摩擦力、反冲、暴露和传感器噪声、网络延迟、电池电压、地面材质和光照等因素。域随机化会对这些参数进行采样,以避免策略过度拟合某个理想值。范围应通过硬件测量;随机化不可能的世界只会增加训练难度。

分阶段迁移更安全:(1) 纯仿真,(2) 重放无运动的真实传感器日志,(3) 抬起车轮进行低功耗测试,(4) 在干净的地面上进行有限制的速度和力测试,以及 (5) 任务本身。将请求的动作与安全限位器实际通过的动作分开记录。仿真到现实是一个识别和评估的迭代循环,而不是一个单一的部署按钮。

7. 安全性和评估

PPO 裁剪和 SAC 熵并不能防止碰撞。独立的监控器应检查速度、加速度、关节角度、接触力、液压、电流和温度。如果观测值无效、为 NaN、时间戳过期或通信中断,监控器应停止工作。应发出安全停止指令。当风险足够时,将其置于单独的进程或MCU中。

除了奖励之外,还应测量成功率、碰撞率、最大偏差、停止距离、能量、动作平滑度、推理延迟和安全限制器干预率。高成功率但频繁干预意味着策略依赖于限制器。使用多个随机种子重复运行,并报告方差和最坏情况,而不仅仅是平均值。

实现清单

  1. 测试动作单元、边界、tanh/clip排序和对数概率校正。

  2. 对于PPO,保存旧的对数概率、优势和终止与超时标志。

  3. 对于SAC,监控回放分布、孪生Q值、温度\alpha和奖励比例。

  4. 根据实验ID固定预处理、归一化、种子、权重和环境参数。

  5. 保持底层PID/MPC、速率限制、看门狗和紧急停止与学习器独立。

  6. 定义被动停止条件。每次转换前,记录日志、低功耗和正常运行情况。

  7. 同时记录成功率、碰撞率、限制器干预率、延迟、能耗和最大偏差。

总结

策略梯度直接优化连续动作分布。Actor-Critic 使用 Advantage 来降低方差;PPO 会裁剪更新;SAC 使用熵和回放来提高探索效率和数据利用率。它们本身都无法解决硬件不确定性或安全性问题。当学习到的策略离开仿真环境时,算法需要经过验证的底层控制器、独立的监控器、分阶段迁移和最坏情况评估。

检查你的理解
PPO 裁剪能保证安全行为吗?

它调整的是优化目标,而不是物理安全约束。训练稳定性和动作安全性应分别评估。

参考文献

What to read next

Review the backgroundQ学习和DQN——从Q表到深度强化学习Continue the series奖励设计入门——为什么“最大化什么”是强化学习中最难的部分Explore another aspect of this field多智能体强化学习入门——如何在对方也在学习的世界中进行优化