想象你是一位杂技导演,要给新人演员排一出高难度的“扔盘子”绝活。真实舞台上一旦失败,道具摔碎、演员受伤、重来一次要花掉大把时间和金钱。于是你租下一间“魔法排练厅”:大厅里有一台时间机器,可以让演员在虚拟环境中反复演练;更神奇的是,排练厅的每面镜子不仅照出动作结果,还会在他抛歪时指出“该往左偏几度、手腕该抬高多少”。这间排练厅,就是我们今天要讲的 Genesis 平台——一个面向机器人的数字魔法排练厅。它跑在 GPU 上,能模拟刚体、柔体、流体等物理世界,并且每一帧仿真都能像神经网络一样反向传播梯度。排练厅里还坐着一位编剧助理(世界模型),能自动生成无穷无尽的新剧本;演员则在这些剧本中反复排练,把动作练成肌肉记忆(策略学习)。有了它,机器人不再需要万次真实试错,而是先在虚拟世界里把各种动作练得滚瓜烂熟,再走上现实舞台。这篇文章,我们就一起走进这间排练厅,看看它的“魔法”到底是怎么实现的。

岗位关联

对 AI 从业者来说,可微分物理仿真是“能求导的环境”,它让机器人策略可以用梯度而非纯试错来学习,是通往数据高效具身智能的必修课。

目录
  1. 可视化演示
  2. 可微分核心
  3. 多物理场模拟
  4. 高速仿真引擎
  5. 世界模型机制
  6. 机器人策略学习
  7. 系统生态与落地
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

通过可微分计算图前向仿真与反向梯度流、多物理场统一仿真(刚体/柔体/流体)、以及与传统平台对比,展示Genesis如何加速具身智能策略训练。

本节配有交互动效(进入视口后自动加载,约 3KB)。

可微分计算图 前向仿真构建可微分计算图每步记录梯度信息 反向传播通过解析导数精确高效计算梯度 ∂L/∂θ=∂L/∂x·∂x/∂θ 可微分性是Genesis最根本的优势

可微分核心

杂技导演带着新人演员走进魔法排练厅。演员第一次抛盘,盘子摔得粉碎;第二次换了个角度,还是没接住。普通录像只能让导演一遍遍回放失败瞬间,但排练厅侧墙上那面“纠错镜”却能在每次失败后亮起一行提示:手腕再抬高两厘米,释放时机再晚半秒。为什么镜子能给出如此精确的修正方向?因为它不只看结果,还看得懂“过程对结果的影响路径”——这正是可微分仿真的核心。

传统物理引擎(如 MuJoCo、Bullet)像一台老式放映机:它能给出每一帧的位置、速度,但当你想知道“如果第 3 步的发力稍有变化,最终损失会怎样变化”时,它只能通过暴力重放来试探。Genesis 则把物理求解器嵌进一张巨大的计算图里,从初始状态到最终损失,每个环节都保留求导能力。于是误差信号可以从最后一帧出发,沿时间轴逐层倒流,标注出每一步对最终成败的贡献——这就是梯度反向传播。

在可微分仿真中,物理过程按微小时间步递推。设第 k 帧的状态为 \(s_k\)(包含位置、速度),任务损失为 \(L\)。相邻两帧之间的梯度传递遵循链式法则:

排练厅“纠错镜”的内部,正是这条链式法则:沿着演出时间轴把最终失误的梯度一路回传,让导演看清是哪一帧、哪只手的动作需要调整。有了梯度,机器人的参数修正不再靠撞运气,而像演员照着镜子一点一点收敛到标准动作。

