diffusion policy视觉导航
@TOC
From Classical Reinforcement Learning to Decision Transformer
Example of Classical Reinforcement Learning
我们来用一个生动且专业的例子,把传统强化学习(RL)的核心机制讲透,为理解Decision Transformer(DT)铺平道路。
场景:小机器人玩迷宫游戏
想象一个简单的小机器人,它的任务是在一个4x3的网格迷宫中找到宝藏(+1分),同时要避开陷阱(-1分)。每走一步,都会有-0.04分的小惩罚,鼓励它尽快找到目标。
智能体 (Agent): 小机器人。
环境 (Environment): 4x3的迷宫。
状态 (State): 机器人所在的格子位置,比如 (0, 0)。
动作 (Action): 上、下、左、右。
奖励 (Reward): 走到宝藏+1,掉进陷阱-1,每走一步-0.04。
传统RL的目标:为机器人打造一个“最优导航大脑”
机器人的“大脑”就是它的策略(Policy)π,即一个地图,告诉它在每个格子里应该往哪个方向走。我们的目标是找到最优策略 π*,让机器人从任何起点出发,平均得分最高。
传统RL就像一个经验丰富的探险家,通过两种核心方式来绘制这张“最优藏宝图”。
第一种方法:价值迭代 (Value-Based) - Q-Learning
这种方法的核心是:“先别管怎么走,我们先把每个位置每个选择的‘价值’算清楚。” 这里的“价值”就是Q值 (Q-Value)。
Q(s, a) 代表在状态 s(某个格子)下,采取动作 a(某个方向),未来能获得的总期望得分。
Q-Learning 的工作流程:
初始化一张Q表 (Q-Table): 我们创建一个大表格,行是所有状态(12个格子),列是所有动作(4个方向)。一开始,所有Q值都是0。这张表就是机器人的“草稿版导航地图”。
状态上下左右(0,0)
0
0
0
0
(0,1)
0
0
0
0
...
...
...
...
...
探索与学习 (Exploration & Learning): 机器人开始在迷宫里瞎逛(探索)。每走一步,它都像一个会计一样,更新它的Q表。这个更新过程遵循一个著名的公式——贝尔曼方程的TD(时序差分)更新:
新Q值 = (1 - α) * 旧Q值 + α * (当前奖励 + γ * 未来最大Q值)
α(alpha) 是学习率,控制更新步子的大小。γ(gamma) 是折扣因子,代表对未来的耐心程度。
举个例子,机器人从 (0,0) 向右走到了 (0,1):
它在状态
s = (0,0)采取了动作a = 右。它到达了新状态
s' = (0,1)。它获得了即时奖励
r = -0.04。关键一步:向前看! 它会查看Q表中
(0,1)这一行,找到所有动作(上/下/左/右)中最大的Q值。假设这个最大Q值是max Q(s', a') = 0(因为刚开始都是0)。
现在,它开始更新
Q((0,0), 右)这个值:新Q((0,0), 右) = (1-α)*0 + α*(-0.04 + γ*0) = -0.04α这个
-0.04α虽然很小,但它包含了宝贵的信息:“从(0,0)往右走,至少会损失0.04分。”价值传播 (Value Propagation): 随着机器人不断探索,奖励的“价值”会像水波一样从宝藏和陷阱处传播开来。
当机器人走到宝藏旁边,比如在(0,2)向上走到(0,3)的宝藏时。它会获得+1的巨大奖励。
更新
Q((0,2), 上)时,它的 “未来最大Q值” 是从宝藏格子(0,3)看的,假设宝藏格子Q值已经很高了。这会使得Q((0,2), 上)变得非常正。再下一步,当机器人走到(1,2),它向上走到(0,2)时,它会发现
(0,2)这个状态的未来Q值很高(因为离宝藏近),于是Q((1,2), 上)也会变高。
经过成千上万次的探索,Q表会逐渐收敛,准确地反映出每个格子、每个方向的真实长期价值。
最终策略 (Optimal Policy): 学习完成后,Q表就是最优导航地图。在任何格子,机器人只需查看Q表,选择Q值最高的那个方向走即可。这就是贪心策略 (Greedy Policy)。
与DT的对比点1: Q-Learning的核心是估计。它在不断地用“即时奖励 + 对未来的估计”来更新“对现在的估计”。这个过程是自举 (Bootstrapping),在离线数据不充分时极易出错。DT则完全不估计,它把未来的回报直接当成已知条件。
第二种方法:策略梯度 (Policy-Based) - REINFORCE
这种方法的核心是:“别算那么细了,直接学一个概率模型,告诉我该怎么走。”
它不维护Q表,而是直接学习一个策略网络 π(a|s; θ),输入状态 s,输出每个动作 a 的概率。θ 是网络的参数。
REINFORCE 的工作流程:
玩一整局游戏: 机器人根据当前的策略网络(一开始是随机的)从头到尾玩一局游戏。比如,它走了一条路径:
(0,0) → 右 → (0,1) → 右 → (0,2) → 上 → (0,3)宝藏!计算总回报 (Calculate Return): 游戏结束后,它会计算这一整局的总得分
G。G = (-0.04) + (-0.04) + (-0.04) + (+1) = 0.88。 这是一个很高的分数!回顾与反思 (Credit Assignment): 现在,机器人要“论功行赏”。它会回顾这一局走过的每一步,并认为:“既然这局结果这么好(G=0.88),那么这一路上我做的所有决定,都应该是好决定!”
于是,它会调整策略网络的参数
θ,使得:在
(0,0)状态下,选择“右”的概率提高。在
(0,1)状态下,选择“右”的概率提高。在
(0,2)状态下,选择“上”的概率提高。
这个调整的数学形式就是策略梯度:
Δθ = α * G * ∇θ log π(a|s; θ)如果
G是负数(比如掉进陷阱),那么Δθ就会反向更新,降低那些导致坏结果的动作的概率。重复千万次: 通过玩大量的游戏并根据最终结果来调整策略,策略网络会慢慢地学会倾向于那些能通向高回报路径的动作。
与DT的对比点2:Policy Gradient依赖于完整的回合(Episode)轨迹和最终的总回报G来进行学习。它的学习信号是“滞后的”,并且方差很大(运气好的一局和运气差的一局,同样的动作可能会得到截然相反的更新)。DT把 “未来回报和(Return-to-Go)” 这个概念引入了每一步的决策中,使得学习信号更加即时和精确。
演员-评论家 (Actor-Critic):两种方法的结合
这是目前最主流的方法。它结合了Q-Learning和Policy Gradient的优点。
演员 (Actor): 一个策略网络,负责做动作。
评论家 (Critic): 一个价值网络(类似Q-Learning),负责给演员的动作打分,告诉它这个动作是比平均水平好,还是差。
这样,演员就不需要等到一局结束,而是每走一步,评论家就给它一个反馈,使得学习更高效、更稳定。但其本质仍然是估计价值和优化策略的结合。
Preliminaries
现在,我们来系统且专业地梳理一下传统强化学习(RL),为理解Decision Transformer(DT)铺好坚实的垫脚石。我们将聚焦于那些与DT形成鲜明对比的核心概念和机制。
传统强化学习的核心目标与框架
传统RL的目标是为一个智能体(Agent)找到一个最优策略(Policy)π,使其在与环境(Environment)的交互中,最大化累积的折扣奖励(Discounted Cumulative Reward)。
这个过程通常被建模为马尔可夫决策过程(Markov Decision Process, MDP),由一个五元组定义:(S,A,P,R,γ)
S: 状态空间(State Space)
A: 动作空间(Action Space)
P: 状态转移概率 :
P(st+1∣st,at):在状态st执行动作at后,转移到状态st+1的概率R: 奖励函数:
R(st,at):执行动作后环境给出的即时奖励γ: 折扣因子(Discount Factor, 0 < γ < 1),用于平衡短期奖励和长期奖励的重要性。未来的奖励要乘以一个小于1的折扣因子,意味着越远的奖励价值越低。
核心目标函数:最大化期望回报(Expected Return):
两大核心价值函数:RL的“导航系统”
为了找到最优策略,传统RL引入了两个核心的“导航”工具——价值函数,它们用来评估“好坏”。
状态价值函数(State-Value Function) Vπ(s)
定义:在遵循策略
π的前提下,从状态s出发,能够获得的期望累积折扣奖励。公式: Vπ(s)=Eπ[∑k=0∞γkrt+k+1∣st=s]
直观理解:“我现在所处的位置(状态s)有多好?”
动作价值函数(Action-Value Function) Qπ(s,a)
定义:在遵循策略
π的前提下,从状态s出发,执行动作a后,能够获得的期望累积折扣奖励。公式: Qπ(s,a)=Eπ[∑k=0∞γkrt+k+1∣st=s,at=a]
直观理解:“我现在这个位置(状态s),做这个动作(动作a)有多好?”
这两个函数是传统RL的基石。几乎所有主流算法都围绕着如何学习和使用它们。
贝尔曼方程:价值函数的迭代基石
贝尔曼方程(Bellman Equation)是RL中最核心的方程,它将一个状态(或状态-动作对)的价值与其后继状态的价值联系起来,形成了一个递归关系。这为我们通过迭代来学习价值函数提供了理论基础。
Vπ(s)的贝尔曼方程:
Vπ(s)=∑a∈Aπ(a∣s)(R(s,a)+γ∑s′∈SP(s′∣s,a)Vπ(s′))
当前状态的价值 = 所有可能动作的(即时奖励 + 折扣后的下一状态的期望价值)的期望。
Qπ(s,a)的贝尔曼方程:
Qπ(s,a)=R(s,a)+γ∑s′∈SP(s′∣s,a)∑a′∈Aπ(a′∣s′)Qπ(s′,a′)
当前状态-动作对的价值 = 即时奖励 + 折扣后的下一状态-动作对的期望价值。
核心思想:自举(Bootstrapping) 注意,方程的右边也包含了价值函数本身。这意味着我们可以用当前的价值估计来更新之前的价值估计。这种“用一个估计值去更新另一个估计值”的方法,就是自举。这是传统RL(尤其是时序差分学习)的核心,也是其不稳定的根源之一。
传统RL算法的两大流派
所有传统RL算法都可以大致归为以下两类,它们学习和使用价值函数的方式不同。
1. 基于价值的方法(Value-Based Methods)
核心思想:不直接学习策略,而是学习一个最优的动作价值函数Q*(s,a)一旦学到了最优的动作价值函数,最优策略π就自然而然地确定了:在任何状态s,选择使Q(s,a)最大的动作a。
代表算法:Q-Learning 和 Deep Q-Network (DQN)。
学习方式:通过时序差分(Temporal Difference, TD)学习来迭代更新Q值。TD学习是自举思想的具体实现。
TD Target:(这是对未来回报的一个估计)Yt=rt+γmaxa′Q(st+1,a′)
TD Error:(估计值和当前值的差距)δt=Yt−Q(st,at)
更新规则:(朝估计的方向更新)Q(st,at)←Q(st,at)+αδt
关键点:依赖于对Q值的准确估计。在离线场景下,由于数据分布固定,无法探索,对未见过(Out-of-Distribution)的(s, a)对的Q值估计会非常离谱,导致策略崩溃。
2. 基于策略的方法(Policy-Based Methods)
核心思想:不学习价值函数,而是直接参数化策略π(a|s)(通常是一个神经网络),然后通过梯度上升来优化策略参数θ,以最大化期望回报。
代表算法:REINFORCE (也叫Policy Gradient)。
学习方式:通过策略梯度定理来更新策略。
梯度方向:∇θJ(θ)≈E[∇θlogπθ(at∣st)⋅Gt]
直观理解:如果一个动作 at 最终导致了很高的回报 Gt,那么就增大它被选中的概率,即增大:
关键点:REINFORCE需要等到整个回合(episode)结束后才能计算回报 Gt,导致学习效率低且方差大。
3. 演员-评论家方法(Actor-Critic Methods)
这是上述两种方法的结合,也是现代RL的主流。
核心思想:同时学习一个策略(Actor,演员)和一个价值函数(Critic,评论家)。
Actor (策略):负责选择动作。
Critic (价值函数):负责评估Actor选择的动作有多好,并向Actor提供更低方差的学习信号。
学习方式:Actor使用Critic提供的价值信息来更新策略,而不是等待整个回合结束。例如,用TD Error来指导策略更新。
代表算法:A2C, A3C, SAC, TD3。
关键点:仍然严重依赖价值函数的估计,因此在离线场景下也面临和Value-Based方法类似的挑战。
总结:传统RL与Decision Transformer的根本分歧
现在,你可以清晰地看到传统RL和DT的根本区别:
核心范式
优化 (Optimization):寻找一个最优策略来最大化未来回报。
序列建模 (Sequence Modeling):将RL视为一个条件生成问题。
核心工具
价值函数 (V, Q):通过自举和迭代来学习,用于指导决策。
Transformer架构:直接学习序列模式,无需显式价值函数。
处理回报
将即时奖励(r)作为学习信号,来估计未来的期望回报(Q值)。
将未来回报和:R^作为输入条件,来预测动作。
学习目标
最小化TD误差,或最大化策略性能(通过梯度)。
最小化监督学习损失(如MSE或交叉熵),即模仿数据集中的行为。
处理不确定性
通过 探索(Exploration) 来减少对价值估计的不确定性。
不探索。直接学习数据集中所有行为模式(好的和坏的)。
决策方式
基于价值的决策:a = argmax Q(s,a)。
基于条件的生成:a = model(..., R̂, s)。
承接点:
现在,让我们总结一下传统RL的“世界观”,以便看清DT是如何“降维打击”的:
核心是优化:传统RL的所有努力,都是为了通过复杂的数学工具(贝尔曼方程、策略梯度)来优化一个策略,使其在未来获得最大回报。这是一个前瞻性的、探索性的、控制论式的问题。
奖励是驱动力:
reward是唯一的学习信号,所有价值和策略的更新都源于它。价值是核心中间产物:无论是Q值还是V值,都是为了解决优化问题而创造出来的中间变量。学习和估计这些价值是任务的重中之重。
传统RL的整个大厦都建立在通过迭代和自举来估计价值这一地基上。在离线RL中,由于无法与环境交互来纠正错误的估计,这个地基变得非常不稳固,导致整个大厦摇摇欲坠。
Decision Transformer则完全跳出了这个框架:
它不优化,它只模仿。
它不把奖励当驱动力,而是把 “期望的回报”当成一个查询指令 。
它不需要价值这个中间产物,它直接学习 (指令, 状态) → 动作 的端到端映射。
Decision Transformer的聪明之处在于,它直接放弃了这个地基,说:“我们不盖楼了,我们直接学习一本《建筑模式百科全书》”。它把RL问题从一个动态的、需要不断评估和优化的控制问题,转换成了一个静态的、基于已有数据的模式匹配问题。
当你理解了传统RL是如何费尽心机地去估计和优化时,你就能深刻体会到,DT通过把问题转化为给定目标,模仿最优行为的序列建模问题,是多么的简洁和巧妙。
Decision Transformer: Reinforcement Learning via Sequence Modeling (2021)
输入:一个由最近K个时间步组成的轨迹序列,每个时间步包含三个元素:未来回报和(Return-to-Go)、状态(State)和上一步的动作(Action)。其中,未来回报和是模型要达成的“目标”。
输出:在当前状态下,为了实现输入的目标回报,模型应该执行的下一个动作。
解决的任务:离线强化学习(Offline Reinforcement Learning)。它将传统的强化学习问题(通过试错和价值估计来优化策略)重新定义为一个条件序列建模问题。模型不再学习复杂的价值函数,而是像语言模型一样,学习“在给定目标(期望回报)和历史情境下,生成最合适的动作”的模式,从而避免了传统RL算法的不稳定性和复杂性。
这篇文章的核心思想是将强化学习(RL)问题重新定义为一个序列建模(Sequence Modeling)问题,从而摆脱了传统强化学习算法的复杂性,并借用了自然语言处理(NLP)领域中强大的Transformer架构。
Motivation
传统强化学习方法,尤其是在离线(Offline RL)场景下,面临诸多挑战:
不稳定性与复杂性:像Q-learning或Actor-Critic这类基于时序差分(Temporal Difference, TD)学习的方法,依赖于“自举”(Bootstrapping),即用一个估算出的值(如Q值)来更新另一个估算出的值。这在数据分布与策略不匹配的离线环境中,容易导致误差累积和训练不稳定,也就是所谓的“死亡三角”(Deadly Triad)问题。
处理分布外(Out-of-Distribution)数据困难:离线RL使用一个固定的数据集进行训练,无法与环境交互产生新数据。当学习到的策略产生的行为与数据集中的行为差异很大时,价值函数的估计会非常不准确,导致策略越学越差。为了解决这个问题,现有方法通常需要引入复杂的机制,如策略约束(Policy Regularization)或价值悲观主义(Value Pessimism)。
信用分配难题(Credit Assignment):在奖励稀疏或延迟奖励的任务中,传统的基于贝尔曼方程的方法需要将奖励信号一步步地反向传播,这既缓慢又低效,难以将最终的成功或失败归因于早期关键的动作。
作者们提出的新范式旨在绕过这些难题: “我们能不能不学习价值函数,也不计算策略梯度,而是直接学习能够产生特定回报的动作序列?”
这个想法的灵感来源于NLP中的大型语言模型(如GPT)。语言模型可以根据给定的前文(prompt),生成符合语境的后续文本。那么,我们是否可以把“期望的回报”作为一种“prompt”,让模型生成能够达成这个回报的“动作序列”呢?
这就是Decision Transformer的出发点:将RL视为一个条件序列生成问题,而不是一个策略优化问题。
Architecture
Decision Transformer(DT)的架构非常简洁,它本质上是一个自回归的、基于GPT架构的Transformer模型。让我们结合论文中的图来理解其细节。

