[特殊字符] 视觉Transformer (ViT) 原理及性能突破:从CNN到大规模自注意力机制的迁移

📚 视觉Transformer (ViT) 原理及性能突破:从CNN到大规模自注意力机制的迁移

https://arxiv.org/html/2010.11929

源文件: An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale (arXiv:2010.11929)
核心主题: 证明纯粹的Transformer架构,仅通过大规模预训练,可以达到或超越传统的卷积神经网络(CNN)在图像识别任务上的性能。

🎯 核心洞察与研究意义

本文的关键突破在于提出了一种范式转变:深度学习的能力不再仅仅依赖于网络固有的归纳偏置(Inductive Biases) ,而是高度耦合于模型规模(Scaling)训练数据量(Data Scale)

  • 机制替代法: ViT将图像视为一系列离散的图像块(Patches),并通过标准Transformer处理这些图像块序列,成功将NLP中的自注意力机制(Self-Attention)扩展到了CV领域。
  • 计算效率革命: 在JFT-300M等超大型数据集上,ViT展示了卓越的性能,同时占用的计算资源(例如,训练成本)远低于SOTA的CNN模型。
  • 核心结论: CNN的局部性、平移不变性等内置偏置在超大规模数据集的足够优化和足够长的训练时,可以通过Transformer的模式识别和学习过程进行取代与超越

🔬 工作流程与技术实现 (Methodology & Formulas)

ViT成功的核心在于它模拟了图像块到序列数据的过程,使得整个流程可以被纳入标准的Transformer编码器结构内。

1. 输入预处理:图像到Token的序列化 (Patching)

步骤 描述 数学/概念
图像重塑 将原始图像 x∈RH×W×C\mathbf{x} \in \mathbb{R}^{H \times W \times C}x∈RH×W×C 划分为非重叠的 P×PP \times PP×P 图像块。 NNN (Token数量) =(H⋅W)/P2= (H \cdot W) / P^2=(H⋅W)/P2
Patch Embedding 每个图像块 xp\mathbf{x}_pxp 通过可训练的线性投影 E\mathbf{E}E 映射到一个高维的潜在向量空间 DDD。 xpE\mathbf{x}_p\mathbf{E}xpE
序列构建 构造最终输入序列 z0\mathbf{z}_0z0,必须包含三个关键组成部分: 输入序列 : z0=[xclass;xpE;⋯ ;xNE]+Epos\mathbf{z}0 = [\mathbf{x}{\text{class}}; \mathbf{x}_p\mathbf{E}; \cdots; \mathbf{x}N\mathbf{E}] + \mathbf{E}{\text{pos}}z0=[xclass;xpE;⋯;xNE]+Epos
组成元素 1. [class] Token (xclass\mathbf{x}_{\text{class}}xclass): 用于捕获全局分类结果的特殊可学习Token。 2. Patches (xpE\mathbf{x}_p\mathbf{E}xpE): 嵌入的图像块特征。 3. 位置嵌入 (Epos\mathbf{E}_{\text{pos}}Epos): 弥补Transformer缺乏空间/顺序信息。

2. Transformer 编码器结构详解

编码器层 ℓ\ellℓ 通过迭代的自注意力与MLP块来提炼特征。

  • 自注意力层 (MSA): zℓ′=MSA⁡(LN⁡(zℓ−1))+zℓ−1\mathbf{z}'{\ell} = \operatorname{MSA}(\operatorname{LN}(\mathbf{z}{\ell-1})) + \mathbf{z}_{\ell-1}zℓ′=MSA(LN(zℓ−1))+zℓ−1
  • MLP层: zℓ=MLP⁡(LN⁡(zℓ′))+zℓ′\mathbf{z}{\ell} = \operatorname{MLP}(\operatorname{LN}(\mathbf{z}'{\ell})) + \mathbf{z}'_{\ell}zℓ=MLP(LN(zℓ′))+zℓ′
  • 关键细节 (高分辨率): 当在更高分辨率上进行微调时,必须使用 **2D插值(2D Interpolation)**来调整预训练的位置嵌入,以保持空间位置信息的完整性。

📊 性能分析与量化指标 (Experimental Results)

模型的评估是在 ImageNet、CIFAR-100、VTAB等多个数据集上进行的,性能提升是系统性和跨任务的

1. 状态前沿对比 (State-of-the-Art Comparison)

Benchmark ViT-H/14 (JFT) BiT-L (JFT) Noisy Student (SOTA) 🏆 性能提升 (ViT)
ImageNet 88.55% 87.54% 88.4/88.5% ✅ 达到SOTA
ImageNet ReaL 90.72% 90.54% 90.55% ✅ 显著超越
CIFAR-100 94.55% 93.51% --- 🥇 领先优势明显
VTAB (19 tasks) 77.63% 76.29% --- ✅ 优于传统方法
训练资源消耗 2.52k TPUv3-core-days 9.99k 12.31k 🚀 资源消耗大幅降低
  • 数据规模依赖: ViT 的性能曲线强烈依赖于训练数据规模:在小型数据集(如ImageNet)上,CNN具有优势;但在大型数据集(如JFT-300M)上,ViT的指数级增长证明了数据量是决定模型上限的决定性因素

🛠️ 资源与学习要点总结

本论文为后续研究树立了两个关键指导原则:

  1. Scaling Law驱动: 所有需要构建视觉模型的新项目,都应将大规模预训练数据获取与模型架构设计视为首要任务。
  2. 模块化方法: Hybrid模型提供了一个可行的折衷方案,即将CNN的局部特征提取能力与Transformer的全局建模能力相结合,实现最佳性能与计算投入的最佳平衡点。
相关推荐
小a彤2 小时前
GE 在 CANN 五层架构中的位置
人工智能·深度学习·transformer
碧海银沙音频科技研究院3 小时前
通话AEC与语音识别AEC的软硬回采链路
深度学习·算法·语音识别
放下华子我只抽RuiKe54 小时前
React 从入门到生产(四):自定义 Hook
前端·javascript·人工智能·深度学习·react.js·自然语言处理·前端框架
涛声依旧-底层原理研究所4 小时前
残差连接与层归一化通俗易懂的详解
人工智能·python·神经网络·transformer
AI算法沐枫5 小时前
深度学习python代码处理科研测序数据
数据结构·人工智能·python·深度学习·决策树·机器学习·线性回归
初心未改HD6 小时前
深度学习之Attention注意力机制详解
人工智能·深度学习
code_pgf6 小时前
模态生成器:原理详解与推荐开源项目
人工智能·深度学习·开源
文歌子6 小时前
DeepEarth 深度解析:AI 如何理解地球的时空规律
深度学习