世界は優しい
首页博客关于

Site

世界は優しい

世界很温柔,我们都在努力变得更好。

Navigation

  • 首页
  • 博客
  • 关于

Connect

  • GitHub
  • 作者

© 2026 ZZC. 本站内容以 CC BY-NC-SA 4.0 协议发布。

Built with Next.js · Tailwind CSS

Folders

课程介绍与评分Lec1: IntroductionLec2: Lexical AnalysisLec3: ParsingLec4: Abstract SyntaxLec5: Semantic AnalysisLec6: Activation RecordsLec7: Translate to Intermediate CodeLec8: Basic Blocks and TracesLec9: 指令选择Lec10: Liveness Analysis
Lec0: 课程介绍与成绩Lec1: IntroductionLec2: Operating-System StructuresLec3: ProcessesLec4: Threads(多线程编程)Lec5: CPU SchedulingLec6: 进程同步Lec7: DeadlocksLec8: Main MemoryLec9: Virtual MemoryLec10: File-System InterfaceLec11: File System ImplementationLec12: Mass-Storage System
Lec1: Basic Concepts in Reinforcement LearningLec2: Bellman EquationLec3: Bellman Optimality EquationLec4: Value Iteration & Policy IterationLec5: Monte Carlo Learning
首页
ManiGaussian 论文笔记ManiGaussian++ 论文笔记
AMP: 对抗动作先验替代复杂奖励函数DeepMimic: 从动作捕捉数据学习物理仿真角色技能DreamWaQ: 纯本体感知的四足鲁棒行走Imitating Animals: 从动物模仿到真实四足敏捷运动MoE-Loco: 多任务腿足运动的专家混合架构Multi-AMP: 多重对抗动作先验学习高级技能PIE: Proprioception with Imagination for ParkourRMA: Rapid Motor Adaptation for Legged Robots
论文阅读
Lec1: 五十音Lec2: 日语声调Lec3: 浊音和长音
Callout 语法速查
Hello World - 我的第一篇博客
Typora 语法兼容性测试
首页博客Paper-ReadingRobotsAMP: 对抗动作先验替代复杂奖励函数

论文阅读

AMP: 对抗动作先验替代复杂奖励函数

IROS 2022 论文 AMP:用判别器学习'是否像参考动作'的对抗信号,替代工程师手写的复杂奖励函数,让四足以自然步态学会运动。

2026 年 04 月 16 日/8 min read/ZZCZZC
#论文阅读#强化学习#对抗学习#四足机器人

核心痛点

  • 人工调参太累: 以前要让机器狗跑得好,工程师要写几十行复杂的奖励函数(惩罚抖动、奖励抬腿高度、惩罚能耗...),稍微调错一点,狗就抽搐。
  • 动作不自然: 如果只奖励“向前跑”,机器狗可能会学会一种极其怪异、高能耗的震动步态(Jittery behaviors),根本没法在真机上用。

image-20260103102501191

核心解法

