当前位置: 首页 > news >正文

【RL】从公式推导到电机控制:深入浅出理解 Policy Gradient 与 Sim-to-Real

【RL】从公式推导到电机控制:深入浅出理解 Policy Gradient 与 Sim-to-Real

摘要:通过legged_gym训练四足机器人时,常常会遇到 Policy Gradient(策略梯度)的核心公式。本文不堆砌晦涩的术语,而是从数学推导出发,直观地解释这个梯度是如何一步步转化为控制电机转动的指令,并探讨为什么理论完美的策略在 Sim-to-Real 环节往往需要“域随机化”来救场。


1. 引言:由于什么我们在优化U ( θ ) U(\theta)U(θ)

在强化学习(RL)的世界里,我们训练的智能体(比如一只 Unitree A1 机器狗)拥有一个大脑——策略网络(Policy Network),其参数由θ \thetaθ表示。

当我们看着训练曲线(Reward Curve)不断上升时,本质上我们是在优化一个核心指标:U ( θ ) U(\theta)U(θ)

1.1U ( θ ) U(\theta)U(θ)的物理含义

U ( θ ) U(\theta)U(θ)代表的是期望回报 (Expected Return)。简单来说,它是衡量这只机器狗在当前智力水平(参数θ \thetaθ)下,平均能拿多少分。

数学定义如下:
U ( θ ) = E τ ∼ P θ ( τ ) [ R ( τ ) ] U(\theta) = E_{\tau \sim P_\theta(\tau)} [R(\tau)]U(θ)=EτPθ(τ)[R(τ)]

其中:

  • τ \tauτ(Trajectory):代表机器人的一次完整尝试(从开机到摔倒或结束的一连串状态s ss和动作a aa的序列)。
  • R ( τ ) R(\tau)R(τ):这一次尝试获得的总分数(走得远加分,摔倒扣分,力矩过大扣分)。
  • P θ ( τ ) P_\theta(\tau)Pθ(τ):在当前策略下,出现这条轨迹的概率。

我们的终极目标:找到一组参数θ \thetaθ,让U ( θ ) U(\theta)U(θ)最大化。


2. 数学魔法:Policy Gradient 推导 (Log-Derivative Trick)

为了最大化U ( θ ) U(\theta)U(θ),我们需要求它的梯度∇ θ U ( θ ) \nabla_\theta U(\theta)θU(θ),告诉参数该往哪个方向更新。这里用到了经典的似然比技巧 (Likelihood Ratio Trick)

第一步:将期望展开为积分

期望本质上是加权平均,我们可以将其写成积分形式。假设奖励函数R ( τ ) R(\tau)R(τ)只由环境决定,与θ \thetaθ无关,我们将梯度算子∇ θ \nabla_\thetaθ移进积分号内部:

∇ θ U ( θ ) = ∫ ∇ θ P θ ( τ ) R ( τ ) d τ \nabla_\theta U(\theta) = \int \nabla_\theta P_\theta(\tau) R(\tau) d\tauθU(θ)=θPθ(τ)R(τ)dτ

第二步:Log-Derivative Trick(灵魂一步)

利用微积分中的恒等式( log ⁡ x ) ′ = 1 x (\log x)' = \frac{1}{x}(logx)=x1,我们可以反推出∇ x = x ⋅ ∇ log ⁡ x \nabla x = x \cdot \nabla \log xx=xlogx
P θ ( τ ) P_\theta(\tau)Pθ(τ)看作x xx,代入上式:

∇ θ P θ ( τ ) = P θ ( τ ) ∇ θ log ⁡ P θ ( τ ) \nabla_\theta P_\theta(\tau) = P_\theta(\tau) \nabla_\theta \log P_\theta(\tau)θPθ(τ)=Pθ(τ)θlogPθ(τ)

现在,我们把这个结果代回第一步的积分中:

∇ θ U ( θ ) = ∫ P θ ( τ ) ∇ θ log ⁡ P θ ( τ ) R ( τ ) d τ \nabla_\theta U(\theta) = \int \color{red}{P_\theta(\tau) \nabla_\theta \log P_\theta(\tau)} R(\tau) d\tauθU(θ)=Pθ(τ)θlogPθ(τ)R(τ)dτ

