把一台会下指令的大模型机器人,想象成一位刚进后厨的新人。他不懂颠勺,不懂火候,只背过几本菜谱。要让他成为独当一面的大厨,你得同时解决四件事:第一,让他看得懂食材、听得懂客人要求,并且能把想法变成手上的动作——这是“手眼配合”的回路;第二,让他真正把功夫练出来——要么在一次次试菜、被顾客点评中越练越好,要么照着师父的示范一招一式地学;第三,让他换一家餐厅、换一套灶具也不会翻车;第四,建立考核与日常管理制度,确保他长期稳定出品。这四件事,恰好对应机器人控制策略要解决的四个核心问题:怎么设计从感知到动作的神经网络、怎么用试错或示范训练它、怎么让它在复杂环境中保持稳定、以及怎么评估、部署和长期维护。理解了这套“新主厨养成记”,你就理解了具身智能里最关键的一环。

岗位关联

对 AI 从业者来说,机器人控制策略是把大模型能力落地到物理世界的核心工程环节。掌握策略网络、强化学习、模仿学习与鲁棒性设计,等于拿到了进入机器人、自动驾驶等高价值赛道的入场券。

目录
  1. 可视化演示
  2. 策略网络设计:从“看懂”到“动手”的大脑回路
  3. 强化学习训练:用顾客的反馈打磨火候
  4. 模仿学习方法:跟着师父学手艺
  5. 策略鲁棒性:换个厨房也不翻车
  6. 评估与部署:从练功房走向真灶台
  7. 工程实践要点:后厨的日常管理
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

动态演示大模型机器人控制策略的核心机制,通过基础/核心/应用/扩展四种模式展示关键概念与交互流程。

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

大模型机器人控制策略:策略网络 策略网络设计原理 强化学习训练方法 核心机制可视化 大模型机器人控制策略整体架构与关键组件

策略网络设计:从“看懂”到“动手”的大脑回路

一位新主厨在灶台前最重要的不是力气,而是“手眼配合”是否顺畅:眼睛看到油温的变化,手能精准地翻动锅铲。这种从感知到动作的映射回路,决定了菜品的好坏。机器人的策略网络,就是它的“手眼配合回路”:一端接收传感器传来的世界信息——摄像头画面、关节角度,甚至人类的语言指令;另一端输出电机要执行的动作。回路越匹配,动作越利落。

在传统机器人时代,工程师靠手写“如果-那么”规则控制机器人,就像拿着厚厚的菜谱一步步照做,场景一换就失灵。策略网络则用神经网络学习一条从观测到动作的映射:给它当前的状态 \(s\)(世界快照)和语言指令 \(l\),它直接输出动作 \(a\) 的概率分布。在具身智能领域,把视觉、语言、动作连成一体的模型,就是我们常说的 VLA(Vision-Language-Action)模型。

策略网络内部通常分三块:感知编码器把图像和语言压成紧凑特征;融合模块把多模态特征拧成一股“语义向量”;动作解码器再把语义换算成关节速度、末端位姿等动作参数。同时,这套前向计算必须在几十毫秒内完成(实时推理),否则就会出现“眼到了、手还没到”的延迟。数学上,策略写成条件概率:

回头看那位主厨:状态是锅里的一切,指令是客人“少油少盐”的要求,策略网络就是他脑中“看到什么就怎么翻锅”的肌肉记忆。网络训练得越好,肌肉记忆越精准,从“看”到“动”的时延也越短。

πθ(a∣s,l)=softmax(fθ(s,l))\pi_{\theta}(a \mid s, l) = \mathrm{softmax}\left(f_{\theta}(s, l)\right)
这个公式在说:给定“看到什么”和“要求做什么”,网络给每个候选动作打个分,分高的动作更容易被选中。
  1. 状态 \(s\)机器人当前“看到”的世界快照,比如摄像头图像、机械臂关节角度。没有它,策略就像蒙着眼做菜。
    ss
  2. 语言指令 \(l\)来自人类的自然语言,比如“把红色方块放到托盘里”。它告诉机器人当前任务的目标。
    ll
  3. 打分函数 \(f_{\theta}(s, l)\)一个带参数 \(\theta\) 的神经网络,同时吃进状态和指令,给每个候选动作输出一个“契合分”。
    fθ(s,l)f_{\theta}(s, l)
  4. softmax 归一化把一组原始分数转换成总和为 1 的概率分布,分数越高,该动作被选中的概率越大。
    softmax(z)i=ezi∑jezj\mathrm{softmax}(z)_i = \frac{e^{z_i}}{\sum_j e^{z_j}}