1. 输入序列表示 (Input Sequence Representation)
这是DT最关键的创新点。传统的RL轨迹是 (s₀, a₀, r₀, s₁, a₁, r₁, ...)。DT对这个序列进行了巧妙的改造,使其适合序列建模。
DT处理的输入序列由 回报-即时(Return-to-Go) 、 状态(State) 和 动作(Action) 三种类型的令牌(Token)交错组成:
其中:
st: 在时间步 t 的状态。
at: 在时间步 t 采取的动作。
R̂(Return-to-Go): 这是从当前时间步 t 开始,直到轨迹结束的所有未来奖励的总和,即
注意 :它不是过去的奖励,而是未来的累积奖励。在训练时,这是从数据集中计算出的“事后诸葛亮”式的信息。
2. 令牌化与嵌入 (Tokenization and Embedding)
模型接收最近 K 个时间步的轨迹片段,总共 3K 个令牌。
模态特定嵌入 (Modality-Specific Embeddings):
Return-to-Go (R̂)、State (s)、Action (a) 这三种不同类型的数据(模态)分别通过各自独立的线性层(或对于图像状态的CNN)映射到模型的嵌入维度。这允许模型以不同的方式处理这三种信息。
位置编码 (Positional Encoding):
DT使用了一个与标准Transformer不同的位置编码。它不是为序列中的每个令牌分配一个唯一的位置编码,而是为每个时间步timestep学习一个嵌入。
也就是说,在同一时间步 t 的 R̂t, st, at 这三个令牌,会被加上相同的时间步嵌入
pos_emb(t)。这帮助模型理解这三个令牌是捆绑在一起的,共同描述了时间步 t 的情况。
3. Causal Transformer
嵌入后的令牌序列被送入一个标准的Causal Transformer(即GPT风格的解码器)。“Causal”(因果)意味着在预测时间步 t 的输出时,模型只能关注(attend to)时间步 t 及之前的所有令牌,不能看到未来的信息。这通过因果自注意力掩码Causal Self-Attention Mask实现。
4. 输出
模型的目标是预测下一个动作。具体来说,当输入序列直到st 时,模型会利用对应于 st 的输出嵌入,通过一个最终的线性层(Linear Decoder)来预测动作 at。
技术细节
1. 训练过程 (Offline Training)
训练过程非常直观,完全是监督学习。
数据:从一个固定的离线数据集中采样轨迹片段。这些数据可以来自专家、次优策略、甚至是随机策略。
目标:给定一个序列 (R̂1, s1, a1, ..., R̂t, st),模型被训练来预测序列中记录的真实动作 at。
损失函数:
对于连续动作(如OpenAI Gym),使用均方误差损失(MSE Loss)。
对于离散动作(如Atari),使用交叉熵损失(Cross-Entropy Loss)。
关键点:训练时,模型学习到了 (回报-即时序列, 状态序列) 与 (动作序列) 之间的关联。它学会了“哦,当期望的回报很高,并且我处于某个状态序列时,通常应该执行这样的动作序列”。
2. 评估/推理过程 (Online Evaluation)
评估过程展示了DT如何作为决策模型工作。这是一个自回归生成的过程。
初始化:
首先,我们需要给模型一个“指令”或“prompt”,即目标回报(Target Return)。例如,我们可以设定一个专家级别的分数作为初始的 R̂1。
从环境中获取初始状态 s1。
自回归生成循环:
第1步: 将初始序列 R̂1, s1 输入模型,预测出第一个动作 a1。
第2步: 在环境中执行动作 a1,得到新的状态 s2 和实际获得的奖励 r1。
第3步: 更新目标回报。新的目标回报-即时为 R̂2 = R̂1 - r1。这个逻辑非常直观:我已经实现了一部分回报,所以对未来的期望回报也相应减少。
第4步: 将新的令牌 (R̂2, s2) 追加到输入序列末尾,形成 (R̂1, s1, a1, R̂2, s2)。
第5步: 将更新后的序列输入模型,预测下一个动作 a2。
重复: 不断重复上述过程,直到结束。模型在每一步都基于历史和动态调整的未来期望回报来生成动作。
总结与贡献
Decision Transformer的主要贡献在于:
范式转换:成功地将强化学习问题形式化为条件序列建模,为RL研究开辟了一个全新的、更简洁的方向。
架构简单有效:直接利用了强大且可扩展的Transformer架构,无需为离线RL设计复杂的特定组件(如价值函数估计器、策略约束等)。
性能卓越:尽管模型和训练方法非常简单,但在多个具有挑战性的离线RL基准测试(如Atari, OpenAI Gym, Key-to-Door)上,其性能与当时最先进的(state-of-the-art)的专用离线RL算法相当,甚至更好。
解决了传统RL的痛点:通过避免TD学习和自举,DT天然地规避了误差累积和不稳定性问题。它通过学习序列的联合分布,而非优化一个不稳定的目标,来完成信用分配。
Gato: A Generalist Agent (2022)
“A Generalist Agent”是DeepMind在2022年发布的一项里程碑式的工作,它展示了构建一个能够处理多种任务、多种数据模态和多种物理形态(embodiments)的通用人工智能体的可能性。下面将详细解释其动机、模型架构和关键技术细节。
输入:一个被序列化和标记化(tokenized)的多模态数据序列。这个序列可以包含历史的图像观测、机器人传感器读数、文本、以及采取过的动作。在推理时,通常会先输入一段任务“提示”(prompt),然后是当前的观测。
输出:一个代表下一个动作或下一段文本的词元序列。模型以自回归的方式逐个生成这些词元。
解决的任务:成为一个通用智能体(Generalist Agent)。Gato旨在用一个单一的、固定权重的神经网络来完成极其广泛和多样的任务,包括玩游戏、图像描述、对话、以及控制真实世界的机械臂。它解决了传统AI模型“一个任务一个模型”的局限性,展示了通往更通用人工智能的一条可能路径。
Motivation
Gato项目的核心动机源于对“通用性”的追求,其背后有多重驱动力:
借鉴语言模型的成功:研究人员观察到,大规模语言模型(如GPT-3)通过在海量文本数据上进行训练,展现出了惊人的通用能力,能够通过少量提示(few-shot prompting)解决各种未曾专门训练过的文本任务。Gato的作者们希望将这种“单一模型、大规模数据、通用能力”的范式从纯文本领域扩展到更广泛的现实世界任务中,包括视觉、决策和物理控制。
追求“一个模型,多种用途”:传统的强化学习或机器人学研究通常是“一个任务,一个模型”。每当任务、环境或机器人形态发生变化时,就需要重新设计和训练一个专门的模型。这种方法效率低下且扩展性差。Gato旨在创建一个单一的、拥有固定权重的神经网络,它能像一个“通用大脑”一样,根据不同的输入情境(context)执行截然不同的任务,例如玩雅达利游戏、为图片生成描述、进行对话、或控制真实机械臂堆叠积木。
统一数据表示:实现通用性的一个关键前提是,模型必须能够处理来自不同来源、不同模态的数据。Gato的动机之一就是探索一种能够将所有类型的数据——无论是图像像素、文本词元、机器人关节力矩还是游戏手柄按键——都转化为一种统一格式(即序列化的词元/token),从而让一个单一的序列模型(Transformer)能够对其进行处理。
验证“规模定律”(Scaling Law)在通用智能体上的有效性:在语言模型领域,增加模型参数量、数据量和计算量通常能带来性能的持续提升。Gato项目的一个重要动机是验证这一定律是否同样适用于包含控制和决策任务的通用智能体。他们假设,通过在一个极度多样化和大规模的数据集上训练一个足够大的模型,可以获得一个“能力全面”的智能体。
Architecture
Gato的架构本质上是一个解码器-自回归Transformer(Decoder-only Autoregressive Transformer),其设计思想是将所有问题都建模为“序列到序列”的预测任务。