第三步:变回期望形式

观察上式,发现积分里又出现了P θ ( τ ) P_\theta(\tau)Pθ(τ)。这意味着我们可以把积分重新写回期望的形式:

∇ θ U ( θ ) = E τ ∼ P θ ( τ ) [ ∇ θ log ⁡ P θ ( τ ) R ( τ ) ] \nabla_\theta U(\theta) = E_{\tau \sim P_\theta(\tau)} [\nabla_\theta \log P_\theta(\tau) R(\tau)]θU(θ)=EτPθ(τ)[θlogPθ(τ)R(τ)]

第四步:消掉环境模型(Model-Free 的关键)

一条轨迹的概率P θ ( τ ) P_\theta(\tau)Pθ(τ)由三部分组成:初始状态概率、环境转移概率(物理引擎)、策略网络概率。
当我们对θ \thetaθ求梯度时,所有与θ \thetaθ无关的环境物理规律(比如牛顿定律、摩擦系数)全部变成了 0

最终,我们得到了那个著名的梯度公式:

∇ θ U ( θ ) ≈ 1 N ∑ i = 1 N ( ∑ t ∇ θ log ⁡ π θ ( a t ∣ s t ) ) R ( τ ( i ) ) \nabla_\theta U(\theta) \approx \frac{1}{N} \sum_{i=1}^{N} \left( \sum_{t} \nabla_\theta \log \pi_\theta(a_t|s_t) \right) R(\tau^{(i)})θU(θ)N1i=1N(tθlogπθ(atst))R(τ(i))

为什么这个公式很牛?
它告诉我们:不需要知道环境的物理模型(Model-Free)。无论机器人结构多复杂,只要能通过仿真器采样出来,就可以训练!


3. 物理直觉:梯度是如何控制电机的?

把公式放到四足机器人项目中,每一个符号都有了物理含义。在legged_gym等框架中,策略π θ \pi_\thetaπθ通常输出的是动作分布的均值。

我们可以把梯度更新公式简化理解为:

参数更新 ∝ ∇ θ log ⁡ π ( a ∣ s ) ⏟ 调整方向 ⋅ R ( τ ) ⏟ 调整幅度 \text{参数更新} \propto \underbrace{\nabla_\theta \log \pi(a|s)}_{\text{调整方向}} \cdot \underbrace{R(\tau)}_{\text{调整幅度}}参数更新调整方向θlogπ(as)调整幅度R(τ)

场景 A:成功的尝试(R ( τ ) > 0 R(\tau) > 0R(τ)>0且很大)

  • 现象:机器狗这一步迈得很稳,没有摔倒,且速度达标。
  • 数学:奖励R RR为正,梯度方向与∇ log ⁡ π \nabla \log \pilogπ相同。
  • 效果:更新神经网络权重,增加在当前状态下输出该关节角度的概率密度。
  • 潜台词:“刚才那个姿势很帅,下次遇到这种情况还这么走!”

