054、VLA的动作头设计:离散Token化与连续回归的对比实验
054、VLA的动作头设计:离散Token化与连续回归的对比实验昨天半夜在调试一个抓取任务,模型在仿真里跑得好好的,一上真机就开始抖。不是那种轻微的抖动,是那种整个机械臂都在打摆子的抖。我盯着终端里刷出来的动作序列看了半天,发现输出的末端位姿在几个离散值之间疯狂跳变——典型的动作头设计问题。这个坑我踩过不止一次了,今天干脆把VLA动作头的两种主流设计思路掰开揉碎了聊清楚。先说结论:动作头设计直接决定了你的VLA是“能跑通”还是“能落地”。很多同学从论文里抄了个结构,训练出来loss很漂亮,一部署就露馅。问题往往不在主干网络,就在这个不起眼的输出层。离散Token化这条路,最早是从RT-1和RT-2那边传下来的。核心思想很简单:把连续的动作空间(比如七自由度关节角度、六自由度末端位姿)离散成固定数量的bin,然后当作语言模型的token来预测。RT-2更极端,直接把动作编码成文本字符串,跟自然语言一起过Transformer。这么做的好处显而易见——训练稳定,交叉熵损失比回归损失好优化得多,而且天然适配LLM的decoder架构,不用改模型结构。但这里有个隐藏的坑:离散化粒度。我见过有人把关节角度范围[-π, π]均匀切成256个bin,训练出来动作精度惨不忍睹。为什么?因为机械臂在大部分工作空间内,关节角度的分布根本不是均匀的。你均匀切分,等于在概率密度高的区域浪费了分辨率,在概率密度低的区域又不够用。我后来学乖了,用K-means对训练集里的动作数据做聚类,把聚类中心当作离散token的中心值。这样切出来的bin能自适应数据分布,精度提升立竿见影。别嫌麻烦,这个预处理值得做。离散化的另一个坑是动作序列长度。如果你把每个动作