核心理念:万物皆为序列 (Everything is a Sequence) Gato的架构基石是将所有输入和输出都序列化。一个任务的完整执行过程,包括观察(observation)、动作(action)和文本,都被转换成一个扁平化的词元(token)序列。 例如,一个控制任务的时间步(timestep)可能被表示为:
[图像块1, 图像块2, ..., 本体感受数据, '分隔符', 机器人动作]。多个时间步连接起来,就构成了一个完整的片段(episode)序列。主要组件
数据标记器 (Tokenizer):这是将多模态数据转换为统一词元序列的关键模块。它根据数据类型采用不同的处理方式(详见技术细节部分)。
嵌入层 (Embedding Layer):将离散的词元ID转换为高维度的向量表示。对于图像块(patches),它使用一个ResNet模块来提取特征;对于其他词元(文本、离散或连续值),它使用一个可学习的查找表(lookup table)。
Transformer解码器 (Transformer Decoder):这是模型的核心,负责处理嵌入后的词元序列。Gato使用了1.2B参数的解码器-自回归模型,包含24个Transformer层。它通过自注意力机制(self-attention)来捕捉序列中词元之间的复杂关系,并基于前面的所有词元来预测下一个词元。
输出层 (Output Layer):在Transformer的最后一层之上,一个线性层将输出向量映射到词汇表大小的logits上,然后通过softmax函数得到下一个词元的概率分布。在推理时,通过从这个分布中采样来生成新的词元。

