PPO(Proximal Policy Optimization)算法稳定性强,适合大多数的仿真环境,如MuJoco/Isaac Gym,是初上手的首选,SAC(Soft Actor-Critic )算法在需要高效探索或真实机器人部署(样本成本高)时更优,际工程中,PPO+SAC 组合(如 PPO 微调 + SAC 迁移)已成为提升鲁棒性的常见方案。
PPO
SAC(Soft Actor-Critic)
算法 | 收敛速度 | 最终性能 | 超参数敏感性 | 代码复杂度 |
---|---|---|---|---|
PPO | 中等 | 高 | 低 | 简单 |
SAC | 快 | 极高 | 中等 | 中等 |
PPO 通过替代目标函数的多轮优化和隐式信任域约束,解决了传统策略梯度方法样本效率低和 TRPO 实现复杂的问题,成为强化学习领域平衡性能与实用性的里程碑式算法。其设计思想被后续算法(如 PPO-Clip/PPO-Penalty)广泛继承,并成为机器人控制、游戏 AI 等场景的默认选择。
该算法是OpenAI在2017年发布的,OpenAI一直想做的是AGI,chatGPT是AGI决策中枢,而机器人是AGI在现实世界交互的核心,而机器人运动、姿态控制室交互中的核心。未来会有越来越多的AGI公司将研究机器人,也会有越来越多的机器人公司研究AGI。
为了便于理解,前面介绍过运动学、逆运动学、概率学介绍过腿足机器人的状态空间和动作空间,这里在罗列一下:
PPO方法的核心公式是:
g ^ = E t [ ∇ θ log π θ ( a t ∣ s t ) ⋅ A ^ t ] ( 1 ) \hat g = \mathbb E_t \Big [ \nabla_{\theta}\log \pi_{\theta}(a_t| s_t) \cdot \hat A_t\Big ] (1) g^=Et[∇θlogπθ(at∣st)⋅A^t](1)
其符号含义如下:
整个公式的意义是通过调整参数 θ \theta θ,使得高优势 A ^ t > 0 \hat A_t > 0 A^t>0的动作概率增加(可理解为走的更稳、更快、更节能),低优势 A ^ t < 0 \hat A_t <0 A^t<0的动作概率减少。
替代目标函数和多轮次优化是PPO算法的创新点,大大提升了训练的效率和稳定性,二者算是协同不可分割。
2.多轮次优化指的是数据复用
其复用流程如下:
采样 N 步交互数据 → 2. 计算优势函数(GAE) → 3. 执行 K 次 minibatch 梯度更新(K=3~10)
在数据收集的时候,在一个环境中,进行一步之后,就得到 s 1 ∣ s 0 , a 0 {s_1|s_0,a_0} s1∣s0,a0,这个时候是可以计算到一个梯度的,但是并没有完成走完10米这个任务,所以这个时候并不更新模型参数 θ \theta θ,然后再 s 2 ∣ s 1 , a 1 {s_2|s_1,a_1} s2∣s1,a1,这个时候同样可以得到一个梯度,可以知道的是这两个采样,都是基于就的策略 π θ o l d \pi_{\theta_{old}} πθold的,所以公式2中要约束新的策略不能偏离就的策略太远。同时通过并行采集和多轮次更新,充分利用数据,CLIP 机制和熵奖励共同避免策略崩溃,这样训练的效率就会高很多。
优化更新,如k取3时,当第一个3来的时候,梯度更新依赖的是 π θ o l d ( a ∣ s ) \pi_{\theta_{old}}(a|s) πθold(a∣s),然后当k==6时,需要再次更新梯度以update策略参数,但是此时并没有使用第一个3更新之后的策略参数取采样(比如走完10米采样),使用的更新梯度的采样还是最早的 π θ o l d ( a ∣ s ) \pi_{\theta_{old}}(a|s) πθold(a∣s)策略,所以前面需要CLIP,以约束偏离程度。
优势函数(Advantage Function) 用于衡量在状态 s t s_t st下选择动作 a t a_t at的优劣,定义为:
A ( s t , a t ) = Q ( s t , a t ) − V ( s t ) A(s_t, a_t) = Q(s_t, a_t) - V(s_t) A(st,at)=Q(st,at)−V(st)
其中 Q ( s t , a t ) Q(s_t, a_t) Q(st,at)是动作价值函数, V ( s t ) V(s_t) V(st)是状态价值函数,广义优势估计(Generalized Advantage Estimation, GAE)通过多步回报平衡偏差与方差,其原始形式为:
A ^ t G A E ( γ , λ ) = ∑ k = 0 + ∞ ( γ λ ) k δ t + k \hat A_t^{GAE(\gamma,\lambda)} = \sum \limits_{k=0}^{+\infty}(\gamma \lambda)^k \delta_{t+k} A^tGAE(γ,λ)=k=0∑+∞(γλ)kδt+k
其中 δ t = r t + γ V ( s t + 1 ] ) − V ( s t ) \delta_t = r_t + \gamma V(s_{t+1]}) -V(s_t) δt=rt+γV(st+1])−V(st)是单步时序差分误差。 r t r_t rt是即时奖励。 γ V ( s t + 1 ] ) \gamma V(s_{t+1]}) γV(st+1])下一状态的折扣价值, − V ( s t ) -V(s_t) −V(st)是当前状态价值的负值。
核心是通过加权多步时序差分误差,平衡短期与长期回报的贡献。公式推导表明,当 λ = 1 \lambda =1 λ=1时,截断 GAE 退化为有限步数的蒙特卡洛估计,确保了计算可行性和理论一致性。实际应用中,调整 λ \lambda λ和轨迹T长度可灵活控制策略优化的稳定性与效率。
在双足机器人中, V ( s ) V(s) V(s)表示从状态 出发,遵循当前策略 的预期累积折扣回报,可以通过神经网络(Critic 网络)预测当前状态的 “未来潜力”。在PPO中, Q ( s , a ) Q(s,a) Q(s,a)不直接由网络预测,而是通过使用Critic 网络预测下一状态价值隐式步骤计算。
总的来说,PPO 凭借其稳定性、高样本效率和易用性,已成为腿足机器人运动控制的主流算法。通过合理的奖励函数设计和状态空间表征,PPO 可实现复杂地形下的自适应运动。未来结合 Sim2Real 技术和混合控制架构,将加速从仿真到实际机器人的部署进程。