强化学习训练:用顾客的反馈打磨火候

师父不会手把手教徒弟每一道菜,而是让他自己下厨、上菜。客人吃完后的评价就是最直接的信号:好评就记住这招,差评就调整手法。这种“靠后果反馈倒推怎么改动作”的思路,正是机器人领域的强化学习。

在强化学习中,机器人(智能体)在一个模拟或真实的环境里不断交互:观察状态、执行动作、收到奖励 \(r\)。训练目标很朴素——找到一组网络参数,让长期累计奖励最大。策略梯度法(Policy Gradient)是常用的一族算法:它不直接算“预测 vs 标签”的损失,而是沿着“让好动作更可能、坏动作更不可能”的方向调整参数:

强化学习就这么一圈圈地“练手”:采样、估计回报、按梯度更新。现实中真正难的往往不是算法,而是奖励设计——稀疏得像“客人只在你全部做完后点评一句”,密集的又可能诱导机器人钻空子刷分(奖励黑客)。训练时还要盯住稳定性:梯度爆炸、奖励曲线抖动是常态,需要用奖励归一化、学习率调度等手段稳住训练。工程师常说的“奖励设计决定学习上限”,就是这个道理。

∇θJ(θ)≈1N∑i=1N∑t=1T∇θlog⁡πθ(at(i)∣st(i))R(i)\nabla_{\theta} J(\theta) \approx \frac{1}{N} \sum_{i=1}^{N} \sum_{t=1}^{T} \nabla_{\theta} \log \pi_{\theta}\left(a_t^{(i)} \mid s_t^{(i)}\right) R^{(i)}
这个公式在说:把一批“做菜过程”收集起来,凡是客人满意(回报为正)的菜,就加大对应手法的概率;不满意就压低。
  1. 期望总回报 \(J(\theta)\)策略的“总目标”。做菜最终看客人整体满意度,而不是某一步的手势是否标准。
    J(θ)=E[∑trt]J(\theta) = \mathbb{E}\left[\sum_{t} r_t\right]
  2. 轨迹 \(i\)一次从开火到关火的完整过程,包含一连串状态和动作。
    (s1(i),a1(i),…,sT(i),aT(i))\left(s_1^{(i)}, a_1^{(i)}, \ldots, s_T^{(i)}, a_T^{(i)}\right)
  3. 对数概率梯度 \(\nabla_{\theta} \log \pi_{\theta}\)衡量“参数稍微动一下,这个动作的概率会怎么变”,是更新的方向盘。
    ∇θlog⁡πθ(at∣st)\nabla_{\theta} \log \pi_{\theta}(a_t \mid s_t)
  4. 轨迹回报 \(R^{(i)}\)这条轨迹结束后累计得到的奖励。客人好评多,\(R\) 大,梯度就把该轨迹上的动作概率推高。
    R(i)=∑t=1Trt(i)R^{(i)} = \sum_{t=1}^{T} r_t^{(i)}

模仿学习方法:跟着师父学手艺

现实中很多技能,徒弟不是靠独自摸索学会的,而是看师父示范后依样画葫芦:师父怎么颠勺、什么时候放盐,徒弟先学个形似,再慢慢领会神韵。这就是模仿学习的本质——利用专家的示范数据,学出一个策略。

最简单的模仿学习叫行为克隆(Behavior Cloning,BC):把专家的每一条“状态-动作”对当作监督样本,训练策略网络在看到相同状态时预测相近动作。这本质上就是一个标准的监督学习问题:

行为克隆有个著名的软肋——分布偏移:训练时策略看到的都是专家访问过的状态;可一旦部署,策略自己行动,一步小失误就会把自己带进从没见过的状态,然后像雪崩一样越偏越远。为了缓解,研究者提出了逆强化学习(从示范中反推奖励函数)、DAgger(让专家纠正策略自己产生的轨迹)等进阶方法,或者干脆把模仿与强化学习混着用:先用师父的示范打个底子,再靠顾客反馈精修。业界最有效的方案,往往是“先模仿、后强化”。