工作流程(训练)
从包含604个不同任务的大规模数据集中采样数据。
将这些多模态数据(如Atari游戏帧、机器人状态、文本对话等)通过标记器转换为扁平化的词元序列。
将这些序列打包成批次(batches)输入到Gato模型中。
模型以自回归的方式预测序列中的下一个词元。
关键点:损失函数(交叉熵损失)只计算在目标输出上,即文本和动作词元。模型不被要求去预测观察数据(如图像),这大大简化了学习任务。
工作流程(部署/推理)
提示 (Prompting):向模型提供一个任务的“演示”序列(例如,一个成功完成任务的片段),这为模型提供了上下文,使其知道要执行哪个任务。
自回归生成 (Autoregressive Generation):模型接收当前的观察数据(tokenized),并将其附加到历史序列的末尾。然后,模型逐个词元地生成(sample)代表“动作”的序列。
与环境交互:一旦完整的动作序列被生成,它会被解码并发送到相应的环境(如游戏模拟器或机器人控制器)中执行。
循环往复:环境返回新的观察数据,该数据被标记化并再次添加到历史序列中,模型继续生成下一个动作,如此循环。
技术细节
Gato的成功离不开一系列精巧的技术处理,尤其是数据表示和模型训练方面。
数据标记化 (Tokenization)
文本:使用SentencePiece将文本编码为32000个子词(subwords)的词汇表。
图像:将图像分割成16x16像素的不重叠块(patches),类似于Vision Transformer (ViT)的做法。这些块按光栅顺序排列。
连续值(如机器人关节角度、速度):
首先使用μ律(mu-law)编码将其压缩到[-1, 1]的范围。
然后将这个范围均匀离散化为1024个箱子(bins)。
最后将得到的整数ID平移到一个特定的范围(例如[32000, 33024)),以避免与文本词元ID冲突。
离散值(如Atari游戏按键):直接映射到[0, 1024)范围内的整数。
序列化与顺序 (Serialization and Ordering)
时间步内顺序:在一个时间步内,观察数据(observation tokens)首先按字典序排列,然后是分隔符,最后是动作数据(action tokens)。
片段内顺序:时间步按时间顺序排列。
这种严格的顺序为模型提供了结构化的信息,使其能够理解观察与动作之间的因果关系。
嵌入与位置编码 (Embedding and Positional Encodings)
图像块嵌入:每个16x16的图像块都通过一个小型ResNet块来生成一个特征向量,而不是简单的线性投影。
位置编码:Gato使用了两种至关重要的位置编码来提供时空信息:
补丁位置编码 (Patch Position Encodings):对于图像块,除了ResNet嵌入外,还额外添加了两个可学习的位置编码:一个表示该块在原始图像中的行位置,另一个表示列位置。这让模型知道图像块在全局图像中的空间位置。
局部观察位置编码 (Local Observation Position Encodings):在一个时间步内,每个观察词元(无论是图像块还是其他传感器读数)都会被赋予一个本地的位置索引(从0开始)。这个索引用于从一个可学习的嵌入表中查找相应的位置编码,并加到词元嵌入上。这让模型能够区分同一时间步内不同类型的观察数据。
训练细节 (Training Details)
目标函数:模型使用标准的自回归交叉熵损失进行训练。给定一个序列
S,其损失函数为:L(θ,B)=−b=1∑∣B∣l=1∑Lm(b,l)logpθ(sl(b)∣s1:l−1(b))其中
m(b,l)是一个掩码函数,当第l个词元是动作或文本时,m(b,l) = 1,否则为0。这确保了模型只学习预测需要输出的内容。提示条件化 (Prompt Conditioning):为了帮助模型在没有明确任务ID的情况下区分不同的任务(例如,同样是机械臂,任务是“推”还是“抓”?),训练时有25%的序列会附带一个来自同一任务的“提示”片段。这个提示可以是任务成功片段的结尾(作为一种目标条件化),也可以是片段中的随机部分。
数据集 (Datasets)
Gato的训练数据极其庞大和多样化,总共包含来自604个不同任务的数据,总计约1.5万亿(Trillion)个词元。
控制任务:包括DM Lab、Atari、BabyAI、Meta-World、DM Control Suite等模拟环境,以及真实的机器人堆叠任务。数据由专家强化学习智能体生成。
视觉和语言任务:包括大规模文本数据集(MassiveText)、图像-文本对数据集(ALIGN, LTIP, COCO Captions等)和视觉问答数据集(OKVQA, VQAv2)。
总而言之,Gato是一个雄心勃勃的尝试,它通过将所有任务和模态都统一到序列预测的框架下,成功地训练出了一个具有广泛通用能力的单一智能体。其核心贡献在于证明了序列化、大规模多模态数据和Transformer架构相结合,是通往通用人工智能体的一条可行路径。
Diffusion Policy: Visuomotor Policy Learning via Action Diffusion (2023)
输入:
机器人当前的观测
O(通常是来自摄像头的连续图像序列)。
输出:
机器人未来一小段时间的动作序列 (例如,未来1秒内每隔0.1秒的末端执行器目标位姿)。
解决的任务:
机器人模仿学习 (Robot Imitation Learning)。该模型从专家演示数据中学习一个控制策略。其核心创新在于,它将策略建模为在动作空间上的扩散过程,能够有效处理多模态动作(即在同一状态下有多种合理的动作选择),解决了传统方法中模式崩溃或模式平均的问题,使训练更稳定,策略更鲁棒。
核心思想
这篇论文提出了一种全新的机器人模仿学习框架,名为 Diffusion Policy (扩散策略)。其核心思想是,将机器人策略的构建过程,建模为一个在动作空间上的条件化去噪扩散过程 (conditional denoising diffusion process)。
传统的策略通常直接从观测映射到动作 (显式策略),或者学习一个能量函数来评估动作的好坏 (隐式策略)。而 Diffusion Policy 另辟蹊径,它不直接输出动作,而是学习一个能够指导“噪声动作”逐步“去噪”并最终收敛到专家演示动作的梯度场。在推理时,策略从一个完全随机的噪声动作开始,通过多次迭代优化,沿着学习到的梯度方向,逐步将其精炼成一个高质量、符合任务要求的动作序列。

通过这种方式,Diffusion Policy 能够有效继承扩散模型的强大生成能力,从而在处理机器人学习中的经典难题,如 动作多模态、高维动作空间 和 训练不稳定性 等方面,展现出卓越的性能。
研究动机
机器人模仿学习 (Imitation Learning) 旨在让机器人通过观察专家演示来学习技能。尽管想法简单,但在实践中面临诸多挑战,现有方法存在明显瓶颈,这也是本文的主要动机:
无法有效处理多模态分布 (Multimodality):在许多任务中,同一个状态下存在多个同样有效的动作。例如,推动一个T形物块,可以从左侧推,也可以从右侧推。传统的显式策略,如直接回归 (BC) 或高斯混合模型 (GMM),很难精确地表示这种“多选一”的情形,常常导致模式崩溃 (只学会一种方式) 或模式平均 (输出一个无效的中间动作)。
高维动作序列预测困难:为了保证动作的平滑性和时间一致性,预测未来一小段 动作序列 通常比预测单个动作更有效。但这使得输出空间维度急剧增加,给传统方法带来了巨大挑战。例如,隐式策略 (如 IBC) 在高维空间中进行有效的负采样和优化非常困难且不稳定。
训练不稳定:基于能量的模型 (EBMs),如 IBC,虽然理论上能处理多模态,但其训练依赖于 InfoNCE 损失函数。该函数需要进行 负采样 来估计一个难以计算的归一化常数 (配分函数)。不准确或低效的负采样是导致其训练过程非常不稳定、对超参数敏感的主要原因。
Diffusion Policy 正是为了克服以上挑战而设计的。它天然地支持多模odal输出,能够很好地扩展到高维空间,并且通过学习 分数函数 (score function) 的梯度,巧妙地绕过了计算配分函数的难题,从而实现了非常稳定的训练。
模型架构与方法
Diffusion Policy 的核心是学习一个条件化的噪声预测网络 εθ(O, A, k),其中 O 是观测,A 是带噪声的动作,k 是去噪的时间步。该网络的目标是预测在动作 A 中添加的噪声。

