图像Patch切分与展平: x f l a t t e n ( i , j ) = Flatten ( I [ i × P : ( i + 1 ) × P , j × P : ( j + 1 ) × P ] ) x_{flatten}(i,j) = \text{Flatten}(I[i \times P : (i+1) \times P, j \times P : (j+1) \times P]) xflatten(i,j)=Flatten(I[i×P:(i+1)×P,j×P:(j+1)×P]) 其中, I I I为输入图像(维度: H × W × C H \times W \times C H×W×C); P P P为Patch尺寸(如16×16); ( i , j ) (i,j) (i,j)为Patch的空间索引; x f l a t t e n x_{flatten} xflatten为单个Patch展平后的一维向量(维度: P 2 × C P^2 \times C P2×C);所有Patch展平后维度: v i s _ s e q _ l e n × P 2 × C vis\_seq\_len \times P^2 \times C vis_seq_len×P2×C( v i s _ s e q _ l e n = ( H / P ) × ( W / P ) vis\_seq\_len=(H/P) \times (W/P) vis_seq_len=(H/P)×(W/P))。
Patch线性嵌入: x p a t c h = x f l a t t e n ⋅ W p + b p x_{patch} = x_{flatten} \cdot W_p + b_p xpatch=xflatten⋅Wp+bp 其中, W p W_p Wp为线性投影权重(维度: P 2 × C × d m o d e l P^2 \times C \times d_{model} P2×C×dmodel); b p b_p bp为偏置项(维度: d m o d e l d_{model} dmodel); x p a t c h x_{patch} xpatch为Patch嵌入向量(维度: v i s _ s e q _ l e n × d m o d e l vis\_seq\_len \times d_{model} vis_seq_len×dmodel)。
空间位置编码添加: x v i s = x p a t c h + P E s p a t i a l x_{vis} = x_{patch} + PE_{spatial} xvis=xpatch+PEspatial 其中, P E s p a t i a l PE_{spatial} PEspatial为空间位置编码(正弦余弦/可学习,维度: v i s _ s e q _ l e n × d m o d e l vis\_seq\_len \times d_{model} vis_seq_len×dmodel); x v i s x_{vis} xvis为带位置信息的视觉Patch表征(维度: v i s _ s e q _ l e n × d m o d e l vis\_seq\_len \times d_{model} vis_seq_len×dmodel)。
Transformer Encoder编码(单步): x v i s _ a t t n = MultiHeadSelfAttention ( L N ( x v i s ) ) + x v i s x_{vis\_attn} = \text{MultiHeadSelfAttention}(LN(x_{vis})) + x_{vis} xvis_attn=MultiHeadSelfAttention(LN(xvis))+xvis x v i s _ f f n = FFN ( L N ( x v i s _ a t t n ) ) + x v i s _ a t t n x_{vis\_ffn} = \text{FFN}(LN(x_{vis\_attn})) + x_{vis\_attn} xvis_ffn=FFN(LN(xvis_attn))+xvis_attn 其中, L N LN LN为层归一化; MultiHeadSelfAttention \text{MultiHeadSelfAttention} MultiHeadSelfAttention为多头自注意力; FFN \text{FFN} FFN为前馈神经网络; x v i s _ f f n x_{vis\_ffn} xvis_ffn为单层层Transformer编码后的视觉表征,堆叠N层后得到最终视觉表征。
3.1.2 核心参数与作用对照表
参数/操作
维度说明
核心作用
存在意义
P P P(Patch尺寸)
标量(如16、32)
控制图像切分的粒度
小Patch保留更多细节,大Patch捕捉全局信息,平衡效果与计算量
W p W_p Wp(投影权重)
P 2 × C × d m o d e l P^2 \times C \times d_{model} P2×C×dmodel
将Patch展平向量映射至d_model维度
统一视觉表征维度,适配后续跨模态融合
P E s p a t i a l PE_{spatial} PEspatial(空间位置编码)
v i s _ s e q _ l e n × d m o d e l vis\_seq\_len \times d_{model} vis_seq_len×dmodel
保留图像Patch的空间位置信息
弥补Transformer无空间感知的缺陷,让模型感知物体位置关系
x v i s _ f f n x_{vis\_ffn} xvis_ffn(最终视觉表征)
v i s _ s e q _ l e n × d m o d e l vis\_seq\_len \times d_{model} vis_seq_len×dmodel
词嵌入与位置编码: x l a n g = E m b e d d i n g ( t o k e n _ i d s ) + P E t e m p o r a l x_{lang} = Embedding(token\_ids) + PE_{temporal} xlang=Embedding(token_ids)+PEtemporal 其中, t o k e n _ i d s token\_ids token_ids为文本分词后的ID序列(维度: l a n g _ s e q _ l e n lang\_seq\_len lang_seq_len); E m b e d d i n g Embedding Embedding为词嵌入层; P E t e m p o r a l PE_{temporal} PEtemporal为时序位置编码(维度: l a n g _ s e q _ l e n × d m o d e l lang\_seq\_len \times d_{model} lang_seq_len×dmodel); x l a n g x_{lang} xlang为带位置信息的语言表征(维度: l a n g _ s e q _ l e n × d m o d e l lang\_seq\_len \times d_{model} lang_seq_len×dmodel)。
Transformer Encoder编码(单步): x l a n g _ a t t n = MultiHeadSelfAttention ( L N ( x l a n g ) ) + x l a n g x_{lang\_attn} = \text{MultiHeadSelfAttention}(LN(x_{lang})) + x_{lang} xlang_attn=MultiHeadSelfAttention(LN(xlang))+xlang x l a n g _ f f n = FFN ( L N ( x l a n g _ a t t n ) ) + x l a n g _ a t t n x_{lang\_ffn} = \text{FFN}(LN(x_{lang\_attn})) + x_{lang\_attn} xlang_ffn=FFN(LN(xlang_attn))+xlang_attn 其中, x l a n g _ f f n x_{lang\_ffn} xlang_ffn为单层层编码后的语言表征,堆叠N层后得到最终语言表征,携带文本指令的深层语义信息。
3.3 动作特征编码:历史信息捕捉核心
动作特征编码的核心是将历史动作序列转换为高维动作表征,适配离散与连续两种动作类型,公式如下:
3.3.1 核心公式
离散动作嵌入: x a c t _ d i s = E m b e d d i n g ( a c t _ i d s ) + P E a c t x_{act\_dis} = Embedding(act\_ids) + PE_{act} xact_dis=Embedding(act_ids)+PEact 其中, a c t _ i d s act\_ids act_ids为离散动作ID序列(维度: a c t _ s e q _ l e n act\_seq\_len act_seq_len); E m b e d d i n g Embedding Embedding为动作嵌入层(维度: n u m _ a c t _ c l a s s e s × d m o d e l num\_act\_classes \times d_{model} num_act_classes×dmodel); P E a c t PE_{act} PEact为动作时序位置编码(维度: a c t _ s e q _ l e n × d m o d e l act\_seq\_len \times d_{model} act_seq_len×dmodel); x a c t _ d i s x_{act\_dis} xact_dis为离散动作表征(维度: a c t _ s e q _ l e n × d m o d e l act\_seq\_len \times d_{model} act_seq_len×dmodel)。
连续动作嵌入: x a c t _ c o n = σ ( x a c t _ r a w ⋅ W a + b a ) + P E a c t x_{act\_con} = \sigma(x_{act\_raw} \cdot W_a + b_a) + PE_{act} xact_con=σ(xact_raw⋅Wa+ba)+PEact 其中, x a c t _ r a w x_{act\_raw} xact_raw为归一化后的连续动作序列(维度: a c t _ s e q _ l e n × a c t _ d i m act\_seq\_len \times act\_dim act_seq_len×act_dim); W a W_a Wa为投影权重(维度: a c t _ d i m × d m o d e l act\_dim \times d_{model} act_dim×dmodel); b a b_a ba为偏置项(维度: d m o d e l d_{model} dmodel); σ \sigma σ为激活函数(如ReLU); x a c t _ c o n x_{act\_con} xact_con为连续动作表征(维度: a c t _ s e q _ l e n × d m o d e l act\_seq\_len \times d_{model} act_seq_len×dmodel)。
Transformer Decoder编码(单步): x a c t _ a t t n = MaskedMultiHeadSelfAttention ( L N ( x a c t ) ) + x a c t x_{act\_attn} = \text{MaskedMultiHeadSelfAttention}(LN(x_{act})) + x_{act} xact_attn=MaskedMultiHeadSelfAttention(LN(xact))+xact x a c t _ f f n = FFN ( L N ( x a c t _ a t t n ) ) + x a c t _ a t t n x_{act\_ffn} = \text{FFN}(LN(x_{act\_attn})) + x_{act\_attn} xact_ffn=FFN(LN(xact_attn))+xact_attn 其中, x a c t x_{act} xact为离散/连续动作表征; MaskedMultiHeadSelfAttention \text{MaskedMultiHeadSelfAttention} MaskedMultiHeadSelfAttention为带掩码的多头自注意力; x a c t _ f f n x_{act\_ffn} xact_ffn为最终动作表征,携带动作历史的时序逻辑信息。
三模态序列拼接: x m i x = Concat ( x v i s , x l a n g , x a c t ) x_{mix} = \text{Concat}(x_{vis}, x_{lang}, x_{act}) xmix=Concat(xvis,xlang,xact) 其中, x v i s x_{vis} xvis/ x l a n g x_{lang} xlang/ x a c t x_{act} xact分别为视觉/语言/动作表征; x m i x x_{mix} xmix为三模态混合序列(维度: t o t a l _ s e q _ l e n × d m o d e l total\_seq\_len \times d_{model} total_seq_len×dmodel)。
多模态多头注意力计算: Q = K = V = x m i x ⋅ W q = x m i x ⋅ W k = x m i x ⋅ W v Q = K = V = x_{mix} \cdot W_q = x_{mix} \cdot W_k = x_{mix} \cdot W_v Q=K=V=xmix⋅Wq=xmix⋅Wk=xmix⋅Wv Attention ( Q , K , V ) = softmax ( Q ⋅ K T d k ) ⋅ V \text{Attention}(Q,K,V) = \text{softmax}\left(\frac{Q \cdot K^T}{\sqrt{d_k}}\right) \cdot V Attention(Q,K,V)=softmax(dkQ⋅KT)⋅V MultiHead ( x m i x ) = Concat ( H e a d 1 , H e a d 2 , . . . , H e a d h ) ⋅ W o \text{MultiHead}(x_{mix}) = \text{Concat}(Head_1, Head_2, ..., Head_h) \cdot W_o MultiHead(xmix)=Concat(Head1,Head2,...,Headh)⋅Wo 其中, W q / W k / W v W_q/W_k/W_v Wq/Wk/Wv为Query/Key/Value投影权重; d k = d m o d e l / h d_k=d_{model}/h dk=dmodel/h( h h h为注意力头数); H e a d i Head_i Headi为第 i i i个注意力头的输出; W o W_o Wo为融合权重;最终输出融合表征(维度: t o t a l _ s e q _ l e n × d m o d e l total\_seq\_len \times d_{model} total_seq_len×dmodel)。
融合层残差连接与前馈网络: x f u s i o n _ a t t n = MultiHead ( L N ( x m i x ) ) + x m i x x_{fusion\_attn} = \text{MultiHead}(LN(x_{mix})) + x_{mix} xfusion_attn=MultiHead(LN(xmix))+xmix x f u s i o n = FFN ( L N ( x f u s i o n _ a t t n ) ) + x f u s i o n _ a t t n x_{fusion} = \text{FFN}(LN(x_{fusion\_attn})) + x_{fusion\_attn} xfusion=FFN(LN(xfusion_attn))+xfusion_attn 其中, x f u s i o n x_{fusion} xfusion为最终统一跨模态表征,携带三模态的关联信息。
3.5 动作决策(分类/回归):执行指令生成核心
动作决策分为离散动作分类与连续动作回归,核心公式如下:
3.5.1 核心公式
离散动作分类: x g l o b a l = GlobalAvgPool ( x f u s i o n ) x_{global} = \text{GlobalAvgPool}(x_{fusion}) xglobal=GlobalAvgPool(xfusion) l o g i t s a c t = x g l o b a l ⋅ W 1 + b 1 → ReLU → W 2 + b 2 logits_{act} = x_{global} \cdot W_1 + b_1 \rightarrow \text{ReLU} \rightarrow W_2 + b_2 logitsact=xglobal⋅W1+b1→ReLU→W2+b2 p r o b a c t = softmax ( l o g i t s a c t ) prob_{act} = \text{softmax}(logits_{act}) probact=softmax(logitsact) a c t p r e d = arg max ( p r o b a c t ) act_{pred} = \arg\max(prob_{act}) actpred=argmax(probact) 其中, GlobalAvgPool \text{GlobalAvgPool} GlobalAvgPool为全局平均池化; W 1 / W 2 W_1/W_2 W1/W2为分类层权重; l o g i t s a c t logits_{act} logitsact为动作类别得分; p r o b a c t prob_{act} probact为动作概率分布; a c t p r e d act_{pred} actpred为预测离散动作ID。
连续动作回归: x g l o b a l = GlobalAvgPool ( x f u s i o n ) x_{global} = \text{GlobalAvgPool}(x_{fusion}) xglobal=GlobalAvgPool(xfusion) a c t c o n t = x g l o b a l ⋅ W 3 + b 3 → ReLU → W 4 + b 4 act_{cont} = x_{global} \cdot W_3 + b_3 \rightarrow \text{ReLU} \rightarrow W_4 + b_4 actcont=xglobal⋅W3+b3→ReLU→W4+b4 a c t p r e d _ c o n t = Clip ( a c t c o n t , m i n = − 1 , m a x = 1 ) act_{pred\_cont} = \text{Clip}(act_{cont}, min=-1, max=1) actpred_cont=Clip(actcont,min=−1,max=1) 其中, W 3 / W 4 W_3/W_4 W3/W4为回归层权重; a c t c o n t act_{cont} actcont为原始回归结果; Clip \text{Clip} Clip为裁剪操作,将结果映射至[-1,1]区间; a c t p r e d _ c o n t act_{pred\_cont} actpred_cont为最终连续动作数值。
3.6 核心公式参数汇总表
公式参数
核心含义
典型取值
作用
d m o d e l d_{model} dmodel
统一表征维度
512、768、1024
统一三模态表征维度,适配跨模态融合
h h h
注意力头数
8、16
多头并行捕捉不同类型的模态关联,提升融合效果
P P P
图像Patch尺寸
16×16、32×32
控制图像切分粒度,平衡细节保留与计算量
v i s _ s e q _ l e n vis\_seq\_len vis_seq_len
视觉序列长度
196(224×224图像,16×16Patch)
视觉Patch的数量,决定视觉表征的序列长度
n u m _ a c t _ c l a s s e s num\_act\_classes num_act_classes
离散动作类别数
10、20、50
离散动作的总数量,决定分类层输出维度
a c t _ d i m act\_dim act_dim
连续动作维度
3(三维坐标)、6(机械臂关节角度)
连续动作的数值维度,适配执行设备的控制需求
t o t a l _ s e q _ l e n total\_seq\_len total_seq_len
三模态混合序列长度
v i s _ s e q _ l e n + l a n g _ s e q _ l e n + a c t _ s e q _ l e n vis\_seq\_len+lang\_seq\_len+act\_seq\_len vis_seq_len+lang_seq_len+act_seq_len