∂L∂sk=∂L∂sk+1⋅∂sk+1∂sk\displaystyle \frac{\partial L}{\partial s_k} = \frac{\partial L}{\partial s_{k+1}} \cdot \frac{\partial s_{k+1}}{\partial s_k}
这条链式法则就是“纠错镜”的镜片:把最终的失误,沿着时间轴一步步折算回每一帧的修正量。
  1. 损失 \(L\)整个任务的最终误差,例如机器人末端与目标的距离、盘子是否接住。
    LL
  2. 状态 \(s_k\)仿真中第 k 帧的物理状态,包括位置、速度等。
    sks_k
  3. 敏感度 \(\dfrac{\partial s_{k+1}}{\partial s_k}\)下一帧状态对上一帧状态的变化率——“动作偏一点,结果偏多少”。
    ∂sk+1∂sk\frac{\partial s_{k+1}}{\partial s_k}
  4. 链式相乘把后一步传回的梯度乘以本步敏感度,继续往前传,得到 \(s_k\) 应修正的方向。
    ∂L∂sk+1⋅∂sk+1∂sk\frac{\partial L}{\partial s_{k+1}} \cdot \frac{\partial s_{k+1}}{\partial s_k}

多物理场模拟

同一个排练厅,舞台地板会根据剧本随时变换:有时是坚硬的木板,演员需要练习站稳和撞击;有时是飘逸的丝绸,演员要体会布料在指尖的皱褶;有时干脆变成一池清水,让演员在流体阻力中练习平衡。Genesis 把这种“舞台布景切换”变成了同一个仿真内核上的不同物理模式。

这三种模式对应三类物理模型。刚体(Rigid Body)把物体看作不会变形的整体,用质量、惯性张量和接触力描述运动,适合机械臂的关节连杆;柔体(Soft Body)把物体离散成大量质点,质点之间用弹簧和阻尼连接,适合布料、线缆和人体组织;流体(Fluid)则基于 Navier-Stokes 方程或 SPH 粒子方法,描述水、空气的流动及其对物体的推力。真实任务往往是它们的组合:机器人在雨水中搬运湿透的纸箱,同时包含流体、柔体和刚体。

Genesis 用统一的可微算子包裹这三类物理域。设当前状态为 \(s_t\),控制输入为 \(u_t\),待优化参数为 \(\theta\)(质量、刚度、摩擦系数等),则下一帧状态可以写成:

导演不需要为每种材质租一间剧场,Genesis 在同一个数字排练厅里切换舞台布景,而且每一块布景都同样支持“纠错镜”的梯度回传。多物理场的统一,让机器人从“在木地板上站稳”到“在湍流中稳住身体”的迁移训练变得顺理成章。

st+1=PΩ(st,ut,θ)\displaystyle \mathbf{s}_{t+1} = \mathcal{P}_{\Omega}(\mathbf{s}_t, \mathbf{u}_t, \boldsymbol{\theta})
不同下标 \(\Omega\)(刚体/柔体/流体)对应不同舞台布景,但都支持同一套梯度回传机制。
  1. 下一帧状态 \(\mathbf{s}_{t+1}\)包含下一时刻所有物体的位置、速度、形变或流速。
    st+1\mathbf{s}_{t+1}
  2. 物理推进算子 \(\mathcal{P}_{\Omega}\)由物理域 \(\Omega\) 决定的推进规则,刚体、柔体、流体各有自己的 \(\Omega\)。
    PΩ\mathcal{P}_{\Omega}
  3. 控制输入 \(\mathbf{u}_t\)机械臂的关节力矩、夹爪的抓握力、流体中的外力等。
    ut\mathbf{u}_t
  4. 可调参数 \(\boldsymbol{\theta}\)可以通过梯度优化的物理属性,如质量、刚度、摩擦系数。
    θ\boldsymbol{\theta}

高速仿真引擎

排练最怕一个字:慢。如果每场三分钟的演出都要按真实时间同步排练一万遍,导演头发都要白了。Genesis 的工程师相当于给排练厅装上了“时间快进器”和“多房间并行”:一场演出可以被拆成上千个片段,在成百上千个 GPU 核心上同时排练,最后无缝拼合。

这种加速来自两个层面。第一是算法层:设计更紧凑的物理求解器、减少无效计算、用稀疏矩阵处理接触约束,让单步仿真本身更快。第二是系统层:物理场景天然可并行,Genesis 把大量物体、大量仿真环境打包分发到 GPU 上同时推进,大幅提升吞吐量。官方称其比常见引擎快几个数量级,意味着原本要跑一整夜的数据,现在喝杯咖啡的功夫就能生成。