1. 扩散策略的基本框架
训练过程:
从专家数据集中随机采样一个真实的动作序列
A0和对应的观测序列O。随机选择一个扩散时间步
k。从高斯分布中采样一个噪声
ε。将噪声添加到真实动作上,生成带噪动作
Ak = A0 + ε。训练噪声预测网络 εθ,使其在给定观测
O和带噪动作Ak的条件下,能够预测出原始添加的噪声ε。损失函数为:L=MSE(ϵ,ϵθ(O,Ak,k))
推理 (动作生成) 过程:
从一个标准高斯分布中采样一个纯噪声作为初始动作序列
AK。进行
K次迭代,从k=K到k=1。在每一步
k,使用训练好的网络 εθ 预测噪声,并根据以下公式更新动作序列,逐步去噪:Ak−1=f(Ak,ϵθ(O,Ak,k))这里的函数
f定义了具体的去噪步骤,通常遵循 DDPM 或 DDIM 的更新规则。最终得到的A0就是策略生成的动作序列。
2. 网络架构选项
论文探索了两种主流的神经网络架构来实现噪声预测器 εθ:
CNN-based Diffusion Policy (基于CNN的扩散策略):
它采用了一个一维时间卷积网络 (Temporal CNN) 来处理动作序列。
视觉观测
O经过一个视觉编码器 (如 ResNet) 提取特征后,通过 FiLM (Feature-wise Linear Modulation) 层注入到CNN的每一层中。FiLM 动态地调整CNN层的激活值,从而实现对动作生成的条件控制。这种架构计算高效,对于大多数任务效果良好,但其卷积的感应偏差可能使其难以学习高频变化的动作。
Transformer-based Diffusion Policy (基于Transformer的扩散策略):
它将动作序列中的每个动作步视为一个 token。
视觉观测特征通过 交叉注意力 (Cross-Attention) 机制融入到 Transformer Decoder 的每一层中。
动作 token 之间使用 因果自注意力 (Causal Self-Attention),确保在预测某个时间步的动作时,只能关注到它自身和它之前的动作,这符合时序逻辑。
这种架构表达能力更强,尤其擅长处理需要高频控制或复杂时间依赖的任务,但训练起来可能对超参数更敏感。
3. 关键技术贡献
为了将扩散模型成功应用于真实的机器人系统,论文提出了一系列关键的技术设计:
闭环动作序列预测与滚动时域控制 (Closed-loop Action-sequence Prediction & Receding Horizon Control):
策略一次性预测未来
Tp步的动作序列,但只执行其中的前Ta步 (Ta < Tp)。然后,机器人获取新的观测,并基于新观测重新规划下一段动作序列。
这种 滚动时域控制 (Receding Horizon Control) 的方式,既通过序列预测保证了动作的 时间连贯性,又通过闭环重规划保证了策略对环境变化的 鲁棒性和响应性。
高效的视觉条件化 (Visual Conditioning):
论文将视觉观测
O作为 条件 输入,而不是将其与动作A一起作为联合分布的一部分来建模。这意味着在整个去噪过程中,视觉特征只需要提取一次,极大地降低了计算开销,使得实时推理成为可能。
时间序列扩散 Transformer (Time-series Diffusion Transformer):
这是上文提到的基于 Transformer 的架构,专门为处理机器人动作序列设计,有效克服了CNN模型的过平滑问题。
技术细节与关键发现
处理多模态动作分布:
扩散策略的随机性来源有二:1) 初始采样完全随机的噪声
AK;2) 每步去噪过程中可以添加少量随机噪声 (Langevin Dynamics)。这使得推理过程能够探索动作分布的不同模式。例如,对于推物块任务,初始噪声的不同可能导致最终收敛到“从左推”或“从右推”这两条完全不同的有效轨迹上,而不会产生无效的中间动作。
与位置控制的协同作用 (Synergy with Position Control):
论文发现,Diffusion Policy 在使用 位置控制 (预测末端执行器的目标位姿) 时表现远超 速度控制。
这与许多先前工作倾向于使用速度控制的结论相反。作者推测,这是因为位置控制下的动作多模态性更强(例如,在同一位置等待是重复的相同位置指令),而 Diffusion Policy 恰好擅长处理此问题。同时,位置控制受复合误差影响较小,更适合动作序列预测。
训练稳定性:
这是相较于 IBC 等隐式策略的核心优势。IBC 训练需要最小化 InfoNCE 损失:
LInfoNCE=loge−E(o,apos)+∑e−E(o,aneg)e−E(o,apos)分母中的求和项需要对大量 负样本 aneg 进行评估,这既耗时又不稳定。
Diffusion Policy 学习的是对数概率的梯度,即 分数函数 ∇a log p(a|o)。这个梯度与归一化常数无关:
∇alogp(a∣o)=−∇aE(o,a)因此,它完全避免了对负样本的依赖和对归一化常数的估计,训练过程因此变得异常稳定。
推理加速:
完整的扩散过程可能需要上百甚至上千步,对于机器人实时控制来说太慢。
论文采用了 DDIM (Denoising Diffusion Implicit Models) 的采样方法,它允许在推理时使用远少于训练的步数(例如,训练100步,推理仅需10-16步),在保证生成质量的同时,将推理延迟降低到 0.1 秒左右,满足了实时控制要求。
实验评估
论文在4个不同的机器人操作基准平台、共计15个任务上进行了系统性评估,涵盖了模拟和真实世界、从简到难的各种场景。
模拟实验:在 Robomimic、Push-T 等基准上,无论是基于状态还是基于图像的策略,Diffusion Policy 的性能都 全面超越 了现有的SOTA方法 (如 LSTM-GMM, BET, IBC),平均成功率提升了 46.9%。
真实世界实验:论文在多个真实的机器人任务上展示了其强大的泛化能力和鲁棒性,包括:
Push-T:在复杂的、需要分阶段的真实推物块任务中,成功率高达95%,远超基线。
Mug Flipping (翻杯子):处理复杂的6自由度旋转,成功率90%。
Sauce Pouring/Spreading (倒酱/抹酱):与非刚性物体 (酱料) 交互,并执行周期性动作。
Bimanual Tasks (双手任务):如打蛋、铺垫子、叠衣服等,证明了该框架可以轻松扩展到更复杂的多臂协调场景。
实验结果有力地证明,Diffusion Policy 不仅在理论上具有优越性,在实践中也同样强大和可靠。
结论
Diffusion Policy 成功地将扩散模型的强大生成能力引入到机器人策略学习中,为模仿学习领域提供了一个全新的、性能卓越的范式。它通过将策略建模为条件化去噪过程,优雅地解决了长期困扰机器人学习的 多模态、高维动作和训练稳定性 问题。论文通过全面的实验,不仅验证了模型框架的有效性,还提供了一系列关键的技术洞见(如滚动时域控制、位置控制的优势等),为在真实机器人上部署强大的学习策略铺平了道路。这项工作标志着利用生成模型进行机器人行为学习的一个重要里程碑。
ViNT: A Foundation Model for Visual Navigation (2023)
输入:
主要输入:一个代表导航目标的图像,以及机器人当前和过去几个时刻的视觉观测图像。
适应新任务时:目标可以被替换为其他模态,如GPS坐标或高级指令("左转")。
输出:
一个预测的未来动作序列(以相对航点形式表示)。
一个预测的动态距离(到达目标所需的预估时间步数)。
解决的任务:构建一个通用的视觉导航基础模型。VINT旨在解决机器人领域的“碎片化”问题,即模型难以在不同的机器人、环境和任务间泛化。通过在异构数据上预训练,VINT可以零样本泛化到新的机器人和环境中,并能通过轻量级微调快速适应全新的导航任务(如GPS导航),而无需从头训练。
Motivation
这项研究的动机源于当前机器学习领域的趋势和机器人领域的特定挑战。
借鉴基础模型(Foundation Models)的成功:在自然语言处理(NLP)和计算机视觉(CV)领域,像GPT和CLIP这样的大规模预训练模型(即“基础模型”)取得了巨大成功。它们在海量、多样化的数据上进行预训练,学习到通用的、强大的表示能力。然后,这些模型可以通过零样本(zero-shot)迁移、提示(prompt-tuning)或少量数据微调,高效地适应各种下游任务,显著降低了为每个特定任务从零开始训练模型所需的数据量。
解决机器人领域的碎片化问题:与NLP和CV不同,机器人领域面临着“碎片化”的巨大挑战。具体体含:
环境多样性:室内、室外、公路、越野等环境的外观和物理特性千差万别。
平台多样性:轮式机器人、足式机器人、无人机、汽车等,它们的动力学、传感器配置(相机焦距、视野、安装位置)和动作空间各不相同。
任务多样性:从简单的到达目标点,到复杂的遵循GPS路径、执行语言指令等。
核心研究问题:由于这种碎片化,很难将在一个特定机器人/环境下收集的数据直接用于训练另一个差异巨大的机器人。这导致了机器人模型通常是“专才”而非“通才”。因此,作者提出了一个核心问题:一个用于移动机器人的基础模型需要具备哪些要素?
VINT的目标:VINT (Visual Navigation Transformer) 就是作者对这个问题的回答。他们旨在创建一个通用的视觉导航基础模型,该模型:
在一个包含多种机器人平台、环境和行为的大规模、异构数据集上进行预训练。
能够零样本泛化到新的机器人和环境中,直接完成导航任务。
能够通过高效的微调或类似“提示”的机制,快速适应新的任务形式(如GPS导航、高级指令导航),而无需从头训练。
总而言之,VINT的动机是将在其他领域被验证成功的基础模型范式引入到机器人视觉导航中,以克服机器人领域的碎片化挑战,创建一个可复用、可扩展、泛化能力强的通用导航策略。
Architecture
VINT的核心是一个基于Transformer的架构,专为视觉导航任务设计。其设计目标是高效、灵活,并能处理跨机器人平台的异构数据。模型的整体流程如Figure 2所示。

