news 2026/2/24 9:41:03

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【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 的必经之路。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/23 15:41:51

RKLLM加速框架:突破性AI部署技术重塑边缘计算格局

在AI技术快速发展的今天&#xff0c;如何将复杂的大型语言模型高效部署到资源受限的边缘设备&#xff0c;成为行业面临的重大挑战。RKLLM加速框架凭借其革命性的优化技术&#xff0c;为Rockchip芯片提供了完整的AI模型部署解决方案&#xff0c;让嵌入式设备也能流畅运行先进的A…

作者头像 李华
网站建设 2026/2/23 6:07:13

生物信息Agent构建全指南:7个核心模块打造你的专属序列分析引擎

第一章&#xff1a;生物信息Agent的核心概念与应用前景生物信息Agent是一种基于人工智能与生物信息学深度融合的智能系统&#xff0c;能够自主获取、分析和推理生物学数据&#xff0c;广泛应用于基因组学、蛋白质结构预测、药物研发等领域。这类Agent通常具备环境感知、知识推理…

作者头像 李华
网站建设 2026/2/24 6:37:57

气象 Agent 的预测精度瓶颈在哪?3大常见陷阱及破解方案

第一章&#xff1a;气象 Agent 的预测精度瓶颈概述在当前基于人工智能的气象预测系统中&#xff0c;气象 Agent 作为核心决策模块&#xff0c;承担着从海量观测数据中提取时空特征并生成短期与中长期天气预报的任务。然而&#xff0c;尽管深度学习模型在图像识别和自然语言处理…

作者头像 李华
网站建设 2026/2/20 11:00:09

unibest +uview-plus tabbar在iphone15 promax

在iphone15pro max上展示&#xff0c;tabbar没有贴到手机底部&#xff0c;并且颜色不是白的&#xff0c;怎么解决&#xff0c;或者把底部颜色改成白色也行啊&#xff0c;求解

作者头像 李华
网站建设 2026/2/21 13:36:42

LeetDown:macOS平台A6/A7设备降级完整解决方案

LeetDown&#xff1a;macOS平台A6/A7设备降级完整解决方案 【免费下载链接】LeetDown a GUI macOS Downgrade Tool for A6 and A7 iDevices 项目地址: https://gitcode.com/gh_mirrors/le/LeetDown 对于拥有iPhone 5s、iPad 4等A6/A7芯片设备的用户来说&#xff0c;系统…

作者头像 李华
网站建设 2026/2/20 8:50:29

【AI+教育实战指南】:7种高效果实场景下的智能推荐策略

第一章&#xff1a;教育 AI Agent 的学习推荐在现代教育技术中&#xff0c;AI Agent 正逐步成为个性化学习的核心驱动力。通过分析学生的学习行为、知识掌握程度和兴趣偏好&#xff0c;AI Agent 能够动态生成定制化的学习路径&#xff0c;提升学习效率与参与度。个性化推荐机制…

作者头像 李华