LBC(θ)=−1N∑i=1Nlog⁡πθ(ai∣si)\mathcal{L}_{\mathrm{BC}}(\theta) = -\frac{1}{N} \sum_{i=1}^{N} \log \pi_{\theta}\left(a_i \mid s_i\right)
这个公式在说:对师父示范的每个“状态-动作”对,让策略给“师父那个动作”打出尽可能高的概率;给不出高分,就挨罚。
  1. 示范条数 \(N\)师父演示过的样本总数,数据越多,模仿的基础越扎实。
    NN
  2. 专家样本 \((s_i, a_i)\)第 \(i\) 条示范里,专家在状态 \(s_i\) 下执行的动作 \(a_i\),是模仿的“标准答案”。
    (si,ai)\left(s_i, a_i\right)
  3. 对数概率 \(\log \pi_{\theta}(a_i \mid s_i)\)当前策略给出这个标准答案动作的概率取对数,概率越接近 1,该项越接近 0,说明模仿得越像。
    log⁡πθ(ai∣si)\log \pi_{\theta}(a_i \mid s_i)
  4. 负号与平均把所有样本加起来取平均再加负号,变成“越像专家、损失越小”的监督损失。
    −1N∑i=1N⋅-\frac{1}{N} \sum_{i=1}^{N} \cdot

策略鲁棒性:换个厨房也不翻车

徒弟在师父的厨房练得再熟,换到别家餐厅:灶台火力不同、锅具重量不同、食材大小不一,照样可能翻车。真实世界充满了不确定性,策略必须鲁棒——环境发生变化时依然稳得住。

鲁棒性的两个主要对手是分布偏移(训练环境与部署环境不一致)和对抗扰动(极端意外输入)。工程上有两大手段:域随机化——在仿真训练时把光照、摩擦、物体质量等参数随机化,让策略见过千奇百怪的“厨房”;对抗训练——主动给输入加扰动,逼策略在恶劣输入下也稳住阵脚。域随机化的目标可以写成:

除了让策略“见多识广”,还要给行为加上安全约束:比如机械臂速度上限、靠近人体时强制减速。安全约束相当于给主厨立规矩:油温过高不许强行翻勺,防止烫伤客人。鲁棒性从来不是单一技巧,而是“数据多样性 + 对抗训练 + 安全约束”的组合拳——训练时多折腾,部署时才不容易当众翻车。

θ∗=arg⁡max⁡θ  Eξ∼Ξ[J(θ,ξ)]\theta^{*} = \arg\max_{\theta} \; \mathbb{E}_{\xi \sim \Xi}\left[ J(\theta, \xi) \right]
这个公式在说:在“可能遇到的各种厨房条件”里取平均,找一组参数让平均表现最好,而不是只在某一间厨房里拿满分。
  1. 环境扰动 \(\xi\)一次具体的环境变化,比如“灯泡暗了一点、锅沿滑了一点”。
    ξ\xi
  2. 扰动分布 \(\Xi\)仿真里塞进的各种随机参数构成的空间,代表可能遇到的各种厨房条件。
    Ξ\Xi
  3. 扰动下的回报 \(J(\theta, \xi)\)策略 \(\theta\) 在扰动 \(\xi\) 下干活能拿到的期望回报。
    J(θ,ξ)J(\theta, \xi)
  4. 最大化平均表现 \(\arg\max\)找一组参数,使“所有可能厨房”下的平均回报最高。
    arg⁡max⁡θ  Eξ∼Ξ[⋅]\arg\max_{\theta} \; \mathbb{E}_{\xi \sim \Xi}[\cdot]

评估与部署:从练功房走向真灶台

练功房里怎么判断徒弟出师了?不是看他背了多少菜谱,而是看他独立做菜的“成功率”:十道菜有几道端上桌能及格。机器人也一样,评估的核心指标就是任务成功率。仿真里可以无限次重试、成本又低,成功率通常在仿真里先测:

不过仿真与真机之间总有落差:摩擦系数、图像噪声、通信延迟都不一致,这就是著名的“sim-to-real 鸿沟”。练功房里火候再准,真实灶台的脾气也得重新摸。缩小落差的招数包括:系统辨识(把仿真物理参数校准到与真机一致)、域随机化(让策略适应参数波动),以及真机上做少量微调。部署也远不是终点,而是在线适应的起点:日光会变、零件会老化、地面会磨损,策略需要在线收集数据持续微调。业界常见的稳妥做法是“影子部署”——先在旁边默默记录模型预测与真机执行的差异,确认靠谱后再正式接管。从练功房到真灶台,贯穿始终的主线只有一条:用数据说话。成功率不行,就回去补数据、调奖励、改网络,循环往复,直到新主厨稳住厨房。