场景 B:失败的尝试(R ( τ ) < 0 R(\tau) < 0R(τ)<0

  • 现象:机器狗腿软了或者劈叉了。
  • 数学:奖励R RR为负,梯度方向反转。
  • 效果:更新神经网络权重,抑制产生该动作的概率。
  • 潜台词:“刚才那个电机力矩给大了,导致翻车,下次收敛一点。”

4. 现实的挑战:Sim-to-Real 为何会失效?

理论上很完美,但在 Isaac Gym 或 MuJoCo 里训练好的“满分策略”,直接部署到真机(如 A1, ANYmal)上经常会表现得像个刚学步的婴儿,甚至直接抽搐。

这是因为我们计算梯度的分布P s i m P_{sim}Psim和真实世界的分布P r e a l P_{real}Preal存在Distribution Shift(分布偏移)

4.1 核心差异点

  1. 执行器动力学 (Actuator Dynamics)
    • Sim: 假设电机是理想的,指令一下,扭矩瞬间到达。
    • Real: 真实的电机(如宇树 8010)有带宽限制摩擦死区滞后。如果策略要求电机以 50Hz 剧烈抖动,真机根本响应不过来。
  2. 延迟 (Latency)
    • Real: 从 IMU 读取 -> C++ 驱动解析 -> 网络推理 -> 串口下发,整个链路存在几十毫秒的延迟。
  3. 接触模型
    • 仿真里的地面通常是刚体,而真实地面可能是软的、滑的。

4.2 解决方案:域随机化 (Domain Randomization)

既然我们无法让P s i m P_{sim}Psim完美逼近P r e a l P_{real}Preal强化学习的思路是:让P s i m P_{sim}Psim变得超级宽,宽到把P r e a l P_{real}Preal包进去。

legged_gymconfig中,我们通常会进行以下操作:

  • 随机化摩擦力:范围 0.5 ~ 1.5。
  • 随机化质量:给狗身加减 1-2kg 的负载。
  • 随机化外力:训练时不断推挤机器人。
  • 随机化延迟:模拟 10ms ~ 30ms 的控制回路延迟。

原理:如果你的神经网络能在摩擦力既大又小、身体既重又轻、延迟既长又短的“地狱模式”模拟中都能站稳,那么它在那个“唯一且确定”的真实物理世界中,大概率也能站稳。


5. 总结

Policy Gradient 的本质,就是通过大量的试错(Rollout),利用概率论的技巧,将“好的行为”概率推高,将“坏的行为”概率压低。

理解了这个公式,就理解了为什么我们需要大规模并行仿真(Isaac Gym),以及为什么Domain Randomization是 Sim-to-Real 的必经之路。

http://www.rkmt.cn/news/121898.html

相关文章:

  • 2025 书店 + 健身房专属!全自动咖啡机靠谱厂家合集,小空间也适配 - 品牌2026
  • 2000-2024各省铁路里程、公路里程、交通网密度数据
  • Solidity入门(10)-智能合约设计模式1
  • 【教育AI Agent推荐系统揭秘】:3大核心技术驱动个性化学习升级
  • 2025年碳石墨分瓣环批发厂家权威推荐榜单:炭精环/碳晶环/碳精密封环源头厂家精选 - 品牌推荐官
  • CFR Java反编译工具完整指南:从入门到精通实战
  • 信号延迟高达300ms?卫星Agent实时处理优化方案全曝光
  • STL-关联容器(面试复习4)
  • 大棚温湿控制系统组态王6.53仿真全解析
  • ZLUDA:在AMD GPU上无缝运行CUDA应用的全新解决方案
  • HT-LFCN-190+国产替代 → LFCN-190+,190 MHz 超低插损 SMD 低通!
  • Agent频繁掉线?核工业级系统稳定性优化,5个必须检查的核心项
  • 2025-2026北京婚内财产协议律师事务所口碑排名:专业解析与靠谱推荐 - 苏木2025
  • Arcade-plus谱面编辑器:重新定义音乐游戏创作流程
  • 如何用Python快速打造智能微信助手:Wechaty框架终极指南
  • 金融客服Agent应答逻辑优化实战(基于千万级对话数据的提炼)
  • 揭秘MCP AI-102模型部署背后的10个关键决策点,少一个都可能失败
  • 域名SSL证书和IP地址SSL证书有什么区别
  • 【每日算法】LeetCode 17. 电话号码的字母组合
  • 构建下一代医疗AI诊断系统:4个必须掌握的模型融合关键技术
  • Ventoy终极指南:打造免格式化的多系统启动盘
  • MCP量子认证证书管理实战指南(专家20年经验倾囊相授)
  • 如何实现百万级车联网Agent的数据强一致性?:基于时空对齐的信息同步新范式
  • Cursor试用限制终极解决方案:一键重置工具快速上手
  • 物理信息神经网络完整指南:从入门到精通
  • 金融风控图 Agent 实时分析全流程拆解(仅限资深架构师掌握的技术细节)
  • 数据编织-异构数据存储的自动化治理
  • 【dz-998】导盲犬多功能喂食器的设计与实现
  • 终极免费方案:如何快速搭建企业级Vue3后台管理系统?
  • 【dz-999】筒子纱的设计与实现