教材讲解 第十三章

第十三章 Vision Transformer

Transformer 不只吃文字。2021 年的 ViT 把一张图切成格子,每格当成一个 token,后面的积木和 GPT 很像。论文标题就是:一张图等于 16×16 个词。书上用 MNIST 手写数字把这条流水线搭一遍。

  1. 图先切成 patch,每块投影成一个向量。
  2. 前面再塞一个 CLS token,专门用来做分类。
  3. 每个补丁加上位置编码,否则打乱图还是同一袋块。
  4. 编码器里的注意力没有因果掩码:分类要看全图。

书 §13 · 图 13.1–13.8 · p.219–232

13.2 补丁嵌入

是什么。卷积网用滤镜扫图。ViT 更粗暴:把图切成固定大小的方块,每块展平,乘一个矩阵,变成和文本 token 一样的向量。图 13.2–13.5。

书上的例子:32×32 的图,patch 8×8,得到 16 个补丁。图 13.7 左:Conv2d 完成「切块 + 投影」。

书 §13.2 · 图 13.2–13.5、13.7 · p.220–224

拖补丁边长

示意一张 8×8 的小图。边长 2 → 16 个 token;边长 8 → 1 个 token。

2

真实 ViT 常用 16×16 的补丁切 224 的图,得到 196 个图像 token。这里缩小只为能点。

接下节。光有一袋补丁还不够。要标明谁在左上角,还要一个「代表全图」的座位。

13.3 CLS 和位置编码

是什么。在补丁序列最前面加一个可学习的分类 token(CLS)。经过编码器后,用 CLS 的输出接分类头。每个补丁还要加位置编码,告诉模型这块来自图的哪一格。图 13.6、13.7 右。

为什么要位置。注意力本身不认顺序。没有位置,把补丁打乱,模型看见的是同一袋向量,数字 6 和 9 更分不清。

书 §13.3 · 图 13.6–13.7 · p.222–224

加上 CLS 和编号

还没加。现在只是一袋补丁。

位置可以是可学习的查找表,和 GPT-2 的位置嵌入是同一类东西。

接下节。这些 token 进 Transformer 编码器。和第二章不同:这里允许互相看见。

13.4–13.7 看全图的注意力

图 13.8:Q、K、V 仍在。但做分类时没有「不许看未来」——未来这个词对图没有意义。每个补丁可以看其他所有补丁,CLS 也可以看全图,再汇总成类别。

后面的节(编码器、训练循环、MNIST 评估)是把第二章已经见过的积木接到图像上。损失仍是分类交叉熵,只不过类别是 0–9。

书 §13.4–13.11 · 图 13.8 · p.224–232

点一个补丁,看它能看谁

分类任务:全部高亮。对比:若误加因果掩码,只能看编号更小的块。

点格子选提问者。ViT 分类应当看全图。

下一章。图像编码器和文本编码器对坐,把图和字拉到同一空间:CLIP。

合上这一章

  1. 切补丁。图变成 token 序列。
  2. CLS + 位置。分类座位,以及「这块从哪来」。
  3. 无因果掩码。分类要看全图。

章末自测

讲完了。下面几题核对本讲刚说过的概念。点选立刻看对错;做错也不会锁下一章。

第十四章 CLIP · 原书 p.233–250

打开第十四章 回到目录