SR=NsuccNtotal×100%\mathrm{SR} = \frac{N_{\mathrm{succ}}}{N_{\mathrm{total}}} \times 100\%
这个公式在说:让机器人在同样场景里反复做 100 次任务,成功 90 次,成功率就是 90%。这是训练合格的硬门槛。
  1. 总尝试数 \(N_{\mathrm{total}}\)实验总次数,比如让机器人在相同场景下反复做 100 次抓取任务。
    NtotalN_{\mathrm{total}}
  2. 成功数 \(N_{\mathrm{succ}}\)判定为成功的次数。判定标准必须事先定义清楚,比如“物体放到指定位置且未掉落”。
    NsuccN_{\mathrm{succ}}
  3. 成功率 \(\mathrm{SR}\)最终考核指标,类似餐厅的“出品合格率”,达不到门槛就不能上真机。
    SR\mathrm{SR}

工程实践要点:后厨的日常管理

一位大厨能持续稳定出品,靠的不只是手艺,还有后厨管理:菜谱有版本、备料有流程、燃气有巡检。机器人控制策略的工程化也同样琐碎:数据、算力、排查、迭代,一样都不能少。

数据管线是基本功:真机示范数据要采集、清洗、标注、划分训练集;仿真数据要保证分布多样性,避免“只在一种厨房练过”。算力上,训练与推理要分开考虑:训练可以上大规模 GPU 集群,但真机推理受机载算力和延迟约束,往往需要量化、剪枝。训练过程中每一个更新步,本质上都是沿着估计梯度迈出的一小步:

故障排查需要一整套可观测体系:训练时盯奖励曲线、损失曲线;部署后盯成功率、延迟、安全报警。迭代流程讲究“小步快跑”:先用最简单的任务打通闭环,再逐步增加难度,每次改动小、回归快。工程实践的本质,是把“魔法”变成“秩序”——新主厨能日复一日稳定出菜,靠的是后厨的管理制度;机器人策略能平稳运行,靠的是数据、算力、监控、迭代的完整闭环。

θk+1=θk+α g^k\theta_{k+1} = \theta_k + \alpha \, \hat{g}_k
这个公式在说:每轮训练,把当前参数往“估计梯度”方向挪一小步,挪的幅度由学习率控制。
  1. 当前参数 \(\theta_k\)第 \(k\) 轮训练时的策略网络权重,是“当前厨艺水平”的体现。
    θk\theta_k
  2. 学习率 \(\alpha\)每次调整的步子大小。太大会步子迈大扯着蛋,太小则练得慢。
    α\alpha
  3. 估计梯度 \(\hat{g}_k\)当前轮估计出来的更新方向(来自策略梯度或监督梯度)。
    g^k\hat{g}_k
  4. 参数更新沿梯度方向迈一小步,得到新参数,进入下一轮训练。
    θk+1=θk+α g^k\theta_{k+1} = \theta_k + \alpha \, \hat{g}_k

AI 应用场景

工厂零件分拣机械臂

阶段:策略网络设计 + 强化学习训练

解决的问题:传统分拣线靠人工示教编程,每来一种新零件,工程师就要手动拖拽机械臂走一遍路径,SKU 一多维护成本爆炸。用视觉-语言-动作策略后,机械臂看到零件图像、读到“把 M3 螺丝放到 3 号盒”这样的指令,直接端到端输出抓取和放置动作;再靠强化学习在仿真里大规模试错,把成功率练够再迁移上产线。

具体案例:一家 3C 电子厂的插件线部署了 VLA 分拣策略:先在数字孪生仿真中训练上千种零件,再用域随机化迁移真机。上线后换线时间从原来的 2 天缩短到 1 小时,抓取成功率从 72% 提升到 96%。

家庭服务机器人

阶段:模仿学习 + 真机微调

解决的问题:家庭环境千变万化,“帮我把茶几上的水杯拿过来”这类任务,没法像工厂那样对每个场景写死规则;机器人需要从人类示范中学习“看到什么状态、做什么动作”,再在新环境中少量强化微调。

具体案例:某家庭机器人团队先用遥操作采集了数百条“拿水杯”“整理桌面”示范数据,做行为克隆得到基础策略;部署到用户家里后,利用用户使用中产生的数据在线微调,逐步适应不同的茶几高度、光照条件和杯子形状。

