# 用于 Sim2Real 迁移的域随机化

- 原标题：Domain Randomization for Sim2Real Transfer
- 类型：博客
- 来源：Lilian Weng 博客
- 发布时间：未知（待核验）
- 首次精选：2026-10-29 23:09
- 分级：值得看
- 学习层级：深入
- 主题：[robotics-world-models](<https://oplearnx.com/md/topics/robotics-world-models.md>)（第 10 位）
- 原文链接：[https://lilianweng.github.io/posts/2019-05-05-domain-randomization](<https://lilianweng.github.io/posts/2019-05-05-domain-randomization>)
- 本站页面：[https://oplearnx.com/resources/pk\_142d27cdbe25](<https://oplearnx.com/resources/pk_142d27cdbe25>)

## 摘要

Lil'Log 博客介绍机器人领域域随机化（Domain Randomization）的文章。先说明仿真到真实迁移的困难与系统辨识等思路，然后讲均匀域随机化的做法，从优化和元学习两个角度解释其原理，并介绍面向任务性能的引导式域随机化，包括匹配真实数据分布和借助仿真器数据引导两类方法。

## 中文精读

### 1. 面向 Sim2Real 迁移的域随机化（引言与目录）

- 机器人领域最难的问题之一是把模型迁移到真实世界；深度强化学习样本效率低、真机采数昂贵，因此通常在仿真器中训练，但仿真器物理参数不一致甚至物理建模错误（如软表面碰撞）会造成现实差距。
- 缩小 sim2real 差距的三类做法：系统辨识（system identification）通过标定建立更逼真的数学模型，但标定昂贵且同一机器的参数会因温度、湿度、位置、磨损而显著变化。
- 域适应（domain adaptation, DA）用迁移学习中的映射或正则化把仿真数据分布调整为真实分布，许多方法（尤其图像分类和端到端图像强化学习）基于对抗损失或 GAN。
- 域随机化（domain randomization, DR）随机化仿真环境属性，训练一个在多种环境上都有效的模型，期望真实系统只是这一丰富训练分布中的一个样本。
- DA 与 DR 都是无监督的；DA 需要相当数量的真实样本刻画分布，而 DR 可能只需很少甚至不需要真实数据，本文聚焦 DR。

### 2. 什么是域随机化？

- 把可完全掌控的环境（仿真器）称为源域，把希望迁移到的环境（物理世界）称为目标域，训练在源域进行。
- 源域中有 N 个随机化参数，由配置 ξ 决定，ξ 从随机化空间 Ξ ⊂ R^N 中采样。
- 策略训练时每个回合都在施加随机化的源域中采集，策略由此接触多样环境并学会泛化。
- 训练目标是最大化在配置分布上平均的期望回报：θ\* = argmax\_θ E\_\{ξ∼Ξ\}\[E\_\{π\_θ, τ∼e\_ξ\}\[R\(τ\)\]\]，其中 τ 是在随机化源域中采集的轨迹。
- Peng 等人的说法是：源域与目标域之间的差异被建模为源域内部的变异性。

### 3. 均匀域随机化

- 原始形式的 DR（Tobin 等 2017；Sadeghi 等 2016）为每个随机化参数设定上下界，并在区间内均匀采样。
- 可随机化的外观因素包括：物体的位置、形状与颜色，材质纹理，光照条件，图像噪声，以及仿真器中相机的位置、朝向和视场角。
- 在随机化仿真图像上训练的模型能够迁移到未随机化的真实图像。
- 物理动力学也可随机化（Peng 等 2018）：物体与机器人本体的质量与尺寸、关节阻尼/kp/摩擦、PID 的 P 项增益、关节限位、动作延迟、观测噪声。
- 研究显示循环（recurrent）策略能适应不同物理动力学乃至部分可观测的现实。
- OpenAI 的灵巧手实验同时使用视觉与动力学 DR，任务是连续旋转物体达成 50 个连续随机目标朝向；该任务 sim2real 差距很大（大量同时接触、物体碰撞等仿真不完美），最初策略撑不过 5 秒，借助 DR 最终在现实中表现良好。

### 4. 为什么域随机化有效？

- DR 的想法听起来很简单，文中给出两种并不互斥、也最有说服力的解释。
- 两种解释分别从双层优化和元学习的角度说明均匀随机化为何能带来迁移能力。

### 5. 作为优化的域随机化

- Vuong 等（2019）把学习 DR 的随机化参数视为双层优化（bilevel optimization）：假定可以获得真实环境，配置从由 φ 参数化的分布 P\_φ\(ξ\) 中采样。
- 外层目标是 φ\* = argmin\_φ L\(π\_\{θ\*\(φ\)\}; e\_real\)，内层是 θ\*\(φ\) = argmin\_θ E\_\{ξ∼P\_φ\(ξ\)\}\[L\(π\_θ; e\_ξ\)\]，其中 L 是策略在环境中的损失。
- 均匀 DR 中随机化范围靠人工挑选，依赖领域知识并需根据迁移表现反复试错调整，本质上是对 φ 的手动优化。
- 下一节的引导式域随机化正是受这种视角启发，试图自动完成双层优化、学出最优的参数分布。

### 6. 作为元学习的域随机化

- 在 OpenAI 的学习灵巧性项目中，用 LSTM 策略跨不同环境动力学做泛化。
- 观察到机器人一旦完成第一次旋转，后续成功所需的时间明显缩短；没有记忆的前馈（FF）策略则无法迁移到真实机器人。这两点都被视为策略在动态学习和适应新环境的证据。
- 某种程度上，域随机化（domain randomization）组合出许多不同的任务；循环网络中的记忆使策略能在任务间实现元学习（meta-learning），并进一步作用于真实环境。

### 7. 引导式域随机化

- 原始 DR 不接触真实数据，因而在仿真中尽量宽而均匀地采样，期待真实环境落在这一宽分布之内。
- 更精细的策略是用任务表现、真实数据或仿真器信息来引导，替代均匀采样。
- 动机之一是避免在不现实的仿真环境中训练模型，节省计算资源。
- 另一个动机是避免过宽的随机化分布导致不可行解，从而妨碍策略学习。

### 8. 面向任务表现的优化

- 思路：先按 P\_φ\(ξ\) 训练一族不同 ξ 的策略，再把它们逐一放到目标域的下游任务（真实机器人或验证集）上评估，收集反馈以判断某个配置 ξ 有多好，并据此优化 φ。
- AutoAugment（Cubuk 等 2018）受 NAS 启发，把为图像分类学习最佳数据增强（剪切、旋转、反色等）当作强化学习问题：在验证集上测试单组增强配置，用性能提升作奖励训练 PPO 策略，为不同数据集输出不同增强策略（CIFAR-10 多为颜色类变换，ImageNet 偏好几何类变换）。它并非为 sim2real 提出，但属于任务表现引导的 DR。
- Ruiz（2019）把任务反馈当作强化学习的奖励，提出“learning to simulate”，用主任务验证集上的性能指标作奖励训练策略预测 ξ（建模为多元高斯）；即使主任务模型未收敛，也能给出合理信号。
- Yu 等（2019）用进化算法，把反馈当作适应度，采用 CMA-ES，适应度为 ξ 条件策略在目标环境的表现；附录比较了贝叶斯优化和神经网络，称其稳定性和样本效率不如 CMA-ES；有趣的是用神经网络建模 P\(ξ\) 时 LSTM 明显优于 FF。
- Meta-Sim（Kar 等 2019）认为 sim2real 差距由外观差距与内容差距组成，GAN 类 DA 多针对外观差距，它则旨在通过生成任务特定的合成数据集缩小内容差距；以自动驾驶训练为例，场景由带属性（如位置、颜色）和物体间关系的层级结构参数化，该层级由类似结构化域随机化（SDR）的概率场景语法指定，且假定事先已知。
- Meta-Sim 分三步训练模型 G 以扩展场景属性 s 的分布：先预训练 G 学恒等映射 G\(s\)=s；再最小化真实与仿真数据分布的 MMD 损失，需穿过不可微渲染器反传，论文通过对 G\(s\) 的属性做扰动数值计算；最后最小化在合成数据上训练、在真实数据上评估的 REINFORCE 任务损失，与 AutoAugment 很相似。

### 9. 面向任务表现的优化（续）

- 这类方法不适合 sim2real：RL 策略或进化模型都需要大量真实样本，把真机实时反馈接入训练循环非常昂贵；是否用更多计算换更少真实数据取决于具体任务。

### 10. 匹配真实数据分布

- 用真实数据引导 DR 类似系统辨识或 DA，核心是让仿真器的状态分布接近真实世界的状态分布。
- SimOpt（Chebotar 等 2019）先在初始随机化分布下训练出策略，再分别部署于仿真器和真机采集轨迹，以最小化两者轨迹差异 D 为目标优化 φ；它同样要处理梯度穿过不可微仿真器的问题，使用相对熵策略搜索。
- RCAN（James 等 2019）是 DA 与 DR 的组合，用于端到端强化学习：在仿真中训练图像条件 GAN（cGAN）把域随机化图像转成非随机化的“规范”版本，再用同一模型把真实图像转成对应仿真版本，使智能体获得与训练一致的观测；前提仍是随机化仿真图像分布足够宽以覆盖真实样本。
- RCAN 的具体任务是基于视觉的机械臂抓取：每步随机化托盘隔板位置、待抓物体、纹理以及光照的位置、方向和颜色，规范版本即仿真器默认外观；生成器 G 把随机化图像映射为规范图像、分割和深度，后两者作为辅助任务。
- RCAN 的零样本迁移优于均匀 DR，但两者都不如仅用真实图像训练的模型；概念上 RCAN 与把合成图像转成真实图像的 GraspGAN 方向相反。

### 11. 由仿真器数据引导

- DeceptionNet（Zakharov 等 2019）即网络驱动的域随机化，动机是学习哪些随机化对缩小图像分类的域差距真正有用。
- 随机化由一组编码器-解码器结构的欺骗模块施加，用于改变背景、加失真、改光照等；另一个识别网络在被变换的图像上完成主任务分类。
- 训练分两步：固定识别网络，反向传播时使用反向梯度以最大化预测与标签的差异，使欺骗模块学到最能混淆的变换；随后固定欺骗模块，用改动后的图像训练识别网络。
- 其反馈来自下游分类器，但目标不是最大化任务表现，而是制造更难的样本；缺点是需要为不同数据集和任务手工设计不同欺骗模块，不易扩展，且零样本结果在 MNIST 和 LineMOD 上仍逊于 SOTA 的 DA 方法。
- 主动域随机化（ADR，Mehta 等 2019）同样用仿真数据制造更难样本：在给定随机化范围内搜索信息量最大的环境变化，信息量以策略在随机化环境与参考（原始未随机化）环境中轨迹的差异衡量；与 SimOpt 不同，它比较的是随机化与非随机化仿真，省去昂贵的真实数据采集。
- ADR 流程：把策略分别跑在参考与随机化环境得到两组轨迹；训练判别器区分某轨迹是否来自随机化环境，用预测为随机化的概率对数作奖励（差异越大越易判别、奖励越高）；奖励输入 Stein 变分策略梯度（SVPG）粒子，输出多样的随机化配置。

### 12. 由仿真器数据引导（续）

- 文中对 ADR 有两点小疑虑：随机策略下轨迹相似度未必能很好衡量环境难度；sim2real 结果不算亮眼，但论文指出其优势是探索的随机化参数范围更小。

### 13. 参考文献与结语

- 列出 15 条文献，涵盖域随机化、CAD2RL、动力学随机化、Learning to Simulate、OpenAI 灵巧手、双层优化选参、AutoAugment、策略迁移优化、SimOpt、RCAN、ADR、DeceptionNet、Meta-Sim 与 SDR。
- 给出引用格式（weng2019DR 的 BibTeX）。
- 结尾一句表示希望读者像作者一样喜欢域随机化（原文以笑脸收尾）。

---
来源：LearnMap · 学径（https://oplearnx.com）