并行加速的收益不是无限的,Amdahl 定律刻画了这个上限:

这台“时间快进器”的真正意义,是把数据量从稀缺变成充裕。排练次数上去了,演员见过的场面够多,真实演出时才能处变不惊。对机器人来说,仿真速度直接决定了它见多识广的程度。

Sspeedup=1(1−p)+pn\displaystyle S_{\text{speedup}} = \frac{1}{(1 - p) + \dfrac{p}{n}}
这里的 \(S\) 是加速比,\(p\) 是可并行部分占比,\(n\) 是并行处理器数量。就算处理器无限多,串行部分也会拖住整体速度。
  1. 加速比 \(S_{\text{speedup}}\)经过并行优化后,仿真速度比原来快了多少倍。
    SspeedupS_{\text{speedup}}
  2. 可并行比例 \(p\)整个计算中可以被拆开并行执行的部分占比,取值 0 到 1。
    pp
  3. 处理器数量 \(n\)参与并行计算的 GPU 核心或处理器数量。
    nn
  4. 串行底线 \((1 - p)\)无法并行的部分,它决定了加速比的极限。
    (1−p)(1 - p)

世界模型机制

排练厅里还坐着一位编剧助理,它从不亲自上场,却能在夜深人静时一口气写出几百份新剧本:把桌子换成圆台,把地面浇成冰面,把背景光线调成忽明忽暗。导演只要说一句“要讲一个雨天滑倒的人”,助理立刻递上十个版本。这位编剧助理,就是世界模型。

世界模型是一类能从经验中学习环境动态的模型,它的任务是把当前世界状态 \(s_t\) 和动作 \(a_t\) 映射到下一个状态的预测:

Genesis 把物理仿真和世界模型结合起来:可微分仿真本身就能提供大量精确的高质量数据,作为世界模型的学习素材;而学到的世界模型又能快速合成大量新场景,反哺策略训练。这就构成一个数据飞轮:仿真生成数据 → 训练世界模型 → 世界模型合成新任务 → 新任务继续仿真验证。对具身智能来说,这解决了真实世界中场景不够多、极端情况难以采集的痛点。

导演有了编剧助理后,演员不再只练同一折戏。世界模型让机器人面对的是无穷变化的“剧本宇宙”,而 Genesis 的高精度仿真则确保每份新剧本在物理上可信、可重复、可求导。剧本越多,肌肉记忆才越扎实。

s^t+1=W(st,at)\displaystyle \hat{s}_{t+1} = \mathcal{W}(s_t, a_t)
世界模型像一个“脑补专家”:看到当前画面和动作,就能猜出下一秒世界会变成什么样,连细节都补全。
  1. 预测状态 \(\hat{s}_{t+1}\)模型“脑补”出的下一帧世界状态,带帽子符号表示是预测值。
    s^t+1\hat{s}_{t+1}
  2. 世界模型 \(\mathcal{W}\)一个学习过的函数或网络,从经验中拟合环境动态。
    W\mathcal{W}
  3. 当前状态 \(s_t\)此刻所有物体的位置、速度、材质状态。
    sts_t
  4. 动作 \(a_t\)机器人(或演员)此刻做出的决策。
    ata_t

机器人策略学习

演员要登上舞台,靠的不是背台词,而是形成无需思考的肌肉记忆。对机器人而言,这个“肌肉记忆库”就是策略网络 \(\pi_\theta\):给它当前状态,它输出下一个动作。问题在于,怎么让策略网络在数以百万计的决策里越做越好?

一种经典路线是强化学习(RL):让策略在仿真环境里不断试错,用整场演出的回报好坏来调整参数。策略梯度类方法(如 REINFORCE)给出了一个可计算的更新方向:

