ViT(Vision Transformer):当Transformer“入侵”视觉领域,CNN的统治地位被撼动?

2020年,一篇题为《An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale》的论文在AI圈投下一颗重磅炸弹——Google Brain团队提出的Vision Transformer(ViT),首次将Transformer架构成功迁移到计算机视觉任务,并在ImageNet等经典数据集上达到了超越传统CNN的性能。这篇论文也标志着“Transformer统治视觉时代”的开端。

本文将从ViT的核心结构出发,拆解其设计逻辑,并分析它与传统CNN的本质差异,帮你快速掌握这一颠覆性模型的精髓。


一、为什么是Transformer?ViT的“跨界”动机

要理解ViT,首先需要回顾两个背景:

1. NLP中的Transformer神话

2017年,Google提出Transformer架构,凭借自注意力(Self-Attention)机制,彻底改变了自然语言处理(NLP)的格局。其核心思想是:通过计算序列中任意两个元素的关联权重(注意力分数),模型能直接捕捉长距离依赖关系,彻底摆脱了RNN“顺序计算”的低效瓶颈。例如,在翻译任务中,“苹果”和“吃”的关联可以跨越整个句子被直接建模。

2. CV的“CNN困局”

在ViT之前,计算机视觉的主流模型是CNN(卷积神经网络)。CNN通过局部卷积核提取特征,依赖“平移不变性”和“层级抽象”的归纳偏置(Inductive Bias),在图像任务中表现优异。但它也存在天然局限:

  • 局部感受野限制:卷积核只能捕捉局部区域的信息,需通过多层堆叠扩大感受野,效率较低;
  • 长距离依赖建模弱:对于需要全局信息的任务(如语义分割、目标检测),CNN难以直接关联图像中相距很远的区域;
  • 归纳偏置的“双刃剑”:固定的卷积操作虽降低了数据需求,但也限制了模型的灵活性——当数据量足够大时,这种“先验知识”可能成为性能瓶颈。

ViT的提出者敏锐地意识到:图像本质上是由像素组成的“二维序列”。如果将图像分割成小块(Patch),每个块视为一个“视觉词(Visual Word)”,那么图像就可以转化为类似文本的“词序列”。而Transformer的自注意力机制,恰好擅长处理这种序列数据的全局关联。于是,一场“Transformer跨界视觉”的革命就此展开。


二、ViT的核心结构:从图像到Transformer的“翻译”过程

ViT的整体架构可分为四大模块:图像分块嵌入(Patch Embedding)位置编码(Positional Encoding)Transformer编码器(Transformer Encoder)分类头(Classification Head)。我们以经典的ImageNet分类任务为例,逐步拆解其处理流程。

1. 第一步:图像分块——把图片切成“视觉词”

输入一张224×224×3的彩色图像(RGB三通道),ViT首先将其分割为多个大小为16×16的小块(Patch)。计算可知,224/16=14,因此图像会被分割为14×14=196个Patch。每个Patch的尺寸是16×16×3,包含256个像素点。

接下来,每个Patch会被线性投影为一个长度为D的向量(D是模型的隐藏层维度,如ViT-Base中D=768)。这个过程类似NLP中的“词嵌入(Word Embedding)”——将离散的“词”映射为连续的向量。因此,196个Patch最终会被转化为一个形状为[196, D]的矩阵,相当于一个长度为196的“视觉词序列”。

类比理解:如果把图像看作一篇“视觉文章”,那么16×16的Patch就是文章中的“单词”,而线性投影就是将“单词”转换为模型能理解的“词向量”。

2. 第二步:位置编码——给“视觉词”加上“坐标”

Transformer本身不包含任何位置信息(自注意力机制对输入的顺序不敏感),但图像的Patch具有明确的空间位置(如左上角、右下角等)。为了让模型感知到“空间顺序”,ViT需要为每个Patch添加位置编码(Positional Encoding)

ViT的位置编码采用与输入Patch相同的维度D,形状为[196, D]。根据原论文,位置编码是可学习的参数(Learnable Positional Encoding)——模型训练时,位置编码会随着梯度更新自动优化,而非使用固定的正弦/余弦函数(如原始Transformer)。每个Patch的嵌入向量与对应的位置编码向量相加后,输入到Transformer编码器中。

关键细节:除了196个Patch的嵌入向量,ViT还会额外添加一个可学习的[CLS](Class Token)向量(形状[1, D]),并将其拼接在Patch序列的最前面。最终输入Transformer的序列长度变为197(196个Patch + 1个[CLS])。

3. 第三步:Transformer编码器——用自注意力“读懂”图像

ViT的核心计算单元是标准的多层Transformer编码器(与NLP中的Transformer完全一致)。每个编码器层包含两个子层:

  • 多头自注意力(Multi-Head Self-Attention, MHSA):每个头独立计算序列中任意两个Patch的注意力分数,捕捉不同子空间的全局关联;最后将各头的输出拼接,得到丰富的上下文信息。
  • 前馈神经网络(Feed-Forward Network, FFN):对每个位置的向量进行非线性变换(通常是两层全连接+激活函数),增强模型的表达能力。