输入:
当前和历史观测 (Current and Past Observations):机器人当前时刻和过去
P个时刻(论文中P=5)的视觉观测图像 Ot-P:t。这些图像为模型提供了时序上下文信息。目标观测 (Goal Observation):一张代表导航终点的图像
os。
预处理和令牌化 (Tokenization):
观测编码器 (Observation Encoder):使用一个EfficientNet-B0 (
ψ) 卷积神经网络,将每一帧历史和当前观测图像独立编码成一个512维的特征向量,称为“观测令牌”(observation token)。目标融合编码器 (Goal Fusion Encoder):作者发现,如果将目标图像和当前观测图像分开独立编码(即“后期融合”),模型性能不佳。这是因为导航任务的关键在于理解当前状态与目标的相对关系,而不仅仅是目标本身。因此,他们设计了一种“目标融合”(Goal Fusion)机制:
将当前观测图像
Ot和目标图像os沿通道维度拼接(stacking),形成一个6通道的图像张量。将这个拼接后的张量输入一个独立的、专门的EfficientNet-B0 (
φ),生成一个512维的“目标令牌”(goal token)。这个令牌同时包含了当前状态和目标的信息,能够更好地捕捉它们的差异。
Transformer骨干网络 (Transformer Backbone):
序列构建:将
P+1个观测令牌和1个目标令牌组合成一个长度为P+2的令牌序列。位置编码:为序列中的每个令牌添加位置编码,以保留其时序信息。
注意力处理:将带有位置编码的令牌序列输入一个解码器式(decoder-only)的Transformer。该Transformer包含4个注意力层,每层有4个头(multi-head attention)。它能够对序列中所有令牌进行全局注意力计算,捕捉观测、历史和目标之间的复杂依赖关系。
输出头 (Output Heads):
Transformer的输出被送入一个MLP(多层感知机)中,用于预测两个任务:
未来动作序列 (Future Actions):预测未来
H个时间步(论文中H=5)的动作â。为了实现“跨机器人平台”的通用性,动作空间被设计为 与具体机器人解耦(embodiment-agnostic) 的相对航点(relative waypoints),并根据机器人的最大速度进行归一化。在部署时,一个特定于机器人的底层控制器负责跟踪这些航点。动态距离 (Dynamical Distance):预测一个标量
d,表示从当前状态到达目标状态所需的时间步数。这比简单的欧氏距离更能反映机器人的实际可达性。
技术细节
训练
训练目标:VINT采用监督学习(模仿学习)的方式进行训练。其损失函数是一个最大似然目标,旨在让模型的预测尽可能接近数据集中的真实标签。
LVINT=Eτ,t,d[logp(a^∣f(ψ(o)t:t−P,ϕ(ot,os)))+λlogp(d∣f(ψ(o)t:t−P,ϕ(ot,os)))]该公式表示,模型需要同时最大化预测出正确动作序列
â的概率和预测出正确动态距离d的概率。λ是一个平衡两项损失的超参数。数据采样:训练时,从数据集中随机采样一段轨迹,在轨迹中随机选择一个时间点
t作为当前状态,并选择t之后的某个未来时间点的图像作为目标图像os。异构数据集:VINT的成功很大程度上归功于其训练数据的多样性。数据集包含超过100小时的真实世界导航数据,来自8种不同的机器人平台(如TurtleBot、Jackal、Spot四足机器人、ATV全地形车等),覆盖了办公室、走廊、郊区、越野小径等多种环境。
长距离导航与探索 (Long-Horizon Navigation & Exploration)
VINT本身只能处理短期的图像目标导航。为了实现长距离导航和在未知环境中探索,作者将其与一个基于拓扑图的物理A*搜索算法相结合。

拓扑图 (Topological Graph):机器人在移动过程中动态构建一个环境的拓扑图
M。图中的节点是关键位置的观测图像,边则表示节点间的可达路径,边的权重由VINT预测的动态距离决定。子目标生成 (Subgoal Generation):这是此框架的一个关键创新。为了决定下一步探索方向,系统需要生成一系列候选的子目标。作者使用了一个条件扩散模型 (Conditional Diffusion Model),该模型以当前观测
ot为条件,生成一系列看起来像未来可能场景的图像os。这些生成的子目标图像既多样又通常是物理可达的,远优于随机采样。执行循环 (Execution Loop):
生成:使用扩散模型,根据当前观测
ot生成多个候选子目标图像。接地:使用VINT模型处理每个候选子目标,预测到达它们的动作和距离。
评分:使用一个启发式函数
h对这些候选子目标进行评分。这个启发式函数可以很简单(如到最终目标GPS点的欧氏距离),也可以很复杂(如一个基于卫星地图预测的 learned heuristic)。选择:A*规划器结合拓扑图中的已知路径成本和启发式评分,选择最优的子目标。
执行:使用VINT策略导航到被选中的子目标。
更新:将新到达的位置加入拓扑图,并重复此过程。
适应下游任务 (Adaptation to Downstream Tasks)
VINT的架构设计使其能非常灵活地适应新的任务,特别是那些不由图像定义目标的新模态。
全模型微调 (Full Model Fine-tuning):对于与预训练任务相似但在新环境中的任务(如在CARLA模拟器中驾驶),可以直接用少量新数据对整个VINT模型进行微调,能快速提升性能。
模态适应(Soft-Prompting):对于目标形式完全不同的任务(如GPS坐标导航、"左转/右转"指令导航),作者采用了一种类似“软提示”的方法:
冻结主体:冻结预训练好的VINT模型的大部分参数,特别是Transformer骨干网络。
替换目标编码器:移除原始的“目标融合编码器”
φ。引入新提示网络:引入一个全新的、轻量级的神经网络
ϕ(例如一个小型MLP)。学习新映射:这个
ϕ网络的输入是新的目标模态(如2D坐标、指令的one-hot编码),输出是一个512维的向量。这个向量的维度与原始的目标令牌完全相同。注入Transformer:将
ϕ输出的“伪目标令牌”直接输入到被冻结的Transformer中,就像它原来处理图像目标令牌一样。高效训练:在下游任务的数据上,只训练这个轻量级的提示网络
ϕ,从而用极少的数据和计算成本让VINT适应全新的任务。
涌现行为 (Emergent Behaviors)
在大规模异构数据上训练后,VINT表现出了一些未被显式编程的、有益的“涌现行为”。
隐式避障:即使给VINT一个无效或无法到达的目标(例如,墙后面的图像),它并不会盲目撞墙,而是倾向于执行安全的、无碰撞的探索行为。这表明模型学到了通用的“安全导航”先验。
隐式偏好:模型在导航时会自发地倾向于在道路中央或走廊中央行驶,即使训练数据中包含许多次优的、摇摆的轨迹。这表明模型从多样的数据中“提炼”出了更优的导航策略。
动态鲁棒性:尽管只在离线数据上训练,VINT在真实部署时能够有效规避动态行人等障碍物,并成功到达目标点。
GNM: A General Navigation Model to Drive Any Robot (2023)
输入:
机器人当前的观测图像 (
Ot)。一个指定导航终点的目标图像 (
OG)。体现上下文 (Embodiment Context): 机器人过去几帧的连续观测图像,用于让模型隐式推断当前机器人的物理特性(如摄像头高度、速度等)。
输出:
一系列归一化的未来航点 (waypoints),这是一个抽象的、与机器人无关的动作表示。
一个预测的到达目标所需的时间距离。
解决的任务:
通用的、零样本的机器人视觉导航。通过在一个包含多种机器人、多种环境的异构数据集上进行训练,GNM旨在学习一个“全能策略”,能够直接部署到全新的、未曾见过的机器人上,无需任何微调即可完成导航任务,打破了机器人领域“一个模型对应一个机器人”的碎片化困局。
Motivation
在机器人学领域,尤其是在视觉导航方面,存在一个长期存在的挑战,研究人员称之为 “碎片化” (fragmentation)。具体来说,这个问题体现在以下几个方面:
数据隔离: 绝大多数导航策略(policy)都是为特定的机器人平台、特定的传感器配置和特定的环境而设计的。研究人员通常会为自己的机器人收集一个专属的数据集,并在此基础上训练模型。这导致了大量小型、孤立的数据集,彼此之间难以兼容和复用。
缺乏通用性: 由于模型是在高度特定的数据上训练的,其泛化能力非常有限。当机器人平台更换(例如,从一个轮式机器人换到一个四足机器人)、传感器参数改变(例如,摄像头安装高度或视角不同)或者进入一个全新的环境时,原有的导航策略往往会失效,需要重新收集数据和训练。
阻碍领域发展: 这种“碎片化”的现状阻碍了机器人领域像自然语言处理(NLP)和计算机视觉(CV)那样取得飞速发展。在那些领域,研究人员可以利用像 ImageNet、维基百科这样的大规模、多样化的“一次性收集,多次使用”的数据集来训练强大的基础模型(Foundation Models),例如 ResNet、BERT、GPT 等。这些预训练模型可以作为各种下游任务的通用起点,极大地加速了技术迭代。机器人领域由于缺乏这样的通用数据集和基础模型,进展相对缓慢。
因此,这篇论文的核心动机是 打破这种“碎片化”的困局。作者们希望探索一个问题:我们是否可以像 NLP 和 CV 领域一样,通过 聚合来自多个不同机器人、不同环境的异构数据集,训练一个单一的、通用的导航模型(作者称之为 “omnipolicy”,即全能策略)?
这个全能策略的最终目标是:
能够有效地从多样化的数据中学习到通用的导航知识(例如,如何识别可通行的路径、如何避开障碍物、如何朝向目标前进)。
不仅能在其见过的机器人上表现出色,还能以 零样本 (zero-shot) 的方式直接部署到 全新的、未曾见过的机器人 上,并在各种复杂的环境中成功导航,而无需任何额外的数据收集或微调。
Architecture
为了实现上述目标,作者设计了一个名为 GNM (General Navigation Model) 的模型。其核心架构基于一个目标条件策略(goal-conditioned policy),但为了适应异构数据和多机器人部署,引入了两个关键的设计。
模型的整体架构可以参考论文中的图 2,主要由以下几个部分组成:

