这些完整机制从第二讲迁出,暂存供第五讲开发。保留来源、精确例、中间形状及第二讲 LAB09 · 视觉 Attention 完整层;不是第二讲/第三讲必读,也不构成已完成的第五讲网站。
3. 图像变成 token 后,位置不会自动留下
把 $224\times224$ 图像切成边长 16 的不重叠图块,得到 $14\times14=196$ 个图块。每块展平并经线性投影得到 $D$ 维向量,再加位置编码。若采用 class token,序列长度还要额外加 1,不能把它算进 196 个图像块。课堂的 $4\times4$ 网格只方便看清操作,不是所有真实模型的 token 数。
每个图块保留局部内容,位置向量说明它位于哪里。没有位置信息,纯 attention 处理的是集合式关系,无法仅靠 token 顺序的书写方式获得图像坐标。这里延续了卷积问题:结构预先规定了哪些关系,又把哪些关系交给数据学习?返回 图块入口。
4. Attention 的结果是读回内容,不是画一张权重图
设查询、键和值分别来自线性投影 $Q=XW_Q$、$K=XW_K$、$V=XW_V$。一行查询的输出是 $\operatorname{softmax}(qK^T/\sqrt{d_k})V$。先算匹配分数,再归一化为权重,最后用这些权重汇总 values。权重本身不是新的图块表示,乘回 $V$ 才得到取回的信息。
用与主讲一致的一维精确教学例:$q=1$,三个键为 $(0,1,2)$,三个标量值为 $(2,4,8)$,$d_k=1$。权重约为 $(0.0900,0.2447,0.6652)$,输出约为 $6.4809$。保持键和值不变,只将查询改为 $q=-1$,权重顺序反转,输出约为 $3.0296$。相同的信息库因为查询改变,取回的组合也改变。这些标量没有真实语义,不能据此声称模型在“看叶脉”。
5. 把读信息放回一个完整的 pre-norm 层
主讲与 Lab B 使用同一结构约定。输入 $X\in\mathbb R^{N\times D}$ 先逐 token 做 LayerNorm,再做多头 attention;各头输出拼接后经输出投影 $W_O$ 回到 $N\times D$,才能与 $X$ 相加。令结果为 $U$,再对 $U$ 做 LayerNorm、逐 token MLP,并做第二次残差相加。
| 步骤 | 输入与输出 shape | 作用 |
|---|---|---|
| LayerNorm | $N\times D\to N\times D$ | 每个 token 内规范化特征 |
| 多头 attention 与输出投影 | $N\times D\to N\times D$ | 按内容在图块间传递信息 |
| 第一条残差 | $X+\mathrm{MHA}(\mathrm{LN}(X))$ | 保留输入并加入读取结果 |
| LayerNorm 与 MLP | $N\times D\to N\times D_{ff}\to N\times D$ | 逐 token 改写特征 |
| 第二条残差 | $U+\mathrm{MLP}(\mathrm{LN}(U))$ | 保留第一次更新并加入非线性变换 |
视觉图块这里进行非因果读取,不沿用语言自回归的因果 mask。LayerNorm 与 MLP 都不会在这个约定下直接交换 token;跨图块交流发生在 attention。Lab 记录每步张量,并比较相同 token、改一块输入和改位置三类条件;attention 权重仍不是因果解释。
完整可执行层与保存输出见 第二讲 LAB09。第二讲只用计算块接口讨论连接和预算;第三讲将视觉编码器作为可复用表示的接口。