Home / 机器人学习 / 机械手魔方:自动域随机化与长期控制

035|机械手魔方:自动域随机化与长期控制

系列首页 · 上一篇 · 下一篇

原论文:Solving Rubik's Cube with a Robot Hand,OpenAI 等,2019。论文。

先接住前作的问题

灵巧手重定向已展示随机化迁移,但魔方转面要求固定部分面并连续执行长解法,固定随机范围也难手工选择。后作扩展同一手部路线,用ADR调课程,并让既有离散求解器提供操作序列。

五个前置概念

五个前置概念:

  • 域随机化:改变仿真参数,训练对变化稳健的策略。
  • 课程学习:随着能力变化安排学习难度。
  • 循环隐藏状态:在时间上保存交互历史的信息载体。
  • 非对称 actor–critic:价值学习可用比执行策略更多的状态信息。
  • 长序列可靠性:局部错误通过多步组合影响整项任务完成概率。
进阶追问与参考答案(3题)

进阶问题1:边界测试是否覆盖参数间的困难组合?

参考答案:逐个参数到边界不等于覆盖角点组合;低摩擦和大延迟可能各自可承受,却在同时出现时失效。可先做重要参数的二因素网格或分层采样,再对高失败区域扩大组合测试。报告训练分布内外的联合失败率,并限制到物理可实现的参数组合,避免用不可能世界解释迁移缺口。

进阶问题2:视觉误差是否应随动作阶段改变建模?

参考答案:若遮挡随夹持、翻转和转面系统变化,独立同分布的观测噪声会漏掉这种关联。先从同步真机记录统计各阶段偏差、相关时间和丢帧率,再比较固定噪声与条件噪声训练。真实测试必须使用相同阶段划分,确认改善来自更准确的误差结构,而不是增加了额外训练数据。

进阶问题3:同预算下固定宽分布与ADR的差距还剩多少?

参考答案:现有机制不能给出未经实验的数值答案。应匹配环境步数、并行算力、随机参数最终范围、架构与调参预算;固定宽分布和ADR分别做独立训练重复,再比较学习曲线面积与最终真机表现。若只保留更快收敛的ADR运行,或给固定分布较少尝试,都无法分离课程收益。

这些回答给出机制分析与待检验设计,不是已经运行的新实验结果。

一、问题设定:怎样把可迁移重定向扩展到长序列转面

“机器人学会还原魔方”容易让人想到网络自己发现了魔方解法。但这篇论文的核心是让灵巧手可靠执行解法要求的翻转和转面。离散解法由已有求解器提供;学习系统负责看清状态并处理复杂接触。

这是仿真强化学习加视觉监督学习,随后真实部署。控制策略采用 PPO,视觉网络从渲染图像学习对象状态。与此同时,硬件标定、动力学改进和传感器工程仍使用真实系统反馈,不能把“网络训练数据来自仿真”扩写成“没有任何真实工程”。

系统包含两个基本子目标:翻转整个魔方,让需要操作的面朝上;旋转顶面。求解器给出离散序列,控制器循环完成子目标。训练时生成子目标,不要求网络从颜色排列自行推导最短还原方案。

观察包含指尖位置、魔方位姿与相对目标等信息。训练价值网络可使用仿真特权状态,执行策略使用有噪观察。这种非对称 actor–critic 减轻价值估计难度,但不会把特权状态直接带上机器人。

论文有两套面角度来源:定制智能魔方传感器,或视觉预测。两者的物体位姿都可由视觉估计,指尖仍有外部动捕。因此“视觉魔方状态”不等于整个机器人完全不依赖外部追踪。

二、按边界表现扩展随机范围并保留记忆

相比此前只改变方块整体朝向,魔方还要求局部面旋转,而且没有对齐的面会互相卡住。手必须一边固定其他部分,一边旋转指定面,还要避免把整个物体转走。

1. 固定随机化为什么难调

随机化太窄,策略容易记住一种摩擦、质量与延迟;太宽,新策略连最简单动作都学不会。手工同时调几十个因素时,还会出现某些组合特别困难、其他组合又浪费计算的问题。

ADR 给每个参数维护上下界:

λi∼U(li,ui),p(λ)=∏iU(li,ui).\lambda_i\sim U(l_i,u_i),\qquad p(\lambda)=\prod_i U(l_i,u_i).

这里 λi\lambda_i 可以控制质量、延迟或视觉变化,li,uil_i,u_i 是当前训练范围。独立均匀分布是设计假设,不表示现实参数真的互相独立,也不表示它覆盖了所有真实变化。

普通训练从分布内部采样;边界测试则挑一个维度,将它固定到某个边界,其余参数正常采样。若边界表现足够好,把这一侧往外推;若表现太差,适当收回。

好表现⇒扩大范围,差表现⇒收缩范围.\text{好表现}\Rightarrow\text{扩大范围},\qquad \text{差表现}\Rightarrow\text{收缩范围}.