变电站巡检机器人

阶段:策略鲁棒性 + 部署监控

解决的问题:室外光照、雨雾、设备位置都可能变化,固定策略容易在“没见过的厨房”里失灵;更要命的是高压环境不允许出错,安全约束是刚需。

具体案例:巡检机器人在仿真中做域随机化训练(随机光照、天气、地面摩擦),同时给策略加上“靠近高压设备自动降速”的安全约束;部署后持续监控成功率与越限事件,并定期用真机数据微调,保持全天候稳定运行。

Python 演示

python83 行
import numpy as np  class TinyPolicy:    def __init__(self, n_in, n_hidden, n_out):        self.W1 = np.random.randn(n_in, n_hidden) * 0.4        self.b1 = np.zeros(n_hidden)        self.W2 = np.random.randn(n_hidden, n_out) * 0.4        self.b2 = np.zeros(n_out)        self.gW1 = np.zeros_like(self.W1)        self.gb1 = np.zeros_like(self.b1)        self.gW2 = np.zeros_like(self.W2)        self.gb2 = np.zeros_like(self.b2)     def forward(self, x):        h = np.tanh(x @ self.W1 + self.b1)        return h @ self.W2 + self.b2, h     def accumulate_grad(self, x, h, grad_mu):        self.gW2 += np.outer(h, grad_mu)        self.gb2 += grad_mu        grad_h = grad_mu @ self.W2.T * (1 - h ** 2)        self.gW1 += np.outer(x, grad_h)        self.gb1 += grad_h     def zero_grad(self):        self.gW1.fill(0)        self.gb1.fill(0)        self.gW2.fill(0)        self.gb2.fill(0)     def update(self, lr):        self.W1 -= lr * self.gW1        self.b1 -= lr * self.gb1        self.W2 -= lr * self.gW2        self.b2 -= lr * self.gb2  def run_episode(policy, goal, steps=30, sigma=0.3):    pos = np.zeros(2)    states, actions, rewards = [], [], []    for _ in range(steps):        x = np.concatenate([pos, goal])        mu, _ = policy.forward(x)        action = mu + sigma * np.random.randn(2)        pos = pos + action        states.append(x)        actions.append(action)        rewards.append(-np.linalg.norm(pos - goal))    return states, actions, rewards  def train(goal=(1.0, 1.0), episodes=80, lr=0.001):    policy = TinyPolicy(4, 16, 2)    for ep in range(episodes):        states, actions, rewards = run_episode(policy, np.array(goal))        returns = np.zeros(len(rewards))        G = 0.0        for t in range(len(rewards) - 1, -1, -1):            G = rewards[t] + 0.98 * G            returns[t] = G        returns = (returns - returns.mean()) / (returns.std() + 1e-8)        policy.zero_grad()        for x, a, G in zip(states, actions, returns):            mu, h = policy.forward(x)            grad_mu = (a - mu) * G / 0.09            policy.accumulate_grad(x, h, grad_mu)        policy.update(lr)        if ep % 20 == 0:            print("episode", ep, "avg reward", round(np.mean(rewards), 3))    return policy  if __name__ == "__main__":    goal = np.array([1.0, 1.0])    policy = train(goal)    states, actions, rewards = run_episode(policy, goal, sigma=0.05)    final = np.zeros(2)    for a in actions:        final = final + a    print("final position", final)    print("goal         ", goal)    print("distance     ", round(float(np.linalg.norm(final - goal)), 3))
目的:用 numpy 从零实现一个极简的 REINFORCE 策略梯度算法,训练一个两层策略网络,让一个 2D 空间里的点学会从原点出发移动到目标点——这正是正文里“强化学习训练”的最小可运行版本。
  1. return h @ self.W2 + self.b2, h前向传播:把输入特征算成动作均值,同时把隐层保留下来供反传使用。
  2. self.gW2 += np.outer(h, grad_mu)用外层积把每个样本的梯度累积到权重矩阵的梯度上。
  3. rewards.append(-np.linalg.norm(pos - goal))奖励定义为“负距离”:离目标越近,奖励越高,对应“客人越满意”。
  4. G = rewards[t] + 0.98 * G从后往前计算折扣回报,让远处的奖励打个折扣。
  5. returns = (returns - returns.mean()) / (returns.std() + 1e-8)奖励归一化,把梯度尺度拉稳,对应正文里的“训练稳定”。
  6. policy.zero_grad()每个回合开始前清空梯度缓冲,防止上回合的梯度残留。
  7. grad_mu = (a - mu) * G / 0.09这就是 REINFORCE 策略梯度:回报为正就把动作推向它,回报为负就推开它。
  8. run_episode(policy, goal, sigma=0.05)训练结束后用低噪声验证策略的真实水平,对应“评估与部署”。