在纯 RL 中,这个期望通过大量随机采样来估计,样本效率较低;Genesis 的可微分物理恰好提供了另一种信号源:当环境的物理过程可导时,策略的输出可以直接通过仿真器回传梯度,类似于把传统的“试错搜索”升级为“有向导的爬山”。实践中两者常互补:RL 负责探索未知的危险地形,可微分梯度负责在连续的平滑阶段精细打磨动作。两种信号共同塑造策略网络的肌肉记忆。

声乐教练纠正的是气息,RL 和梯度纠正的是参数。一个在排练中反复打磨动作的演员,上台时才敢说“闭着眼也能接住盘子”——机器人策略在 Genesis 里经历了足够多的虚拟练习后,肌肉记忆就真正形成了。

∇θJ(θ)=Eτ∼πθ[∑t=0T∇θlog⁡πθ(at∣st) R(τ)]\displaystyle \nabla_\theta J(\theta) = \mathbb{E}_{\tau \sim \pi_\theta} \left[ \sum_{t=0}^{T} \nabla_\theta \log \pi_\theta(a_t \mid s_t) \, R(\tau) \right]
这个公式像“声乐教练的批改册”:把整场演出的成败回报,分摊到每一个动作上,指出哪些动作应该被强化。
  1. 期望回报 \(J(\theta)\)策略在环境中获得的长期回报期望,用来衡量策略好坏。
    J(θ)J(\theta)
  2. 轨迹采样 \(\tau \sim \pi_\theta\)按当前策略做决策得到的一条完整状态-动作序列。
    τ∼πθ\tau \sim \pi_\theta
  3. 对数概率梯度 \(\nabla_\theta \log \pi_\theta(a_t \mid s_t)\)表示在状态 \(s_t\) 下选中动作 \(a_t\) 的概率上升最快的方向。
    ∇θlog⁡πθ(at∣st)\nabla_\theta \log \pi_\theta(a_t \mid s_t)
  4. 轨迹回报 \(R(\tau)\)整条轨迹的累积奖励,用来加权哪些动作该加强、哪些该减弱。
    R(τ)R(\tau)
  5. 求和与期望把所有时间步的梯度贡献累加,并对所有可能轨迹求平均。
    Eτ∼πθ[∑t=0T⋯ ]\mathbb{E}_{\tau \sim \pi_\theta}\left[\sum_{t=0}^{T} \cdots \right]

系统生态与落地

再神奇的排练厅,如果只有导演能进去,就成不了行业基础设施。Genesis 的管理员非常清楚这一点:它在门口贴出简洁的 Python 使用说明,兼容许多团队已经在用的 MJoCo 模型格式,并把内核开源,让全世界的工程师都能进来搭台、写剧本、训练演员。

用 Python 写一个机器人训练闭环通常长这样:策略网络输出控制信号 \(u_t\),Genesis 仿真器接收信号并推进物理世界,返回新的状态 \(s_{t+1}\),如此循环往复。写成公式就是:

MJoCo 兼容意味着社区积累的大量机器人模型(机械臂、四足、人形)可以无缝迁移到 Genesis 中;开源生态则让多物理场仿真、世界模型、策略学习这些模块可以像积木一样被复用。落地路径也随之清晰:先用仿真批量生成数据和策略,再通过 sim-to-real 技术把“排练成果”迁移到真实机器人上,最后在真实场景中做小规模微调。

从魔法排练厅到真实舞台,Genesis 完善了最后一段通道。接口、兼容、开源,让每个机器人团队都能用最低成本获得“排练亿万遍”的能力。这也是为什么我们说,可微分物理仿真不仅是引擎,更是一条连接虚拟与现实的流水线。