要特别小心下界的方向:扩大左边界意味着数值减小,扩大右边界才意味着数值增大。实现时不能把所有边界都机械地加同一个正数。

2. ADR 熵不等于机器人智能分数

对于因子化均匀分布,平均微分熵可写成:

H=1d∑ilog⁡(ui−li).H=\frac1d\sum_i\log(u_i-l_i).

它衡量当前参数化下的分布宽度。单位、尺度或参数化改变时,微分熵会变化。因此它适合跟踪同一设定的扩展过程,不适合把两个任意机器人的数值直接排成通用能力排行榜。

更广分布与更好迁移可能相关,但训练时长也在增加。要确认 ADR 的作用,必须寻找计算量相近的固定随机化对照,而非只拿最终最大模型与早期小模型比较。

3. 记忆如何帮助适应

用 hth_t 表示循环状态:

ht=fθ(ht−1,ot),at∼πθ(⋅∣ht,gt).h_t=f_\theta(h_{t-1},o_t),\qquad a_t\sim\pi_\theta(\cdot\mid h_t,g_t).

gtg_t 是当前子目标。连续几次动作的结果可能透露魔方有多滑、面旋转有多紧、手指是否被限制。这些线索写入 hth_t,从而改变后续动作。

这类测试时适应通常不更新网络权重。变化发生在循环状态中,类似持续更新对当前动力学的内部判断。它和 MAML 式梯度适应不同,也不意味着机器人突然学会完全没训练过的新任务。

4. 学习目标与系统机制分开看

控制器优化子目标回报:接近目标有进展奖励,完成与掉落另有反馈。动作是关节位置变化的离散分箱。视觉网络优化状态估计误差。ADR 则根据模型表现调整数据分布。

三者对应不同问题:控制损失决定怎样行动,视觉损失决定怎样看,ADR 决定练习什么。把所有成绩都归因于 PPO 或所有工程都归因于“随机化”都会遗漏关键部分。

这是教学化流程。真实论文还有分布式采样、模型克隆和长期训练续接;这些会影响复现成本,但并不改变 ADR 的边界反馈思想。

边界测试是逐维课程检查,并非全参数盒子的最坏情况验证。教学例:高质量单独出现时可控、低摩擦单独出现时也可控,但二者同时出现可能掉落。固定一维边界、其余随机采样能够碰到一部分组合,却不穷举所有角点;维度增加时这种覆盖成本迅速上升。

同理,随机化范围扩大证明训练分布变宽,并不等于真实失败概率必然下降。应把同预算固定随机化、ADR、不同随机种子与真实组合扰动对照分开。原文ADR算法的性能缓存和双阈值减少了单次成功驱动范围振荡,但最终阈值仍是课程设计选择。原文ADR算法1—2

帮助建立理解

自构例子,未运行:开始把摩擦限制在较窄区间,策略很快学会稳定夹持。ADR 检查低摩擦边界也能成功后,才继续降低边界。策略于是逐渐需要更好地利用多个手指,避免仅靠原有接触点支撑。若一次就把摩擦降到近零,大多数训练可能只剩掉落。

这个例子说明课程为何有用,却不能保证扩大任何随机量都有帮助。某些极端参数会让任务物理上不可完成,边界反馈和人为范围上限都仍有作用。

三、用ADR边界表现更新课程并执行求解器动作

ADR的双阈值可按一个具体决策读:设上阈值为hh、下阈值为l<hl<h,边界表现均值落在[l,h][l,h]内时保持范围,而不是每次成绩升降都改参数。保留带让测量小波动不立刻反转课程方向;但若策略、测量噪声或任务分布持续改变,过去缓存的均值仍可能滞后,所以缓冲区与更新节奏也是课程状态。

初始化已标定仿真、策略、视觉模型与随机化边界
持续循环:
    普通训练分支:
        采样随机动力学或渲染参数
        生成控制轨迹或带状态标签的图像
        用 PPO 更新循环策略,或监督更新视觉模型
    边界评估分支:
        选一维及其上下某一侧边界
        收集该边界上的模型表现
        平均表现高于上阈值:向外扩展该边界
        平均表现低于下阈值:向内收缩该边界

部署:
    求解器给出下一次翻转或顶面旋转目标
    感知系统估计状态,循环策略生成关节动作
    子目标完成后前进;失败或超时则结束

四、分开解法、感知与实际转面成功

作者用自动域随机化 ADR,让训练环境难度随着模型能力扩展。循环策略在不同动力学中训练,部署时通过记忆适应当前物体。最终系统展示了真实长序列操作能力,但感知配置、训练规模与成功率必须分别读清。

原图怎么读: 图18,原论文图注与图像。横轴按连续翻转序号推进,并在指定序号施加扰动;同时看完成时间与失败概率。更快不一定更稳,误差条也只对应图注定义的统计量。