输入:
当前观测 (Current Observation, Ot): 机器人当前视角拍摄的 RGB 图像。
目标图像 (Goal Image, OG): 在目标位置拍摄的一张 RGB 图像,用于指定导航终点。
体现上下文 (Embodiment Context, Ct): 这是 GNM 的一个关键创新。它由机器人过去
k帧的连续观测图像堆叠而成。这个上下文的作用是让模型能够 隐式地推断 出当前所控制的机器人的一些物理属性和动态特性,例如摄像头的安装高度、机器人的转弯半径、移动速度等,而无需手动指定这些参数。
编码器 (Encoders):
模型采用了一种 条件式架构 (conditional architecture)。它使用两个独立的 MobileNetv2 编码器。
一个编码器负责处理“当前状态”,即融合了 当前观测 (Ot) 和 体现上下文 (Ct) 的信息。
另一个编码器负责处理 目标图像 (OG)。
这种分离处理允许模型学习到更具泛化性的表征。
融合与预测 (Fusion and Prediction):
两个编码器输出的特征向量(embeddings)会被拼接(concatenate)在一起。
拼接后的特征向量被送入几层全连接网络(MLP)中。
最后,网络会输出两个预测头(prediction heads)的结果。
输出 (Outputs):
归一化的未来航点 (Normalized Future Waypoints): 模型预测出一系列(例如,未来5个)归一化的航点 {p'i, ψ'i},其中
p'是位置,ψ'是偏航角。这是一个 共享的、抽象的动作空间,是实现跨机器人泛化的核心。到目标的时间距离 (Temporal Distance): 预测一个标量
d,表示从当前位置到达目标位置所需的时间。这个值可以被上层规划器用作路径成本的估计。
技术细节
为了让 GNM 能够成功地从异构数据中学习并泛化到新机器人上,作者采用了一系列关键的技术细节。
异构导航数据集 (Heterogeneous Navigation Dataset)
GNM 的成功离不开一个大规模、多样化的数据集。作者聚合了来自 6 种完全不同的机器人 的导航数据,总时长超过 60 小时。
这些机器人形态各异,包括:TurtleBot2(差分驱动轮式机器人)、Clearpath Jackal/Spot(四足/轮式机器人)、RC Car(遥控赛车)、ATV(全地形车)等。
它们的动态特性差异巨大,最高速度从 0.5m/s 到 10m/s 不等。
数据采集环境也极其多样,涵盖了办公室、走廊、市郊、野外小径、大学校园等室内外场景。
这种数据的 异构性 (heterogeneity) 是训练出通用模型的关键,它迫使模型学习机器人和环境背后共通的导航原理,而不是去过拟合某个特定平台的特性。
共享的抽象动作空间 (A Shared Abstraction Across Robots)
直接让模型输出底层控制指令(如轮速、转向角)是极其困难的,因为不同机器人的指令空间和动态范围天差地别。
GNM 的解决方案是预测一个 归一化的中层动作表示,即未来航点。
归一化: 模型预测的航点
p'是被一个机器人专属的缩放因子α(通常是该机器人的最大速度)归一化后的结果。这样,无论对于慢速的 TurtleBot 还是高速的 ATV,模型学习的目标范围都是一致的,降低了学习难度。解耦: 在部署时,一个简单的、机器人专属的底层控制器(如 PID 或 MPPI)负责将这些归一化的航点 “反归一化”,并将其转换为机器人可以执行的底层电机指令。这成功地将 高层的视觉导航决策 与 底层的平台专属控制 解耦开来。
体现上下文 (Embodiment Context)
当 GNM 部署到一个新机器人上时,它需要一种方式来“感知”自己正在控制一个什么样的机器人。
“体现上下文” (
Ct) 正是为此设计的。通过观察过去几帧的图像序列,模型可以推断出很多信息。例如:如果图像在转弯时变化剧烈,说明机器人转弯半径小。
如果地面纹理移动得很快,说明机器人速度快。
如果物体的透视变化明显,可以推断出摄像头的高度。
实验证明,使用连续的 时间上下文 (temporal context) 比使用一组固定的 静态上下文 (static context) 效果更好,因为它包含了动态信息。
训练与部署 (Training and Deployment)
训练: 模型采用监督学习的方式进行训练。训练数据对通过在同一条轨迹中采样“正样本”(可达的目标)和在不同轨迹中采样“负样本”(不可达的目标)来构建。动作头只在正样本上训练,而距离头在所有样本上训练,使用 L2 回归损失。
部署: 在实际应用中,GNM 策略通常与一个 拓扑地图 系统(如 ViNG)结合使用。系统会构建一个由过往观测图像为节点的图。GNM 预测的时间距离
d用来估计图中节点间的边权重(通行成本)。当给定一个目标图像时,系统使用 Dijkstra 等图搜索算法在拓扑地图上规划一系列子目标,然后 GNM 策略负责驱动机器人依次导航到这些子目标。
实验与结果 (Experiments and Results)
零样本泛化: GNM 在 4 种不同的机器人 上进行了测试,其中包括 2 个全新的机器人(一个基于 Roomba 的 Vizbot 和一个大疆 Tello 无人机),并且 没有进行任何微调。结果显示,单一的 GNM 模型在所有平台上都取得了优异的性能,显著超过了仅在单一数据集上训练的策略。尤其值得注意的是,尽管 GNM 从未见过任何来自空中机器人的数据,它依然能成功控制无人机进行水平面导航。
数据多样性的价值: 实验表明,随着训练数据集中机器人类型的增加(从 2 种增加到 4 种,再到 6 种),GNM 在未见过的机器人和环境中的导航成功率也随之稳步提升。这有力地证明了 数据异构性对于提升泛化能力至关重要。
鲁棒性: GNM 对机器人的物理和传感器退化表现出很强的鲁棒性。在模拟轮胎损坏(影响动力学)、摄像头位置被扰动、转向能力被限制等场景下,GNM 能够通过调整路径来补偿这些退化,而单一领域的模型则很容易失败。
总而言之,GNM 通过聚合异构数据集,并巧妙地设计了 共享的抽象动作空间 和 体现上下文 这两个关键模块,成功训练出了一个具有强大零样本泛化能力的通用视觉导航模型。这项工作为机器人领域构建可复用的、大规模数据集和通用的预训练导航模型提供了一个切实可行的方向和范例。
NoMaD: Goal Masking Diffusion Policies for Navigation and Exploration (2023)
输入:
机器人当前的观测 (连续图像序列)。
一个可选的目标图像。
一个目标掩码 (Goal Mask),用于控制模型是否使用目标图像。
输出:
机器人未来一小段时间的动作序列。
解决的任务:
统一的机器人导航与探索。NoMaD通过“目标掩码”技术,将两种核心的机器人行为集成到一个单一模型中:
当提供目标图像时,它执行目标导向导航。
当不提供目标图像(或掩码生效)时,它执行自主探索。
它结合了Diffusion Policy的多模态能力,创建了一个既高效又能在多种任务模式间无缝切换的强大导航框架。
核心思想
这篇论文的核心贡献在于提出了一个名为 NoMaD 的 单一、统一的 机器人导航模型。该模型首次将 目标掩码 (Goal Masking) 技术与 扩散策略 (Diffusion Policy) 相结合,使其能够在一个模型内同时处理两种截然不同的任务:
目标导向导航 (Goal-Conditioned Navigation): 当给定一个目标图片时,机器人能够高效地规划路径并到达该目的地。
无向探索 (Undirected Exploration): 当没有明确目标时,机器人能够在未知环境中自主、安全地进行探索,发现新区域。
通过这种统一的框架,NoMaD 不仅在性能上超越了以往那些需要多个独立模型(例如,一个用于生成子目标,另一个用于导航)的复杂系统,而且模型更小、计算效率更高,可以直接部署在算力有限的机器人上。
研究动机
在现实世界的机器人应用中,尤其是在陌生环境下,机器人导航面临一个根本性的挑战:它既需要 探索未知 的能力,又需要 到达已知目标 的能力。
传统方法的局限性:
分离式系统 (Separate Systems): 过去的方法通常采用分离式设计。例如,使用一个生成模型(如 VAE 或 Diffusion Model)来提出可能的探索子目标(subgoal),然后再由一个独立的目标导向导航策略去执行。这种方法流程复杂,需要训练和协调多个模型,并且生成高维数据(如图片)作为子目标非常耗时且计算量大。
表达能力不足: 传统的确定性策略(例如,直接回归动作)难以对复杂的、多模态的动作分布进行建模。比如,在一个十字路口,向左、向右、向前直行都可能是合理的探索行为,一个好的策略应该能同时表示这些可能性。确定性策略往往只能输出这些可能动作的平均值,导致机器人行为犹豫不决或在路口卡住。
泛化性问题: 在仿真中训练的探索策略往往难以迁移到真实世界,而基于传统几何方法(如Frontier-based exploration)的探索又依赖于高质量的地图构建,在视觉信息不可靠时效果不佳。
NoMaD 的出发点: 作者认为,一个设计精良、表达能力足够强的单一模型,应该能够同时学习到这两种行为模式。目标导向和无向探索在底层行为(如避障、沿走廊行进)上有很多共性。通过在一个统一的模型中联合训练这两种任务,模型可以学习到更鲁棒、更泛化的导航先验知识。
模型架构与技术细节
NoMaD 的模型架构如论文图 2 所示,它主要由视觉编码器、目标掩码模块和扩散策略解码器三部分组成。