此外,每个子层后都会应用层归一化(LayerNorm)残差连接(Residual Connection),缓解深层网络的梯度消失问题。

核心差异:与CNN的“局部卷积”不同,ViT的自注意力机制允许每个Patch直接与图像中的所有其他Patch交互。例如,第1个Patch(左上角)可以直接“看到”第196个Patch(右下角),无需通过多层卷积核堆叠。

4. 第四步:分类头——用[CLS] token预测类别

经过多层Transformer编码器后,输入序列中的每个Patch向量都会被更新为包含全局信息的特征。ViT选择使用 [CLS] token的输出向量(即序列中第一个位置的向量)作为图像的全局表示,通过一个线性分类层(全连接层)映射到类别数(如ImageNet的1000类),最终输出分类概率。

设计巧思[CLS] token是模型专门为分类任务添加的“虚拟Patch”。它在输入时是随机初始化的可学习向量,在训练过程中会逐渐学习到“聚合全局信息”的能力,最终成为图像类别的“代言人”。


三、ViT的四大核心特点:重新定义视觉模型

1. 全局自注意力:打破局部感知的“枷锁”

ViT的最大突破是用自注意力替代卷积,直接建模图像中任意两个Patch的全局关联。这使得ViT在处理长距离依赖(如识别图像中“天空中的飞机”或“人群中的一个人”)时效率更高,无需像CNN那样通过多层堆叠扩大感受野。

2. 无归纳偏置:更灵活,但更依赖数据

CNN内置了“局部性”和“平移不变性”的归纳偏置,这使其在小数据场景下(如几千张图像)表现优异。但ViT放弃了这些先验知识,仅依赖自注意力和位置编码建模视觉规律。因此,ViT需要海量数据(如JFT-300M百万级图像)才能充分训练,否则容易过拟合。这也是早期ViT在小数据集(如ImageNet)上表现不如ResNet的原因。

3. 规模效应显著:数据越大,性能越强

ViT的性能与数据量呈强正相关。根据原论文实验:

  • 在小数据集(如ImageNet,1400万张图像)上,ViT-Base的Top-1准确率约为77.9%,略低于同规模的ResNet-50(78.2%);
  • 在超大规模数据集(如JFT-300M,3亿张图像)上,ViT-Large的Top-1准确率可达88.5%,远超同等规模的CNN模型。

这一特性使得ViT在大模型时代(如与预训练结合)展现出巨大潜力——当数据足够多时,其全局建模能力会彻底释放。

4. 结构简洁:与NLP的Transformer“一脉相承”

ViT的结构与NLP中的Transformer高度统一,仅需替换输入(词序列→视觉Patch序列)和输出(文本生成→分类得分)。这种统一性带来了两大好处:

  • 技术迁移:NLP中的优化技巧(如注意力头剪枝、混合精度训练)可直接应用于ViT;
  • 多模态融合:统一的架构为图像、文本、视频等多模态任务(如CLIP、ALBEF)提供了底层支撑。

四、ViT的局限性与改进方向

尽管ViT性能卓越,但其仍存在一些局限性,也推动了后续模型的改进:

1. 小数据场景表现不足

如前所述,ViT依赖大规模数据。针对这一问题,后续工作提出了数据高效型ViT(如DeiT),通过引入CNN的归纳偏置(如蒸馏学习)或数据增强(如RandAugment),使ViT在小数据集上也能达到SOTA效果。

2. 计算复杂度高

自注意力的时间复杂度为O(N²)(N为序列长度),当图像分辨率提高(如1024×1024)时,Patch数量N会急剧增加(1024/16=64→64²=4096),导致计算成本飙升。为此,研究者提出了稀疏注意力(如Swin Transformer,仅计算局部邻域或固定步长的注意力)、线性注意力(如Performer,将注意力矩阵分解为核函数近似)等方法,降低复杂度。

3. 位置编码的灵活性

ViT的可学习位置编码在处理不同分辨率图像时需重新训练(如从224×224到384×384)。而基于正弦函数的固定位置编码(如Swin Transformer)则支持任意分辨率的输入,更适合下游任务(如目标检测)。


五、总结:ViT开启的“视觉Transformer时代”

ViT的出现,本质上是将“序列建模”的思维引入视觉领域。它用自注意力替代卷积,用数据驱动替代归纳偏置,证明了Transformer架构在视觉任务中的普适性。尽管早期受限于数据规模,但随着大模型、多模态技术的发展,ViT已成为计算机视觉的核心架构之一。

从ViT到DETR(目标检测)、Mask2Former(分割),再到最近的Sora(视频生成),Transformer正在重新定义视觉任务的边界。或许正如论文作者所言:“A image is worth 16x16 words”——但这16x16个“词”,正在撬动整个视觉AI的未来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值