作者引入了 AMP 技术,把奖励函数拆成了两部分:

  1. 任务奖励 (rgr^grg, Task Reward): 非常简单,只包含两项:“速度跟上了吗?” 和 “方向对了吗?”。
    1. rtg=wvexp⁡(−∣∣v⃗^txy−v⃗txy∣∣)+wωexp⁡(−∣ω^tz−ωtz∣)r_{t}^{g}=w^{v}\exp(-||\hat{\vec{v}}_{t}^{xy}-\vec{v}_{t}^{xy}||)+w^{\omega}\exp(-|\hat{\omega}_{t}^{z}-\omega_{t}^{z}|)rtg​=wvexp(−∣∣v^txy​−vtxy​∣∣)+wωexp(−∣ω^tz​−ωtz​∣)
      • 输入变量:
        • v⃗^txy\hat{\vec{v}}_{t}^{xy}v^txy​ 和 ω^tz\hat{\omega}_{t}^{z}ω^tz​: 指令速度(比如你让它跑 1m/s)。
        • v⃗txy\vec{v}_{t}^{xy}vtxy​ 和 ωtz\omega_{t}^{z}ωtz​: 实际速度(机器狗当前真的跑了多快)。
  2. 判别器目标函数 (Discriminator Objective)
  3. 这是为了训练裁判,让它火眼金睛。
    1. arg⁡min⁡Ereal[(D(s,s′)−1)2]+Efake[(D(s,s′)+1)2]\arg \min \mathbb{E}_{\text{real}}[(D(s,s')-1)^{2}] + \mathbb{E}_{\text{fake}}[(D(s,s')+1)^{2}]argminEreal​[(D(s,s′)−1)2]+Efake​[(D(s,s′)+1)2]
    2. 直观解释 (Least Squares GAN):
      • 对于真狗数据 (Real),希望 D(s,s′)D(s, s')D(s,s′) 的输出尽可能接近。
      • 对于机器狗数据 (Fake),希望 D(s,s′)D(s, s')D(s,s′) 的输出尽可能接近 -1。
    3. 操作: 这是一个最小二乘法损失函数。判别器通过最小化这个误差来不断进化。
  4. 风格奖励 (rsr^srs, Style Reward) —— 本文重点:
    • 不再人工写公式,而是训练一个判别器 (Discriminator)。
    • 判别器的工作: 它看过真狗的动作数据(Reference Motion)。当你控制的机器狗做动作时,判别器会打分:“这动作像真狗吗?”像就给高分,不像就给低分。
    • 数据来源: 仅仅 4.5秒 的一只德国牧羊犬的动作捕捉数据(走路、小跑、慢跑)。
    • rts(st,st+1)=max⁡[0,1−0.25(D(s,s′)−1)2]r_{t}^{s}(s_{t},s_{t+1})=\max[0, 1 - 0.25(D(s,s')-1)^{2}]rts​(st​,st+1​)=max[0,1−0.25(D(s,s′)−1)2]
      • 输入变量: D(s,s′)D(s, s')D(s,s′),即判别器对当前动作的打分。
      • 操作:
        • 回顾上面,判别器认为“真”的动作会输出。
        • 如果 D=1D=1D=1(动作很完美),那么 (1−1)2=0(1-1)^2 = 0(1−1)2=0,奖励 rs=1r^s = 1rs=1(满分)。
        • 如果 D=−1D=-1D=−1(动作很假),那么 (−1−1)2=4(-1-1)^2 = 4(−1−1)2=4,奖励 rs=max⁡[0,1−0.25×4]=0r^s = \max[0, 1 - 0.25 \times 4] = 0rs=max[0,1−0.25×4]=0(零分)。
      • 输出: 一个 [0, 1] 之间的标量。越像真狗,分数越高。
  5. 总奖励:rt=wgrtg+wsrtsr_t = w^g r_t^g + w^s r_t^srt​=wgrtg​+wsrts​
    1. 论文中提到权重设置为:风格奖励 ws=0.65w^s = 0.65ws=0.65,任务奖励 wg=0.35w^g = 0.35wg=0.35。
    2. 说明“动作自然”是第一位的

训练过程

image-20260103103000262

这张图展示了 AMP 系统是如何像教学生一样训练机器狗的。我们可以把它分为三个部分来看:

  • 左侧:老师的教材 (Reference Data)
    1. Motion Capture Data: 也就是那 4.5 秒的德国牧羊犬视频数据。
    2. Kinematic Retargeting: 把真狗的骨架数据映射转换成机器狗的关节数据,作为“标准答案”。
  • 中间核心框:判别器 (Discriminator - Motion Prior Reward)
    • 这是一个“打分老师”。它同时接收两路输入:
      1. 真数据 (Real Samples): 来自左边的真狗动作(绿色箭头 +1)。
      2. 假数据 (Fake Samples): 来自右边机器狗自己跑出来的动作 sts_tst​(红色箭头 -1)。
    • 任务: 判别器试图区分哪个是真的,哪个是假的。如果机器狗骗过了判别器,就能拿到很高的风格奖励 rtsr^s_trts​。
  • 右侧与闭环:策略网络 (Policy) 与 训练
    • Policy: 这是机器狗的大脑。它接收环境状态 sts_tst​ 和人类给的任务指令 vtv_tvt​(比如“向前跑”)。
    • Environment: 机器狗在模拟器里执行动作 ata_tat​,产生新的状态。
    • 求和 (+++): 最终,机器狗收到的反馈是 风格奖励 (rsr^srs, 动作像不像狗) 加上 任务奖励 (rgr^grg, 跑得快不快) 。机器狗通过强化学习(PPO算法)不断优化自己,试图同时最大化这两个分数。

核心技术

Adversarial Motion Priors (AMP)

​ 这是一种基于生成对抗网络 (GAN) 思想的技术 。它用一个判别器来替代人工设计的复杂物理约束奖励。它把“什么样的动作是自然的”这个问题,转化成了“让判别器认为是真的”这个问题

  1. 替代了复杂的人工奖励: 不再需要手动调节那 13 个参数,只需要提供几秒钟的动作数据 。
  2. 实现了 Sim-to-Real (虚实迁移): 以前只用简单的任务奖励训练出来的狗,在模拟器里会利用物理引擎的 Bug 疯狂震动(Jittery behaviors),在真机上根本用不了。AMP 强迫它学真狗的动作,所以学出来的策略很稳,能直接上真机 。
  3. 自动涌现自然步态: 不需要硬编码规则,机器狗自己学会了慢走用 Pace,快跑用 Canter 。

实验分析

  1. 能量效率对比 (Cost of Transport, COT):

    • 作者特意测量了机器狗跑动时的能耗(Table II)。
    • 结论: 使用 AMP 训练的策略,COT(约 0.93-1.12)显著低于人工设计奖励(1.37-1.41),更远低于无风格奖励(>5.0)。这证明模仿真狗的动作不仅好看,而且最省力 。
  2. 步态转换机制 (Gait Transitions):

    • 作者分析了 Fig.。重点展示了当速度指令从 1m/s 增加到 2m/s 时,机器狗自动改变了脚的落地模式(从 Pace 变成 Canter),且这种改变导致了能耗的优化。这证明 AMP 学到了动物运动的本质逻辑 。
  3. 真实世界的鲁棒性:

    • 作者强调了在没有专门针对真机微调的情况下,策略能处理复杂的真实地形和外力干扰。
ZZC

Written by

ZZC
每天研究怎么摸鱼的神人

Comments

评论功能即将上线

On this page

  • 核心痛点
  • 核心解法
  • 训练过程
  • 核心技术
  • 实验分析