强化学习补充主题
RL vs 轨迹优化
核心对比
| 维度 | 轨迹优化 | 强化学习 |
|---|---|---|
| 输出 | 一条轨迹 $(\mathbf{x}, \mathbf{u})$ | 一个策略 $\pi(\mathbf{s})$ |
| 泛化能力 | ❌ 仅适用于该轨迹 | ✅ 可处理新状态 |
| 训练时间 | 秒级 ~ 分钟级 | 小时级 ~ 天级 |
| 推理速度 | N/A | 毫秒级 |
| 模型需求 | ✅ 需要精确模型 | ⚠️ 可有可无 |
| 样本效率 | ✅ 高 | ❌ 低 |
方法选择决策树
开始:选择角色控制方法
│
├─ 是否需要泛化能力?
│ ├─ 否 → 轨迹优化 ⭐
│ └─ 是 → 强化学习 ⭐
│
├─ 是否有精确动力学模型?
│ ├─ 是 → MPC / 轨迹优化
│ └─ 否 → 强化学习
│
└─ 实时性要求?
├─ 毫秒级 → 强化学习(推理)
└─ 秒级可接受 → MPC
RL 在 3D 角色动画中的应用
DeepMimic 范式
核心思想:用强化学习模仿参考动作(来自动捕或轨迹优化)。
参考轨迹 (动捕/轨迹优化)
↓
奖励函数设计(跟踪误差 + 风格项)
↓
RL 训练(PPO/TRPO)
↓
泛化策略 π
奖励函数设计:
$$ r_t = w_{pose} \cdot r_{pose} + w_{vel} \cdot r_{vel} + w_{com} \cdot r_{com} + w_{end} \cdot r_{end} $$
| 奖励项 | 说明 |
|---|---|
| $r_{pose}$ | 姿势跟踪奖励(关节角度) |
| $r_{vel}$ | 速度跟踪奖励 |
| $r_{com}$ | 质心跟踪奖励 |
| $r_{end}$ | 终止奖励(摔倒惩罚) |
代表工作:
- DeepMimic (2018):开创性工作,模仿多样化动作
- AMP (2021):无参考姿态的对抗模仿学习
- ASE (2022):环境交互的技能学习
状态空间设计
典型的角色状态表示:
$$ s_t = (q_{root}, \dot{q}{root}, q{local}, \dot{q}{local}, q{ref}, \dot{q}_{ref}) $$
| 分量 | 说明 |
|---|---|
| $q_{root}$ | 根节点位置和旋转 |
| $\dot{q}_{root}$ | 根节点速度 |
| $q_{local}$ | 局部关节角度 |
| $\dot{q}_{local}$ | 局部关节角速度 |
| $q_{ref}$ | 参考姿势 |
| $\dot{q}_{ref}$ | 参考速度 |
动作空间设计
| 类型 | 说明 | 适用场景 |
|---|---|---|
| 关节位置目标 | 输出目标关节角度,用 PD 控制跟踪 | 最常用,平滑稳定 |
| 关节力矩 | 直接输出关节力矩 | 精确控制,但难训练 |
| 肌肉激活 | 输出肌肉激活信号 | 生物力学仿真 |
实践建议
训练技巧
| 技巧 | 说明 |
|---|---|
| 课程学习 | 从简单任务开始,逐步增加难度 |
| 奖励塑形 | 设计稠密奖励,加速学习 |
| 域随机化 | 随机化物理参数,提高泛化性 |
| 并行采样 | 多环境并行采样,提高样本效率 |
常见陷阱
| 陷阱 | 症状 | 解决方案 |
|---|---|---|
| 奖励黑客 | 智能体找到奖励漏洞 | 仔细设计奖励函数 |
| 欠训练 | 策略不稳定、易摔倒 | 增加训练步数 |
| 过拟合 | 只在特定场景有效 | 域随机化、增加多样性 |
| 稀疏奖励 | 学习缓慢或不收敛 | 奖励塑形、课程学习 |
相关链接
- 轨迹优化方法对比 - GAMES105 中的轨迹优化章节
- DeepMimic 论文笔记
- AMP 论文笔记