常见误区

误区给机器人多看几段人类操作视频,它的神经网络就能自动领悟动作,不需要额外标注。这是把“人看视频能学会”的直觉硬套到机器上。

正解行为克隆需要的不是“视频”,而是成对的“状态-动作”监督信号,必须明确标出每个时刻该做什么动作。就算有了数据,还有分布偏移问题——策略一旦走偏到没见过的状态就会连锁失误。就像徒弟只见过师父示范的菜,客人点一道陌生菜他就完全不会处理,需要 DAgger 这类交互式纠正或再配合强化学习兜底。

为何常见:大模型时代“多看多学”的印象深入人心,但机器人策略学习缺乏人类那样的世界先验,视频与动作标签之间还隔着标定、对齐、数据清洗等大量工作。

误区强化学习的奖励函数越“慷慨”越好,每一步都给打分,模型训练收敛得越快。

正解密集奖励确实可能加速,但如果信号设计有漏洞,智能体很容易“刷分”:找到一种能拿高分但没真正完成任务的动作,这就是奖励黑客(Reward Hacking)。奖励设计是强化学习里最有挑战性的环节,往往要反复迭代,把稀疏信号和密集塑形结合,并且用验证集成功率监控有没有作弊。就像评菜:如果只按“上菜速度”打分,徒弟就会把菜做成半熟来糊弄。

为何常见:人们容易以为“练得多自然就好”,忽略了强化学习的学习信号完全来自奖励,信号质量直接决定上限。

误区仿真环境可以无限次试错、成本又低,策略在仿真里达到高成功率,部署到真机自然也能稳定工作。

正解仿真与真机之间存在“sim-to-real 鸿沟”:光照、摩擦、延迟、噪声都不一样,仿真里的最优策略到了真机常常失灵。缩小鸿沟主要靠域随机化(训练时把物理参数随机化)、系统辨识(把仿真调得像真机),以及真机上的少量微调。练功房里火候再准,到了真实餐厅的灶台还是得重新适应。

为何常见:仿真数据便宜、可以无限重来,容易让人高估仿真保真度,低估真实世界那些“看不见的细节”。

误区大模型时代,控制策略的网络越大、参数越多,控制效果就一定越好。

正解机器人控制是闭环实时系统,推理延迟是硬约束:网络每大一倍,一次前向计算的时间就变长,几十毫秒的延迟可能让机械臂直接撞上目标。工程上常做量化、剪枝、蒸馏来压缩模型,在容量和实时性之间找平衡。再博学的主厨,如果手速跟不上点菜速度,顾客一样不满意。

为何常见:“越强越大越好”的直觉在离线任务里常常成立,但实时控制里“快而准”比“大而全”更重要,这个物理约束容易被忽略。

面试题

Q1. 策略网络 \(\pi_{\theta}(a \mid s, l)\) 中的 \(s\) 通常表示什么?

单选题 · easy

  • A.智能体要执行的下一个动作
  • B.智能体观测到的当前状态← 正确答案
  • C.神经网络的可学习参数
  • D.环境给予的即时奖励信号

答案:B。策略网络是“从看到动”的映射,\(s\) 是机器人观察到的世界状态,比如摄像头画面和关节角度;\(a\) 才是要执行的动作,\(\theta\) 是网络参数,奖励是强化学习的反馈。就像主厨的“状态”是锅里的一切,“动作”才是他颠勺的手势。

Q2. 行为克隆(Behavior Cloning)属于哪一类学习方法?

单选题 · easy

  • A.基于专家示范的模仿学习← 正确答案
  • B.基于奖励信号的强化学习
  • C.无监督的聚类学习方法
  • D.基于规则的专家系统方法

答案:A。行为克隆用专家示范的“状态-动作”对做监督学习,属于模仿学习。强化学习靠奖励试错,聚类是无监督,专家系统靠手写规则。类比:徒弟照师父示范学动作叫模仿,自己试菜听顾客评价才叫强化。

Q3. 策略梯度法更新参数的依据是什么?