ut=πθ(st),st+1=Genesis(st,ut)\displaystyle \mathbf{u}_t = \pi_\theta(\mathbf{s}_t), \qquad \mathbf{s}_{t+1} = \text{Genesis}(\mathbf{s}_t, \mathbf{u}_t)
策略网络与可微分仿真器交替执行:策略拿状态出动作,仿真拿动作出新状态,构成训练闭环。
  1. 控制信号 \(\mathbf{u}_t\)机器人电机输出的力矩、关节角度指令等。
    ut\mathbf{u}_t
  2. 策略网络 \(\pi_\theta\)把当前状态映射到动作的“肌肉记忆库”。
    πθ\pi_\theta
  3. 仿真器推进 \(\text{Genesis}(\cdot)\)可微分仿真器根据状态和动作算出下一帧状态。
    Genesis(st,ut)\text{Genesis}(\mathbf{s}_t, \mathbf{u}_t)
  4. 训练闭环策略与仿真器交替执行,梯度沿这个回路反向传播,不断优化策略参数。
    st,ut,st+1,⋯\mathbf{s}_t, \mathbf{u}_t, \mathbf{s}_{t+1}, \cdots

AI 应用场景

机械臂抓取策略的梯度优化

阶段:策略训练与参数优化

解决的问题:传统强化学习需要数百万次采样才能学会抓取,因为机械臂的接触力、摩擦和滑动都难以用解析梯度描述。Genesis 将接触力和动力学过程变成可微算子,让“末端到杯柄的距离”这类损失直接反向传播,几轮梯度下降就能找到合理的抓取姿态。

具体案例:一个七自由度机械臂需要抓取不规则的马克杯。工程师在 Genesis 中建立刚体杯子和机械臂模型,把末端与杯柄的距离作为损失,用梯度优化抓取角度与夹爪施加的力度,再迁移到真机,训练时间从几天缩短到几小时。

柔体操控的轨迹规划

阶段:数据生成与仿真验证

解决的问题:布料折叠、线缆插拔等任务依赖柔体形变,传统引擎难以给出形变梯度。Genesis 的柔体可微分仿真让“折叠后的褶皱方向”“线缆的弯曲应力”变成可导量,使轨迹规划可以通过梯度下降直接优化。

具体案例:某流水线项目要让机器人折叠一件薄外套并放入库箱。工程师在 Genesis 中生成一万种布料褶皱场景,用世界模型合成不同材质的任务变体,再用可微梯度优化折叠轨迹,最后在真机上微调。

自动驾驶极端场景合成

阶段:模型训练与安全评估

解决的问题:现实世界很难遇到“湿滑路面 + 突然窜出的行人”这种组合,数据极度稀缺。Genesis 能大规模生成多物理场耦合场景,同时提供可微的车辆动力学梯度,让规划网络在合成数据上高效预训练。

具体案例:一家自动驾驶公司用 Genesis 批量生成雨雪天气下车辆侧滑、行人避让等场景,训练轨迹预测模型,再在封闭测试场用真车验证,显著提升了模型对罕见场景的应对能力。

Python 演示

python38 行
import torch def simulate(vx, vy, g, dt, steps):    x = 0.0    y = 1.0    for _ in range(steps):        x = x + vx * dt        vy = vy - g * dt        y = y + vy * dt        if y.item() <= 0.0:            break    return x, y def main():    target_x = 2.0    dt = 0.01    steps = 150    lr = 0.03    vx = torch.tensor(0.8, requires_grad=True)    vy = torch.tensor(2.2, requires_grad=True)     for epoch in range(200):        x_final, y_final = simulate(vx, vy, 9.8, dt, steps)        loss = (x_final - target_x) ** 2 + y_final ** 2        loss.backward()        with torch.no_grad():            vx -= lr * vx.grad            vy -= lr * vy.grad            vx.grad.zero_()            vy.grad.zero_()        if epoch % 50 == 0:            print(f"epoch {epoch:3d}: loss={loss.item():.3f} "                  f"vx={vx.item():.3f} vy={vy.item():.3f}")     print(f"final x={x_final.item():.3f}, target={target_x}") if __name__ == "__main__":    main()
目的:用 PyTorch 实现一个极简可微分物理仿真——小球抛射命中目标,通过损失反向传播优化初始速度。
  1. x_final, y_final = simulate(vx, vy, 9.8, dt, steps)跑一遍可微的物理仿真,整个落点路径都留在计算图里。
  2. loss = (x_final - target_x) ** 2 + y_final ** 2用小球落点和目标的距离构建损失,衡量“演砸了”多少。
  3. loss.backward()梯度从最终落点沿着仿真链反向传播,这就是可微分仿真最核心的一步。
  4. vx -= lr * vx.grad按梯度下降更新初始速度,如同演员照着镜子修正动作。
  5. if y.item() <= 0.0: break小球触地即停止本轮仿真,模拟现实中的碰撞终止条件。

