OpenAI Dactyl:通过域随机化学习灵巧性
OpenAI 已开发出 Dactyl,这是一套能够使用类人机器人手以空前的灵巧度操控物理对象的系统。通过在仿真中进行全部训练并利用域随机化,Dactyl 能够将其学习到的技能转移到真实世界,而无需进行物理上精确的建模或真实世界的微调。
灵巧操作挑战
在机器人手中重新定位物体是一项复杂任务,主要面临四大技术难题:
- 真实世界应用: 强化学习常在仿真中取得成功,但在转移到实际硬件时面临困难。
- 高维控制: Dactyl 使用的 Shadow Dexterous Hand 具有 24 自由度,远多于机器人手臂常见的 7 自由度。
- 噪声和部分观测: 物理系统存在传感器延迟和遮挡,要求智能体推断不可观测的因素,如摩擦和滑动。
- 对象泛化: 系统必须足够灵活,以操作各种几何形状的物体,而不是仅依赖于针对单一形状的策略。
域随机化方法
为弥合仿真与现实之间的差距,OpenAI 采用了 域随机化。与其尝试创建完美逼真的仿真(这在复杂接触力和可变形材料的情况下往往不可能),Dactyl 在一系列随机选择物理和视觉属性的仿真环境中进行训练。
这种方法使智能体能够快速收集大量经验。如果一个策略能够在各种随机化的仿真环境中成功,它更有可能在真实世界中泛化。Dactyl 使用 MuJoCo 物理引擎进行控制,使用 Unity 游戏引擎进行视觉姿态估计。
技术架构:控制与视觉
学习控制
Dactyl 使用 LSTM(长短期记忆)神经网络来处理环境的动力学。由于动力学参数无法仅凭一次观测推断,LSTM 的记忆使网络能够根据环境的行为调整其动作。
训练使用 Rapid 进行,它是近端策略优化(PPO)的可扩展实现。训练过程使用了 6,144 个 CPU 核心和 8 块 GPU,在 50 小时内收集了约 100 年的仿真经验。
学习视觉
为了操作任意物体,Dactyl 使用卷积神经网络(CNN)作为姿态估计器。该网络处理来自三台 RGB 摄像机的视频流,以估计物体的位置和方向。与控制网络类似,视觉网络也完全在仿真中使用 Unity 进行训练,以模拟多样的视觉现象。
结果与性能
自主策略发现
Dactyl 自主发现了一套丰富的手内操作策略,包括多种抓取类型,如指尖捏、掌心捏、三指抓、四指抓、力量抓取以及五指精确抓取。值得注意的是,Dactyl 将这些抓取方式适配到自身硬件;在精确抓取时,它更倾向于使用拇指和小指(因为小指拥有额外的自由度),而非人类常用的食指或中指。
转移成功率
使用域随机化训练的策略显著优于未使用随机化的策略。在块体操作测试中的结果如下:
| 随机化 | 对象跟踪 | 最大成功次数 | 中位成功次数 |
|---|---|---|---|
| 所有随机化 | 视觉 | 46 | 11.5 |
| 所有随机化 | 运动跟踪 | 50 | 13 |
| 无随机化 | 运动跟踪 | 6 | 0 |
训练效率
对物理动力学的鲁棒性需要大量数据。在非随机化仿真中学习旋转物体大约需要 3 年的仿真经验,而在完全随机化的仿真中实现相似性能则需要约 100 年的经验。
关键发现与局限性
惊人发现
- 触觉感知: 指尖的触觉传感器并非必需。使用一套可以在仿真中有效建模的有限传感器,性能反而更好,而丰富的传感器因难以建模而表现不佳。
- 泛化能力: 为块体设计的随机化能够很好地推广到八角棱柱。但对球体却无法泛化,可能是因为仿真中未对滚动行为进行随机化。
- 系统工程: 硬件和软件基础设施至关重要;例如,较慢的笔记本导致的计时错误显著降低了部分团队成员的性能。
无效技术
- 反应时间: 将动作间隔从 80ms 缩短至 40ms 并未显著提升真实世界的性能,尽管这需要更多的训练时间。
- 真实数据: 在视觉策略中混合使用仿真和真实数据并未比仅使用仿真训练更有优势,因为真实数据会引入延迟和测量误差。
Sources
- OriginalLearning dexterity