ViT:Transformer 攻进视觉,CNN 的主场也守不住了
// TL;DR
- ViT 把图像切成 patch 序列,套用纯 Transformer 编码器,几乎不带视觉先验。
- 小数据上打不过 CNN,大数据(JFT-300M)上反超——数据量是开关。
- ‘一个架构通吃多模态’的时代隐隐到来。
一个朴素到大胆的想法
Transformer 在 NLP 横扫一切,但视觉一直是 CNN 的地盘——卷积自带的平移不变性、局部性等先验,被认为是处理图像的必要假设。ViT 偏要试试不带这些先验行不行:把一张图切成 16×16 的小块(patch),每块拉平成一个向量,加上位置编码,当成一串‘单词’喂进标准 Transformer 编码器。就这么简单,几乎没给它任何‘这是图像’的提示。
数据量是那个开关
结果很有启发性:在 ImageNet 这种‘中等’规模数据上训,ViT 打不过同级别的 CNN——因为它缺少 CNN 的归纳偏置,得从数据里自己学这些规律,数据不够就学不全。但当预训练数据加到 JFT-300M(三亿张)这个量级,ViT 反超了最强的 CNN。结论很微妙:先验是数据的替代品,数据足够多时,先验反而成了束缚。
为什么这件事意味深长
把今年的线索连起来:Transformer 统一了 NLP,现在又证明能做视觉,而且越大越强。这意味着一个诱人的前景——用同一种架构处理文本、图像、乃至语音和视频。架构的‘大一统’一旦成立,多模态(让模型同时看懂文字和图)的技术障碍就小了一大半。
我越来越觉得,未来的主线不是‘为每个领域设计专用模型’,而是‘一个足够通用的架构 + 海量数据 + 大规模算力’。ViT 是这个判断的又一块拼图。CNN 不会消失,但‘视觉必须用卷积’这个二十年的默认假设,今天被正式动摇了。