常见误区

误区初学者以为“可微分”意味着物理规律全被神经网络替代,仿真过程就是跑一个大模型,物理方程都不重要了。

正解可微分仿真仍然是物理求解器——碰撞、摩擦、流体依旧由物理方程驱动;只是每个算子都支持自动微分,梯度能够跨过这些算子回传,从而优化物理参数或策略参数。它像“会讲解解题步骤的家教”,而不是“把题目直接替换成另一道题”。

为何常见:深度学习时代“可微分”常与“神经网络”绑定,容易先入为主地混为一谈。

误区Genesis 声称高保真,那在仿真里练好的策略应该装上真机就能用,不需要任何适应。

正解仿真与现实始终存在 dynamics gap——传感器噪声、摩擦力误差、执行器延迟依然存在。即使 Genesis 精度很高,仍需要 sim-to-real 技术(域随机化、在线微调、系统辨识)来弥合差距。这如同在排练厅练得再熟,上台也要适应真实灯光和观众噪音。

为何常见:平台的宣传强调逼真,容易让新手低估仿真与现实的鸿沟。

误区既然仿真可微分,直接对损失做梯度下降就好了,强化学习这种“笨办法”应该被淘汰。

正解接触多且不连续的场景下,物理梯度可能不光滑,甚至不存在,梯度下降容易陷入局部极小;RL 的随机探索天然更适合这类病态地形。最佳实践是两者结合:可微分梯度提供方向,RL 提供探索。如同演员既要靠镜子提示,也要大胆即兴发挥。

为何常见:把“可微分”想象成“处处可导、梯度完美”,忽略了碰撞和接触带来的非光滑性。

误区只把它看作加速版的 MuJoCo,认为“算得更快、渲染更流畅”就是全部价值。

正解速度只是表象,核心是“可微分 + 世界模型数据生成”的范式:用物理仿真生成数据,用世界模型合成剧本,用梯度做高效优化。它是一个数据工厂,而不只是一个更快的时钟。

为何常见:产品宣传里“比现有引擎快几个数量级”最抢眼,导致人们忽略了架构层面的差异。

面试题

Q1. Genesis 最核心的差异化能力是什么?

单选题 · easy

  • A.更逼真的画面渲染效果
  • B.可微分物理仿真引擎← 正确答案
  • C.更快的 CPU 串行计算
  • D.替代真实机器人硬件

答案:B。Genesis 最大的差异是“可微分”:物理过程支持梯度回传,这是它区别于传统物理引擎的关键。画面渲染、CPU 速度和替代硬件都不是它的定位。可微分能力让策略和参数可以通过梯度优化,而非纯试错。

Q2. “可微分仿真”中的“可微分”主要指什么?

单选题 · easy

  • A.对画面像素求梯度
  • B.对随机噪声求梯度
  • C.对物理状态传递过程求梯度← 正确答案
  • D.对所有超参做随机搜索

答案:C。可微分仿真针对的是“物理状态如何随时间传递”这一过程。位置、速度、接触力这些状态之间的关系可以被求导,从而让损失梯度穿过仿真步。画面像素、随机噪声和超参随机搜索都不是它的核心语义。

Q3. 由 \(s_{k+1}=s_k+v_k\Delta t\) 推导损失 \(L\) 对 \(s_k\) 的梯度,主要依据什么数学工具?

单选题 · mid

  • A.随机梯度下降求解
  • B.链式法则反向回传← 正确答案
  • C.贝叶斯后验概率推断
  • D.蒙特卡洛采样估计