Solving Rubik's Cube with a Robot Hand,图18:横轴按连续翻转序号推进,并在指定序号施加扰动;同时看完成时间与失败概率。更快不一定更稳,误差条也只对应图注定义的统计量。
实验图原图摘引:OpenAI 等,2019,HTML S9.F18,图18。原图面板重新排版,数据未改。核对原文。原版权保留。
实验 比较对象或数据 核心指标
方块重定向 手工随机化与 ADR 连续子目标成功数
魔方长序列 不同训练规模与感知配置 完成子目标数、半程与全程比例
视觉状态估计 不同随机化及预测设计 位姿和面角度误差
仿真扰动 重置记忆、换动力学、禁用关节 完成时间与失败概率
真实扰动展示 手套、遮挡等条件 定性可恢复行为

最强策略不是一次固定配置、短预算的干净独立训练。原文第6节说明持续数月训练并修改系统,通过克隆保留既有能力。这对工程能力很重要,也意味着消融归因应优先看预算匹配的小规模对照。

第6.3节报告的大规模设置包括 64 张 V100 与大量 CPU 工作机器,累积仿真经验约一万三千年。这里的“年”是并行仿真经历总量,不是实际等待时间,更不是机器人在物理世界运行的年数。

随机试验数量也要分清:真机重复通常是同一训练策略执行多次,不能把它当作多个独立训练种子。均值后的标准误与标准差含义不同,应按表注保留。

关键结果与证据范围

依据原文第8—9节和表6。

  1. 表3,方块重定向:ADR 与手工随机化比较支持迁移收益;旧策略在新硬件配置上表现改变,提醒机器人基准会受平台漂移影响。
  2. 表6,魔方定量结果:最强策略采用视觉位姿加智能魔方面角度时,全程为 20%;面角度也改为视觉时,全程为 0%,均基于十次试验。这两个结果不可混写成统一的“视觉还原成功率”。
  3. 同表协议:完整固定序列要求 43 个翻转或转面子目标。成功计数不是魔方数量,半程也不是“完全还原了较简单的一半颜色”。
  4. 图17,真实扰动:展示在手套、遮挡等条件下仍能执行若干动作;原文没有量化这些展示,不能据视频声称任意扰动下高成功率。
  5. 图18及循环状态分析:仿真中重置记忆或改变动力学后,行为出现调整期,支持记忆参与环境适应;不是普遍元学习能力的证明。

Solving Rubik's Cube with a Robot Hand,图17:展示在手套、遮挡等条件下仍能执行若干动作;原文没有量化这些展示,不能据视频声称任意扰动下高成功率。
原图摘引:OpenAI 等,2019,HTML S8.F17,图17。原面板按源顺序重新排版,数据未改。核对原文。展示在手套、遮挡等条件下仍能执行若干动作;原文没有量化这些展示,不能据视频声称任意扰动下高成功率。

定量程序从已还原状态执行一个固定打乱序列,以减少人工初始化错误。作者把逆向执行视为难度相近,但也注明完全还原状态对视觉追踪稍容易。因此应描述为该固定序列协议,不能宣传成对任意随机魔方状态的大样本平均。

五、自动课程仍依赖人为参数与硬件条件

作者讨论循环策略在卡住后可能失去对某些动态的有效记忆,这属于解释假设。不能把它写成已经定位到神经元级原因。类似地,隐藏状态能预测某个物理参数,只能说明信息可解码,不自动说明控制器必须使用该信息。

本文分析:从单步高成功率到长序列可靠性之间差距很大。即使每步独立成功率有 0.980.98,四十三步全成功也只有 0.9843≈0.420.98^{43}\approx0.42;真实错误还可能相关。这个自算例子不是论文模型,而是提醒读者长序列为何苛刻。

六、沿机制关系继续读

本篇直接承接灵巧手重定向,从固定随机化发展到ADR,并组合传统魔方求解器。与DeepMimic仅有课程设计上的教学联系:一个调整环境范围,一个调整参考初始化,不能称同一算法继承。

七、自测三题与参考答案

问题1:这篇论文是否让强化学习自行发现了魔方解法?

答:没有。已有求解器提供离散操作序列,强化学习解决翻转和转面的感知控制问题。离散规划与连续接触执行是两个层次,后者本身已非常困难。

问题2:ADR 与单纯把随机化范围设得很大,有什么区别?

答:ADR 依据边界表现逐步调整范围,使策略先在可学区域建立能力,再面对更大变化。固定宽范围没有这个能力反馈,可能从一开始就产生大量失败;但 ADR 也仍需人为定义随机参数与阈值。

问题3:部署时没有梯度更新,为什么作者还讨论元学习?

答:循环状态会根据新观察改变,从而改变对当前动力学的应对。作者把这种通过记忆发生的环境适应视为隐式元学习。证据来自扰动和记忆实验,其范围是所测动力学适应,不是任意新知识学习。