单选题 · mid

  • A.高回报轨迹上的动作概率上升← 正确答案
  • B.所有动作的概率均匀分布
  • C.只学习价值函数不学策略
  • D.直接套用专家的硬编码规则

答案:A。策略梯度让高回报轨迹上的动作概率上升、低回报轨迹上的动作概率下降,从而提升期望总回报。就像客人好评的菜多做、差评的菜少做。均匀分布、只学价值、硬编码规则都不是策略梯度的思路。

Q4. 模仿学习中“分布偏移”主要是指什么?

单选题 · mid

  • A.训练数据太多导致模型过拟合
  • B.专家动作标签标错导致学偏
  • C.训练与部署的状态分布不一致← 正确答案
  • D.奖励信号稀疏导致训练缓慢

答案:C。分布偏移指训练时用的专家状态分布,与部署时策略自己采样产生的状态分布不一致:策略一旦走偏到陌生状态就会越走越偏。就像徒弟只会师父示范过的场景,遇到新场景就翻车,是行为克隆最著名的软肋。

Q5. 域随机化(Domain Randomization)主要解决的问题是?

单选题 · mid

  • A.仿真到真机的迁移鸿沟← 正确答案
  • B.专家数据标注成本高企
  • C.推理延迟过高难以实时
  • D.奖励稀疏导致训练缓慢

答案:A。域随机化在仿真训练中随机化光照、摩擦、质量等物理参数,让策略见过各种“厨房”,从而缩小 sim-to-real 鸿沟。它针对的是“仿真里练得再好,真机也常失灵”的问题,与数据标注、推理延迟、奖励稀疏无关。

Q6. REINFORCE 中某条轨迹的总回报为负,该轨迹上的动作概率会被如何调整?

单选题 · hard

  • A.上升,因为动作出现过更熟悉
  • B.下降,坏轨迹的动作被抑制← 正确答案
  • C.保持不变,回报不影响梯度
  • D.随机变化,取决于学习率大小

答案:B。REINFORCE 的更新方向是“提升总回报为正的动作概率,降低总回报为负的动作概率”。负回报意味着这次“菜做砸了”,对应的手法应该被抑制,而不是被鼓励或保持不变。

Q7. VLA 策略中,语言指令主要通过什么方式影响动作输出?

单选题 · hard

  • A.与视觉特征融合后参与解码← 正确答案
  • B.仅写入日志不参与决策
  • C.作为奖励信号训练策略网络
  • D.单独控制电机绕过策略网络

答案:A。VLA 策略把语言指令和视觉特征一起送进网络融合,再解码出动作;语言既不是日志,也不是奖励,更不会绕过网络。就像客人说“少盐”直接改变主厨的做菜决策,而不是仅仅被记在本子上。

Q8. 以下哪些手段能让策略对复杂环境更鲁棒?

多选题 · easy

  • A.训练时随机化光照摩擦等参数← 正确答案
  • B.对输入施加对抗扰动再训练← 正确答案
  • C.只在固定单一场景反复训练
  • D.引入速度上限等安全约束← 正确答案

答案:ABD。域随机化(多样的厨房)、对抗扰动训练(极端的输入)、安全约束(速度上限)都能提升鲁棒性。只在固定场景反复训练会让策略死记硬背,换个环境就失灵,属于最典型的反面做法。

Q9. 关于强化学习与模仿学习的比较,说法正确的有?

多选题 · mid

  • A.模仿学习依赖专家示范数据← 正确答案
  • B.强化学习依赖试错与奖励← 正确答案
  • C.模仿学习可完全替代强化学习
  • D.两者常结合使用效果更好← 正确答案

答案:ABD。模仿学习吃专家数据,强化学习吃试错奖励,两者各有短板且互补,业界常“先模仿后强化”。模仿学习不能完全替代强化学习,因为专家示范难以覆盖所有可能场景,这正是分布偏移的根源。

Q10. 缩小仿真到真机迁移鸿沟的工程做法有哪些?

多选题 · extreme

  • A.在仿真中随机化物理参数← 正确答案
  • B.部署前进行系统辨识校准← 正确答案
  • C.真机部署后少量在线微调← 正确答案
  • D.彻底放弃仿真只用真机训练

答案:ABC。仿真里随机化物理参数(域随机化)、系统辨识把仿真校准得像真机、真机部署后少量微调,都是缩小 sim-to-real 鸿沟的主流做法。彻底放弃仿真只用真机训练,成本极高且危险,完全不现实。