1. 视觉编码器 (Visual Encoder Backbone):
模型采用了 ViNT (Visual Navigation Transformer) 作为其主干网络。ViNT 本身就是一个强大的视觉导航模型。
它使用 EfficientNet 分别对机器人当前的连续观测图像序列 (过去5帧) 和可选的目标图像进行编码,将每张图片转换成一个特征向量(token)。
这样,输入就被转换成了一组 token:多个代表历史观测的 token,和一个代表目标的 token。
2. 核心机制 1:目标掩码 (Goal Masking): 这是 NoMaD 实现任务切换的关键。
原理: 它通过一个简单的二进制掩码
m来控制 Transformer 的注意力机制是否“看到”目标 token。具体实现:
当需要进行 目标导向导航 时,设置掩码
m = 0。此时,Transformer 的自注意力层可以正常处理包括目标 token 在内的所有输入 token。模型会综合历史观测和目标信息,生成一个导向目标的上下文向量 ct。当需要进行 无向探索 时,设置掩码
m = 1。这个掩码会阻止注意力机制访问目标 token。因此,模型生成的上下文向量 ct 只依赖于历史观测,与任何特定目标无关,从而驱动机器人进行探索行为。
训练: 在训练过程中,以 50% 的概率随机选择使用或不使用目标掩码 (即 pm = 0.5)。这使得模型被强制学习在两种模式下都能做出合理的决策,从而实现了两种能力的联合训练。
3. 核心机制 2:扩散策略 (Diffusion Policy): 这是 NoMaD 能够生成复杂、多模态动作分布的关键。
为什么用扩散模型: 传统的回归模型输出一个确定的动作序列,无法表示多模态性。而扩散模型通过一个迭代的去噪过程,可以从一个简单的噪声分布中恢复出复杂的数据分布。在这里,它被用来建模给定上下文 ct 后,未来动作序列 at 的条件概率分布 p(at|ct)。
去噪过程: 模型的核心是一个噪声预测网络 εθ。该网络输入带有噪声的动作序列 atk、当前的去噪步数
k以及之前从 Transformer 获得的上下文向量 ct,然后预测出施加在该动作序列上的噪声。去噪过程遵循以下迭代公式:
atk−1=α⋅(atk−γϵθ(ct,atk,k)+N(0,σ2I))其中 atk 是第
k步的带噪动作,εθ 是噪声预测网络,ct 是条件信息。通过K步(论文中为10步)迭代,就可以从一个纯高斯噪声 atK 中采样得到一个干净、合理的未来动作序列 at0。优势: 这个过程允许模型在探索模式下(例如在路口),从动作分布中采样出多个不同的、但都合理的轨迹(如左转或右转),从而实现了真正的多模态行为预测。
4. 训练损失 (Training Loss): 模型是端到端训练的,其损失函数包含两部分:
LNoMaD=MSE(ϵk,ϵθ(ct,at0+ϵk,k))+λ⋅MSE(d(ot,og),fd(ct))第一项 (扩散损失): 这是标准的扩散模型损失,即预测的噪声 εθ 与真实添加的噪声 εk 之间的均方误差(MSE)。
第二项 (距离预测损失): 类似于 ViNT,模型还预测当前观测与目标图像之间的时间距离(即需要多少步才能到达),并与真实距离计算均方误差。这个辅助任务有助于模型更好地理解目标和当前状态的关系。
λ是一个超参数,用于平衡两个损失。
实验与结果
论文通过在6个真实世界的室内外环境中进行的大量实验,验证了 NoMaD 的性能。
主要发现:
探索性能显著提升 (Table I): 在无向探索任务中,NoMaD 的成功率达到了 98%,远超之前的 SOTA 模型 Subgoal Diffusion (77%)。同时,它的碰撞率极低 (0.2),而 Subgoal Diffusion 的碰撞率是 1.7。这表明 NoMaD 的探索行为既高效又安全。
模型轻量高效: NoMaD 的模型参数量 (19M) 远小于 Subgoal Diffusion (335M),相差超过 15倍。这使得 NoMaD 能够轻松地在机器人板载计算机(如 NVIDIA Jetson Orin)上实时运行,而后者需要强大的云端或桌面级 GPU 支持。
统一模型性能不妥协 (Table II): 实验证明,统一训练的 NoMaD 模型,在执行探索任务时,其性能与专门为探索训练的扩散策略模型相当;在执行导航任务时,其性能也与专门为导航训练的 ViNT 模型相当。这证明了联合训练不仅没有损害各自任务的性能,反而可能因为共享表征而带来了好处。
多模态行为的可视化 (Figure 5): 论文可视化了不同模型在路口的动作预测。结果显示,只有 NoMaD 能够清晰地预测出两个分离的、有效的路径(左转和右转)。而其他模型,如 Autoregressive 模型,虽然理论上可以表示多模态,但实际上预测的仍然是单一的、模糊的平均动作。这直观地证明了扩散策略在建模复杂动作分布上的优越性。
总结与未来展望
NoMaD 是一个里程碑式的工作,它成功地将目标掩码和扩散策略结合,创建了一个既能探索又能导航的单一统一模型。它不仅在性能和安全性上超越了现有方法,还极大地降低了模型的复杂度和计算需求,为机器人在真实、未知环境中的自主导航提供了更实用、更强大的解决方案。
作者也指出了未来的改进方向:
更多样的目标模态: 目前目标仅限于图像,未来可以扩展到支持语言指令、GPS坐标等更多样的目标形式。
更智能的探索策略: 目前的高层探索策略仍然是基于传统的“前沿点探索”(frontier-based),未来可以结合语义信息或先验知识,进行更智能、更有目的性的探索。
最后更新于