IT 论文精读 · PAPER 5

An Image is Worth 16×16 Words(ViT)

Dosovitskiy 等 · Google Research · ICLR 2021

EN →

这篇论文干了什么?

2020 年,Google 的一队研究员提出 ViT(Vision Transformer,视觉 Transformer),干了一件当时听起来有点鲁莽的事:把专门处理文字的 Transformer(ChatGPT 用的那种大脑)原封不动拿来看图——不用任何专门为图像设计的零件。结果是:只要先让它看过足够多的图,它就能超过统治视觉领域八年的老霸主 CNN。今天你让 AI「看图说话」,它用的那双眼睛多半就是 ViT。

打个比方

以前看图的 CNN,像拿着放大镜读一幅画:先贴得很近看清一小块的笔触,再退后一步把小块拼成局部,再退后一步拼出整体——「先看邻居、由近及远」是写死在它骨子里的规矩。ViT 不拿放大镜:它把整幅画剪成一百多张小方块,全部摊在桌面上,像读一句一百多个词的话那样一口气读完。任何两块之间都能直接对上眼神:左上那块毛茸茸的、右下那块像尾巴的,第一眼就能凑到一起商量——「咱俩合起来,是不是一只猫?」

新在哪

旧世界里,文字有文字的模型、图像有图像的模型,各带各的祖传手艺,互不相通。ViT 说:图也可以当「话」读——把小方块当单词,看图和读文章就能用同一种大脑。这句话的分量在几年后才完全显出来:既然是同一种大脑,图和文字就能真正「想到一块儿」——后来能看图的 ChatGPT、听一句话就画图的 AI,都踩在这一步上。

怎么做到的

就两步。第一步,把图变成「词」:整张图切成一个个小方块,每块压成一串数字,就像把一个单词做成一张词卡;再给每张卡标上「你原来坐在第几行第几列」的座位号——不标的话,模型看到的就只是一袋打乱的拼图块。第二步,让这串词卡过 Transformer:每一层里,每块都和其余所有块互相打量、交换看法——毛茸茸的块从「尖耳朵」那块得到印证,一层层下来,散块的线索慢慢拼成一个判断:这是一只猫。

「白纸」为什么反而赢了

CNN 天生带一本「看图说明书」:先看邻居、别管远处。图少的时候,说明书是拐杖——CNN 学得又快又稳,ViT 这张白纸反而磕磕绊绊,成绩更差。可图一多(上亿张),说明书就成了枷锁:有些线索本来就要跨越整幅图才看得见,而白纸没有条条框框,看的图够多、全都自己悟了出来,于是反超。也诚实说一句代价:这份反超得先喂上亿张图、烧大把算力,当年普通实验室根本训不起——省数据的训法是后来的人补上的。

一句话记住

把图剪成小方块、当一句话喂给 Transformer;见的图足够多时,不带任何看图的祖传规矩反而更强。从此看图和读字共用同一种大脑,多模态 AI 的大门被这篇论文推开。

想看切块喂入的结构图、「先验换数据」的交叉实验和真实数字? → 切到精读版