答案:B。梯度从损失出发,沿仿真时间步逐层回传,相邻两层之间用链式法则相乘。这正是可微分仿真回传梯度的数学基础。随机梯度下降是优化器,贝叶斯和蒙特卡洛与这个推导无关。

Q4. 刚体、柔体、流体三者之间的本质区别是什么?

单选题 · mid

  • A.颜色渲染方案不同
  • B.物理推进算子不同← 正确答案
  • C.模型参数量不同
  • D.是否使用 GPU 加速

答案:B。刚体假定形状不变、柔体允许形变、流体描述物质的流动,各自的物理方程和推进算子不同。Genesis 把三者抽象为不同物理域 \(\Omega\) 下的可微算子。渲染、参数量和 GPU 使用都不是本质差异。

Q5. 根据 Amdahl 定律,当处理器数量 \(n\) 趋近无穷大时,极限加速比取决于什么?

单选题 · mid

  • A.可并行部分比例 \(p\)← 正确答案
  • B.单核 CPU 的主频
  • C.内存带宽的大小
  • D.仿真时间步的长度

答案:A。加速比公式 \(S=1/((1-p)+p/n)\) 中,当 \(n\to\infty\) 时,\(p/n\to 0\),极限加速比趋于 \(1/(1-p)\),完全由串行部分比例决定。这就是为什么并行优化必须同时压缩串行瓶颈。

Q6. REINFORCE 策略梯度更新策略参数时,最核心的输入是什么?

单选题 · hard

  • A.轨迹回报与对数概率梯度← 正确答案
  • B.环境的解析二阶导数
  • C.真实的关节力矩数据
  • D.逐像素的渲染对比图

答案:A。REINFORCE 通过对策略的对数概率求梯度,并用整条轨迹的回报加权来更新参数。它不依赖环境可微、不需要二阶导数,也不需要像素级对比。可微分仿真并不是 REINFORCE 的必要条件,但可以与之结合提升效率。

Q7. Genesis 中世界模型生成数据的主要目的?

单选题 · hard

  • A.替代物理仿真引擎
  • B.减少 GPU 数量
  • C.提高画面渲染精度
  • D.合成多样任务场景← 正确答案

答案:D。世界模型的目的是在物理仿真数据的基础上,快速合成多样化的新场景和新任务,让策略获得充分预训练。它并不替代物理仿真,也不负责减少 GPU 或提升渲染精度。

Q8. Genesis 支持的物理场包括以下哪些?

多选题 · easy

  • A.刚体动力学← 正确答案
  • B.柔体形变← 正确答案
  • C.流体运动← 正确答案
  • D.电磁场仿真

答案:ABC。Genesis 覆盖刚体、柔体与流体三大物理场,并支持多场耦合。电磁场仿真不在其核心物理场范畴内。

Q9. 可微分物理仿真相比传统仿真的优势包括?

多选题 · mid

  • A.提供物理梯度信号← 正确答案
  • B.替代真实世界数据
  • C.支持高效参数优化← 正确答案
  • D.可与强化学习互补← 正确答案

答案:ACD。可微分仿真提供梯度,使参数优化更高效,也能与 RL 互补。但仿真不能完全替代真实数据,sim-to-real 差距依然存在,所以“替代真实世界数据”是错误说法。

Q10. 关于 Genesis 与强化学习(RL)的关系,下列说法正确的有?

多选题 · extreme

  • A.可微梯度可替代部分探索← 正确答案
  • B.可与 RL 结合提升数据效率← 正确答案
  • C.RL 不再需要物理仿真
  • D.接触不光滑处梯度不可靠← 正确答案

答案:ABD。可微分梯度在连续光滑区域能高效优化,能替代部分随机探索,与 RL 结合可显著提升数据效率。但碰撞、接触带来的不连续点会让梯度不可靠,RL 的探索恰好可以覆盖这些盲区。说“RL 不再需要物理仿真”过于绝对,仿真仍是 RL 的重要数据来源。