| 摘要短语 | 对应原文章节 | 精读章节 |
|---|---|---|
| "reliance on CNNs is not necessary" | §1 引言 / §3.1 | 第二章、第三章 |
| "pure transformer applied directly to sequences of image patches" | §3.1 方法 | 第三章 patch 化与架构 |
| "pre-trained on large amounts of data" | §4.2–4.4(I21k/JFT-300M) | 第五章 规模曲线 |
| "excellent results … substantially fewer computational resources" | §4.5 Table 2 / §4.6 Table 6 | 第四章、第六章 主结果与算力账 |
| "mid-sized or small benchmarks (ImageNet, CIFAR-100, VTAB)" | §4.2 评测设置 | 第四章 |
| # | 论文声称的贡献 | 预评证据强度 |
|---|---|---|
| 1 | 纯 Transformer(无卷积)在图像分类上可达 SOTA:ImageNet 88.55%、ReaL 90.72%、CIFAR-100 94.55%、VTAB 77.63% | 强实验支撑(Table 2,三次微调均值±std) |
| 2 | 同等性能下 ViT 预训练算力比 ResNet 少约 2–4 倍 | 有系统缩放研究支撑(Table 6,18 个模型) |
| 3 | "大规模训练胜过归纳偏置":小数据 ViT 过拟合更重、大数据后反超 | 有规模曲线消融(9M/30M/90M/300M 子集) |
| 4 | 简单 1D 位置编码即可,无需 2D-aware 编码 | 有消融(附录 D.4 Table 8)+位置嵌入可视化解释 |
| 5 | Huge 模型未见性能饱和,激励进一步扩展 | 只是主张(外推性陈述) |
必读主线:§3.1 方法(尤其式 1–4)→ §4.2 预训练数据需求(两条规模曲线)→ §4.5 Table 2。跳过则无法回答"为什么 2020 年之前没人做成纯 Transformer 视觉模型"。
可跳支线:§附录 D 各项消融细节、Axial attention 对比、ObjectNet——支线内容;但做架构选型时 D.2(shape 缩放)与 D.5(实际计算成本)强烈建议回读。
来源:论文 §1 引言;历史背景串联为解读者补充。
学习目标:学完本章你应能——复述此前视觉注意力工作的两类做法及其局限;说出本文的核心反叛点;准确表述"数据规模 vs 归纳偏置"的论断及其两个前提条件。
关键论断的精确表述:CNN 把 locality、二维邻域结构、平移等变性内建于每一层,所以小数据下泛化好;ViT 几乎没有这些先验,中等规模数据(如不加正则的 ImageNet)上比同尺寸 ResNet 低几个百分点;但当预训练数据达到 14M–300M 图像量级时,大规模训练胜过归纳偏置。【论文声称,第五章的规模曲线提供直接证据】
直觉与类比:CNN 像自带"近大远小、相邻像素相关"常识的老画师,小样本也能画得体面;ViT 是一张白纸的天才,必须看过上亿张画才学会这些常识——可一旦学完,天花板更高。类比在哪里失效:ViT 并非完全零先验——MLP 层仍是局部且平移等变的,且 patch 切分本身就注入了网格结构假设;作者明确说二维结构只在两处被使用(切 patch、微调时调位置编码),是"极少"而非"零"。
常见误读:①"ViT 证明了卷积没用"——错,论文结论是归纳偏置在大数据下不再必要,小数据场景 CNN 依然占优(Table 5 中 ImageNet 预训练的 ViT-Large 不及 Base 就是明证);②"ViT 更省算力所以更先进"——省的是达到同等性能所需的预训练总算力,单步计算 ViT 反而可能更贵(D.5 有实测讨论);③把标题当修辞——16×16 正是主结果 ViT-H/14 之外的 L/16 配置里的 patch 边长。
一句话蒸馏:ViT 的赌注是"用数据规模买断归纳偏置",而 JFT-300M 就是它的筹码。
闭卷自检:不看材料我能说出 CNN 三种归纳偏置吗?ViT 在哪两处仍使用了二维结构?核心论断的两个条件分支?
来源:论文 §3.1 全部;混合架构段属 §3.1 末尾。
学习目标:学完本章你应能——手算给定分辨率与 patch 尺寸下的序列长度;默写四条编码器公式;说明 [class] token、位置编码、预训练头/微调头的差异;描述 hybrid 变体的两种取法。
图像 x∈ℝH×W×C 被切成 N=HW/P² 个 P×P patch,展平为 xp∈ℝN×(P²·C),经可训练投影 E∈ℝ(P²·C)×D 映到 D 维:
z₀ = [xclass; xp¹E; xp²E; ⋯ ; xpNE] + Epos z′ℓ = MSA(LN(zℓ−1)) + zℓ−1 ; zℓ = MLP(LN(z′ℓ)) + z′ℓ (ℓ = 1…L) ; y = LN(zL0)公式手术:
| 符号 | 它是什么 | 直觉 |
|---|---|---|
| N = HW/P² | patch 数=有效序列长度 | 224² 图、P=16 时 N=14×14=196;加 class token 共 197 个 token |
| E ∈ ℝ(P²C)×D | patch 投影矩阵 | P=16,C=3,D=768 时参数量 16×16×3×768=589,824≈0.59M,等价于一个 16×16、stride 16 的卷积 |
| zL0 | class token 的最终状态 | 整幅图的汇总表示,接分类头;仿 BERT 设计 |
| Epos ∈ ℝ(N+1)×D | 可学习 1D 位置编码 | 初始化不含任何 2D 信息,空间关系从零学起 |
分类头:预训练用带一个隐藏层的 MLP,微调换单线性层(零初始化的 D×K 前馈)。微调高分辨率技巧:保持 P 不变→序列变长,对预训练位置编码按原图位置做 2D 插值。混合架构:patch 投影作用于 CNN 特征图上的 patch;特例 P=1 即直接展平特征图空间维。
常见误读:①以为 patch embedding 是什么新模块——它就是一个 stride=P 的卷积(【解读者推断】原文未这样写,但形状推演可验证);②以为位置编码是 2D 的——用的是最朴素的 1D 可学习编码,2D-aware 版本没有带来显著收益(附录 D.4);③以为 class token 必不可少——附录 D.3 显示 GAP+线性头的早期失败完全由学习率需求不同造成,而非 class token 本身的魔力。
一句话蒸馏:ViT 的全部魔法就是把 H×W×C 重塑成 N 个 P²C 维"词",其余原封不动照抄 NLP。
闭卷自检:我能对 384² 输入、P=16 手算 N 吗?(答:24²=576。)预训练头和微调头差在哪?hybrid 的 P=1 特例是什么?
来源:论文 §4.1 及 Table 1、Table 3、Table 4。
学习目标:学完本章你应能——背出 B/L/H 三档的超参;说出预训练与微调各自的优化器组合及理由;解释 BiT 基线为何改用 GroupNorm。
| 模型 | Layers | Hidden D | MLP size | Heads | Params |
|---|---|---|---|---|---|
| ViT-Base | 12 | 768 | 3072 | 12 | 86M |
| ViT-Large | 24 | 1024 | 4096 | 16 | 307M |
| ViT-Huge | 32 | 1280 | 5120 | 16 | 632M |
命名如 ViT-L/16 = Large + 16×16 patch;patch 越小序列越长、计算越贵。预训练统一 batch 4096、224 分辨率、LR warmup 10k 步;主实验用 Adam(β₁=0.9, β₂=0.999)、weight decay 0.1——附录 D.1 显示此设置下 Adam 对 ResNet 也略优于 SGD(公平性处理);JFT 上训 7 或 14 epochs,ImageNet-21k 上 30/90 epochs。微调换 SGD+momentum 0.9、batch 512、cosine 衰减、无 weight decay、梯度裁剪全局范数 1,默认 384 分辨率;Table 2 冲榜时 ViT-L/16 用 512、ViT-H/14 用 518 分辨率并叠加 Polyak 平均(因子 0.9999)。基线 BiT 的 ResNet 把 BatchNorm 换成 GroupNorm + 标化卷积,以消除小 batch 下的 BN 劣势——对手是被认真伺候过的。
常见误读:①"ViT 用 Adam、CNN 用 SGD 只是习惯差异"——这是各自调到最优后的选择,且作者验证过交叉组合;②"H/14 的 14 是层数"——是 patch 边长;③忽略冲榜附加技巧(高分辨率+Polyak 平均)而把 88.55% 当成裸模型成绩。
一句话蒸馏:三档规格沿袭 BERT-Base/Large 的宽度设计再加深加宽,训练配方则是"预训练 Adam 大 batch、微调 SGD 小 batch"的双轨制。
来源:论文 Table 2。数字复述原文,未外部验证。
学习目标:学完本章你应能——复述四个 headline 数字;指出每个对比对象使用的预训练数据;完成 TPUv3-core-days 的倍数换算并评价其含义。
| 基准 | ViT-H/14 (JFT) | ViT-L/16 (JFT) | ViT-L/16 (I21k) | BiT-L (ResNet152x4) | Noisy Student (EffNet-L2) |
|---|---|---|---|---|---|
| ImageNet | 88.55±0.04 | 87.76±0.03 | 85.30±0.02 | 87.54±0.02 | 88.4/88.5* |
| ImageNet ReaL | 90.72±0.05 | 90.54±0.03 | 88.62±0.05 | 90.54 | 90.55 |
| CIFAR-100 | 94.55±0.04 | 93.90±0.05 | 93.25±0.05 | 93.51±0.08 | – |
| VTAB (19 tasks) | 77.63±0.23 | 76.28±0.46 | 72.72±0.21 | 76.29±1.70 | – |
| TPUv3-core-days | 2.5k | 0.68k | 0.23k | 9.9k | 12.3k |
* 为 Touvron et al. (2020) 报告的改进值。精度为三次微调运行均值±标准差。
常见误读:①拿 I21k 版本(85.30%)去否定"超越 SOTA"——headline 由 JFT 版本创造,两列数据来源不同须分开评价;②忽视 ReaL 标签列——它修正了原始 ImageNet 验证集的标注错误,是更干净的比较;③认为 VTAB 77.63% 很低——VTAB 每任务只用 1000 训练样本,考的是迁移表示质量,不能与全量微调分数直比。
一句话蒸馏:四个基准全部第一、预训练算力只有对手的十分之一——这张表的杀伤力不在单个数字而在"精度-算力"双坐标同时占优。
来源:论文 §4.2(第一组实验)、§4.3(第二组实验)、§4.4(缩放研究);Table 5 数字。
学习目标:学完本章你应能——分别描述两组规模实验的设计与结论;解释为什么 ImageNet 上 ViT-Large 不及 Base;引用 Table 5 关键行佐证"数据规模阈值"的存在。
第一组实验(ImageNet 1.3M → ImageNet-21k 14M → JFT-303M,逐项调优正则):ImageNet 上 ViT-Large 不及 ViT-Base(即使加了中等正则);I21k 上两者相当;只有 JFT-300M 才让大模型兑现全部收益。对照组 BiT-CNN 在 ImageNet 上占优、数据变大后被反超。
第二组实验(JFT 随机子集 9M/30M/90M/300M,统一超参不加额外正则、few-shot 线探针):相同算力预算下小数据上 ViT 比 ResNet 过拟合更重——如 ViT-B/32 虽略快于 R50,在 9M 子集上差很多、到 90M 以上反超;R152x2 与 ViT-L/16 同样规律。这组实验把"归纳偏置 vs 数据"从口号变成了剂量-响应曲线。
| 预训练集 | 模型 | ImageNet Top-1 | CIFAR-100 |
|---|---|---|---|
| ImageNet | ViT-B/16 | 77.91 | 87.13 |
| ImageNet | ViT-L/16 | 76.53(< Base!) | 86.35 |
| ImageNet-21k | ViT-L/16 | 85.15 | 93.44 |
| JFT-300M | ViT-L/16 | 87.12 | 94.04 |
| JFT-300M | ViT-H/14 | 88.04 | 94.55 |
缩放研究(§4.4,7 ResNet + 6 ViT + 5 Hybrid):①同性能下 ViT 平均只需 ResNet 约 2–4 倍更少的算力(5 个基准平均);②Hybrid 在小算力预算下略优、大模型下差距消失;③ViT 在所试范围内未见饱和【实验支持至边界,"继续放大还会涨"属外推主张】。
常见误读:①"ImageNet 训不出大 ViT 是调参不行"——第一组实验已尽力调了三项正则,结论稳健;②"Hybrid 更好"——只在低算力区成立,作者明确指出大模型下差距消失;③把 2–4 倍算力优势当成普适常数——它是"所测模型族+5 个基准"范围内的平均,不是定理。
一句话蒸馏:两组曲线共同给出一条阈值定律——预训练数据过了千万级,纯注意力的斜率开始碾压卷积。
来源:论文 §4.7(模型检查)、附录 D.4(位置编码消融 Table 8)、附录 B.1.2(masked patch prediction)。
学习目标:学完本章你应能——引用 Table 8 数字说明位置编码结论;描述位置编码自发学到 2D 拓扑的证据;复述 masked patch prediction 的设置与三个数字。
一句话蒸馏:网络会自己学会"图是二维的",所以人不必教——这是全文最优雅的一个副产物发现。
ImageNet:测细粒度千类分类,验证集标签噪声问题由 ReaL 列部分修复——同时报告两套标签是加分项。CIFAR/Pets/Flowers:小数据迁移能力,考的是"预训练表示的可微调性"而非模型容量。VTAB:19 任务、每任务仅 1000 样本,测分布外泛化(含 Structured 组的合成任务如 Clevr/dSprites);名字里的"视觉"有误导性——其中相当比例任务考察的是非自然图像的结构化推理。ObjectNet(附录 D.9,Top-1 61.7%/Top-5 82.1%):刻意非 canonical 视角的现实鲁棒性测试,分数远低于 ImageNet 属预期。
预训练 core-days 上 ViT 占优(第六章已算);但 推理侧注意力对序列长度二次增长,高分辨率部署成本陡增(D.5 实测显示理论二次律只在最大模型最大分辨率显现,且大 ViT 内存效率优于 ResNet——单核可容纳更大 batch)。另一个常被忽略的成本:微调超参网格(Table 4 的步数×学习率网格搜索)虽小但存在。只看精度表会得出"ViT 全面便宜"的过度简化结论。
以上引用数字仅复述原文,未做外部验证。
独立完成后展开:(a) 位置编码有无的 5-shot 差距是多少?1D 与 2D 相差多少?(b) 同在 JFT 上 ViT-L/16 预训练算力是 BiT-L 的几分之几?(c) Table 5 中 ImageNet 预训练下 ViT-L/16 与 ViT-B/16 的 ImageNet 分差方向与幅度?(d) 自监督 79.9% 距监督预训练差几个百分点?