L大语言模型从理论到实践
阅读 PDF ↗
CHAPTER 39

视觉 Transformer

图像是一张具有局部邻接关系的二维网格,而标准 Transformer 接收一列向量。两种表示之间的转换不仅涉及张量形状,还涉及像素信息保留、空间坐标、全局交互和计算预算。把图像展成一个长向量,会失去可独立交互的位置;把每个像素作为一个位置,则会使全局注意力代价过高。视觉 Transformer(Vision Transformer,ViT)以局部补丁作为序列单元,在两者之间选择一种可训练的表示粒度(Dosovitskiy 等 2021)

本章研究视觉编码与分类。图像编码器如何连接语言模型,以及视觉生成如何建立概率模型,分别由多模态与生成模型相关章节展开。视觉编码器输出一个向量,不表示它已经获得语言对齐能力;分类准确率也不能单独证明其细粒度空间表示适用于定位任务。

39.1图像补丁表示

形状及坐标

补丁(Patch)是图像中按规则取出的局部像素区域。先考虑无重叠、无填充的矩形补丁,图像张量采用批量、通道、高、宽的顺序。表39.1统一本章符号,所有坐标从零开始。

表 39.1 视觉编码的主要符号。

符号 含义或形状
\(I\in\Real^{B\times C\times H\times W}\) 预处理后的图像批量
\(P_h,P_w\) 补丁高度与宽度
\(G_h=\frac{H}{P_h},\ G_w=\frac{W}{P_w}\) 补丁网格的行数与列数
\(N=G_hG_w,\ F=CP_hP_w\) 补丁数量与每个补丁的像素分量数
\(d,a,d_h=\frac{d}{a}\) 隐藏维度、注意力头数与每头维度
\(L=N+1,\ T\) 含分类标记的序列长度、编码层数
\(K,\rho d\) 类别数、前馈中间层宽度

标准补丁化的前提

\(H\)\(W\) 分别可被 \(P_h\)\(P_w\) 整除;补丁不重叠、不丢弃边界像素;输入的通道顺序与像素归一化已经确定。固定按补丁行优先、块内通道优先及像素行优先排列。不同排列同样可以定义有效模型,但必须同时变换后续权重和位置映射。

设网格坐标为 \((r,s)\),补丁内坐标为 \((u,v)\),通道为 \(c\)补丁化(Patchification)可以写成精确的索引映射:

\begin{align} n&=rG_w+s, & f&=(cP_h+u)P_w+v,\tag{39.1}\\ X_{b,n,f}&=I_{b,c,rP_h+u,sP_w+v}, & X&\in\Real^{B\times N\times F}. \tag{39.2}\end{align}

\(n\) 可以恢复 \(r=\lfloor \frac{n}{G_w}\rfloor\)\(s=n\bmod G_w\),由 \(f\) 可以恢复 \(c,u,v\)。因此,式(39.2)是一个双射,元素总数满足 \(BNF=BCHW\)。在这些前提下,切分只是重排,没有学习参数,也没有丢失像素。

这里必须区分逻辑重排与物理复制。张量布局允许时,某些重排可以由步长视图表示;后续矩阵运算若要求连续内存,仍可能发生复制。因此,元素数相等不能推出额外内存开销为零。1

线性投影及信息保留

补丁嵌入(Patch Embedding)将每个补丁映射到共同隐藏空间:

\[ E=XW_E+\boldsymbol 1 b_E^{\mathsf T},\qquad W_E\in\Real^{F\times d},\quad b_E\in\Real^d, \quad E\in\Real^{B\times N\times d}. \tag{39.3}\]

同一个 \(W_E\) 作用于所有补丁,参数量为 \(Fd+d\),不随图像补丁数增长。与像素重排不同,投影可能损失信息:若 \(d<F\),则 \(\operatorname{rank}(W_E)\leq d<F\),必然存在非零行向量 \(\delta\) 满足 \(\delta W_E=0\)。补丁 \(x\)\(x+\delta\) 因而具有完全相同的嵌入。即使 \(d\geq F\),也只有矩阵具有满行秩时才可能从嵌入唯一恢复补丁。

这并不意味着压缩一定有害。分类目标通常不要求保留每个像素扰动,模型可以学习舍弃与标签无关的变化。但对于细小文字、边缘缺陷等任务,若有用变化进入投影的零空间,后续注意力无法恢复它。补丁粒度与投影维度因此是任务信息与计算资源之间的结构选择。

39.2补丁投影及卷积的等价性

令二维卷积核为 \(\mathcal K\in\Real^{d\times C\times P_h\times P_w}\),步幅为 \((P_h,P_w)\),无填充、无膨胀。常用深度学习卷积操作实际按不翻转卷积核的互相关形式计算:

\[ Y_{b,j,r,s}=b_{E,j}+\sum_{c=0}^{C-1}\sum_{u=0}^{P_h-1}\sum_{v=0}^{P_w-1} \mathcal K_{j,c,u,v}I_{b,c,rP_h+u,sP_w+v}. \tag{39.4}\]

将参数对应为

\[ \mathcal K_{j,c,u,v}=(W_E)_{(cP_h+u)P_w+v,j}, \tag{39.5}\]

再令 \(n=rG_w+s\),式(39.4)就逐项等于式(39.3)\(E_{b,n,j}\)。卷积输出的 \([B,d,G_h,G_w]\) 还需按同一行优先规则重排为 \([B,N,d]\)。这是一种参数与运算的等价,并不意味着两种实现对任意内存布局和硬件都具有相同速度。

从梯度也能看出这种对应。把批量与补丁位置合并,令 \(G=\frac{\partial\mathcal L}{\partial E}\),则

\[ \frac{\partial\mathcal L}{\partial W_E}=X^{\mathsf T}G, \qquad \frac{\partial\mathcal L}{\partial X}=GW_E^{\mathsf T}, \qquad \frac{\partial\mathcal L}{\partial b_E}=\sum_{b,n}G_{b,n,:}. \tag{39.6}\]

在无重叠情况下,\(X\) 的梯度按逆映射放回图像即可。若使用重叠滑窗,一个像素会被多次取出,其梯度必须将各窗口贡献相加,不能用一次覆盖写回。

考虑单通道、单图像,令

\[ I=\begin{bmatrix}1&2&3&4\\5&6&7&8\\9&10&11&12\\13&14&15&16\end{bmatrix}, \quad P_h=P_w=2,\quad W_E=\begin{bmatrix}1&1\\1&-1\\1&1\\1&-1\end{bmatrix},\quad b_E=0. \tag{39.7}\]

按式(39.1)得到

\[ X=\begin{bmatrix}1&2&5&6\\3&4&7&8\\9&10&13&14\\11&12&15&16\end{bmatrix}, \qquad XW_E=\begin{bmatrix}14&-2\\22&-2\\46&-2\\54&-2\end{bmatrix}. \tag{39.8}\]

第一个输出通道计算四个像素之和,第二个通道计算左右差。对应卷积核分别为

\[ \mathcal K_0=\begin{bmatrix}1&1\\1&1\end{bmatrix},\qquad \mathcal K_1=\begin{bmatrix}1&-1\\1&-1\end{bmatrix}. \tag{39.9}\]

卷积第一通道输出网格 \(\left[\begin{smallmatrix}14&22\\46&54\end{smallmatrix}\right]\),第二通道输出全为 \(-2\)。重排后得到同一个 \(4\times2\) 矩阵。这个构造算例说明像素索引与参数映射的等价,不是分类实验,也没有说明这两个人工核具有良好的视觉表征能力。

重叠、填充及边界

一般滑窗在高度方向的输出数为

\[ G_h=\left\lfloor\frac{H+2p_h-\delta_h(P_h-1)-1}{S_h}\right\rfloor+1, \tag{39.10}\]

其中 \(p_h,S_h,\delta_h\) 分别为对称填充、步幅和膨胀系数,宽度方向同理。步幅小于窗口尺寸会产生重叠;步幅过大可能跳过像素;不能整除时,无填充实现可能丢弃尾部。它们仍可与相同滑窗规则的线性投影对应,但已不满足前述双射。

对变尺寸图像采用填充时,需要区分完全由填充构成的补丁与部分有效补丁。注意力掩码只能排除整个位置,不能自动去除一个补丁内部的无效像素影响。通常应先明确裁剪或填充策略、有效区域以及目标任务是否允许改变长宽比,再决定补丁规则。

39.3二维位置及序列组装

空间位置编码

不含位置编码的注意力对序列置换具有等变性。令 \(\Pi\) 为位置置换矩阵,则线性映射满足 \(Q'=\Pi Q,K'=\Pi K,V'=\Pi V\)。逐行 softmax 满足

\[ \softmax(\Pi S\Pi^{\mathsf T})=\Pi\softmax(S)\Pi^{\mathsf T}, \tag{39.11}\]

因此

\[ \operatorname{Attn}(\Pi Z)=\Pi\operatorname{Attn}(Z). \tag{39.12}\]

逐位置归一化、前馈层和残差都保持这一性质。若固定分类标记的位置,仅置换其余补丁,分类位置输出不变;均值池化同样无法区分这些排列。因此,单纯把上方补丁排在数组前面,并没有使模型知道“上方”的含义。补丁内部的像素坐标由投影权重区分,补丁之间的空间坐标则需要另行提供。

分类标记(Classification Token,CLS)是一个跨图像共享的可训练向量 \(e_{\mathrm{cls}}\in\Real^d\)。标准序列初始化为

\[ Z^{(0)}=[e_{\mathrm{cls}};E_0;\ldots;E_{N-1}]+P, \quad P\in\Real^{(N+1)\times d}. \tag{39.13}\]

位置参数按批量广播,分类向量本身不含当前图像信息,其依赖图像的表示是在编码器中通过交互形成的。

位置参数的二维语义

绝对位置嵌入(Absolute Positional Embedding)为每个位置提供一个与内容相加的向量。标准 ViT 可以把参数存成一张一维表,但表的第 \(1+rG_w+s\) 行实际对应二维网格坐标 \((r,s)\)。因此,“存成一维”不等于“只能表达一维位置”。另一种设计是分解为 \(P_{r,s}=P^h_r+P^w_s\),其参数更少,但位置表的可表达形式受到可加性约束。

二维位置插值(Two-Dimensional Positional Interpolation)用于将固定网格的位置参数适配到另一网格。须先分离 CLS 行,再把补丁部分恢复为 \(G_h\times G_w\times d\),按空间坐标插值,然后重新展平。把整个序列当作一条线插值,可能在旧网格一行末尾和下一行开头之间建立不符合二维邻接的混合。

双线性插值(Bilinear Interpolation)为例,明确采用角点对齐且新网格两边均大于一,目标坐标 \((i,j)\) 对应源坐标

\[ x=i\frac{G_h-1}{G'_h-1},\qquad y=j\frac{G_w-1}{G'_w-1}. \tag{39.14}\]

\(r=\lfloor x\rfloor,s=\lfloor y\rfloor,\alpha=x-r,\beta=y-s\),并将邻接下标限制在合法边界,则每个通道独立计算

\begin{align} P'_{i,j}={}&(1-\alpha)(1-\beta)P_{r,s} +(1-\alpha)\beta P_{r,s+1}\nonumber\\ &+\alpha(1-\beta)P_{r+1,s}+\alpha\beta P_{r+1,s+1}. \tag{39.15}\end{align}

这是一个明确的教学插值约定。采用像素中心对齐或双三次插值时,坐标和权重都会不同;退化为单行、单列的网格也应显式规定采样位置。复用已有权重时不能无意混用这些规则。2

例如,一个位置通道的源网格为 \(\left[\begin{smallmatrix}0&2\\4&6\end{smallmatrix}\right]\)。按角点对齐扩展至 \(3\times3\),结果为

\[ \begin{bmatrix}0&1&2\\2&3&4\\4&5&6\end{bmatrix}. \tag{39.16}\]

中心来自四个角各 \(\frac{1}{4}\) 的加权和。分类位置若原为 \(10\),仍单独保留为 \(10\),不能加入这张空间网格。这里被插值的是学习到的位置向量,不是输入图像像素。

位置插值假设原网格参数能够作为某种平滑空间场重新采样。形状匹配并不能证明这种平滑假设适合所有学习结果,也不能保证高分辨率下的物体尺度与训练分布一致。更换补丁尺寸还会改变 \(W_E\) 的输入维度,单独插值位置表无法解决这种权重不兼容。

39.4视觉编码及读出

双向编码层

每层采用前置层归一化(Pre-Layer Normalization,Pre-LN)残差结构:

\begin{align} U^{(t)}&=Z^{(t-1)}+\operatorname{MHA}(\operatorname{LN}(Z^{(t-1)})),\tag{39.17}\\ Z^{(t)}&=U^{(t)}+\operatorname{MLP}(\operatorname{LN}(U^{(t)})),\qquad t=1,\ldots,T. \tag{39.18}\end{align}

此处归一化沿每个位置的隐藏维度进行,前馈网络逐位置共享参数。多头注意力的查询、键和值均来自同一视觉序列,正常有效补丁之间不施加语言模型的因果掩码。填充位置则需要有效性掩码。注意力和反向传播的通用推导见第39章《注意力机制》,这里展开其视觉含义。

单个注意力头对第 \(i\) 个位置计算

\[ a_{ij}=\frac{\exp(\frac{q_i^{\mathsf T}k_j}{\sqrt{d_h}})}{\sum_{m\in\mathcal V}\exp(\frac{q_i^{\mathsf T}k_m}{\sqrt{d_h}})}, \qquad o_i=\sum_{j\in\mathcal V}a_{ij}v_j, \tag{39.19}\]

\(\mathcal V\) 为有效位置集合。一个补丁可以依据内容和位置从其他区域收集信息:局部边缘可以与远处轮廓组合,分类位置也可以汇集多个区域。全局可访问只表示存在信息通路,并不保证模型实际利用了需要的区域。

ViT 的表示路径。分类读出压缩空间序列;密集预测可以保留补丁表示。
图 39.1 ViT 的表示路径。分类读出压缩空间序列;密集预测可以保留补丁表示。

CLS 及平均池化

在最终归一化后令 \(\widehat Z=\operatorname{LN}(Z^{(T)})\)。CLS 读出采用 \(h=\widehat Z_0\)全局平均池化(Global Average Pooling,GAP)可以采用

\[ h=\frac{1}{N_{\mathrm{valid}}}\sum_{n=1}^{N}m_n\widehat Z_n, \qquad N_{\mathrm{valid}}=\sum_{n=1}^{N}m_n, \tag{39.20}\]

其中 \(m_n\in\{0,1\}\),且 \(N_{\mathrm{valid}}>0\)。前者通过专门位置学习信息汇集,后者对最终补丁表示赋相同读出权重,但这些补丁已经经过内容相关的全局交互,因而不能把 GAP 误解为对原始像素简单取平均。

两者也产生不同的直接梯度路径。若分类损失对 \(h\) 的梯度为 \(g\),GAP 对每个有效最终补丁的直接梯度为 \(\frac{g}{N_{\mathrm{valid}}}\),CLS 则在读出位置接收直接梯度,再经各层注意力传递至补丁。结构差异不构成任一读出方式普遍更好的证明,替换预训练模型的读出方式也可能需要重新训练与调整优化设置。

分类头令 \(o=hW_C+b_C\),其中 \(W_C\in\Real^{d\times K}\),并以 \(p_k=\frac{\exp(o_k)}{\sum_j\exp(o_j)}\) 得到类别概率。对于单标签监督 \(y\),损失为 \(-\log p_y\)。密集定位任务则需要保留 \(N\) 个补丁特征,恢复 \(G_h\times G_w\) 网格,并通过任务头处理空间分辨率;单个 CLS 无法直接替代这条空间输出路径。

39.5分辨率及计算预算

参数及运算规模

对每层标准多头注意力,忽略偏置、归一化和逐元素算子,以一次乘加作为一个计数单位,四个投影约需 \(4BLd^2\) 次乘加;\(QK^{\mathsf T}\) 与注意力乘 \(V\) 合计 \(2BL^2d\);前馈网络中间维度为 \(\rho d\) 时约需 \(2B L\rho d^2\)。因此

\[ \mathrm{MACs}_{\mathrm{layer}}\approx B\left[(4+2\rho)Ld^2+2L^2d\right]. \tag{39.21}\]

若按一次乘法和一次加法各计一次浮点运算,主要项再乘二。这个计量约定必须与报告一致。

标准注意力的逻辑分数共有 \(BaL^2\) 个元素。若显式以每元素 \(s\) 字节存储,单张分数张量占 \(sBaL^2\) 字节;训练还包括其他激活、梯度和优化器状态。融合注意力内核可能不物化整张矩阵,故逻辑规模不是实际峰值显存的等式。相关实现见高效注意力章节。

固定 \(d\)\(C\) 与图像尺寸时,补丁投影的主要乘加量为 \(BNFd=BCHWd\),在无重叠规则下与补丁面积无关;但其参数数 \(Fd+d\) 会随补丁面积变化。减小补丁主要增加编码器序列长度,而不是简单地按同一倍数增加所有模块。这一区分有助于定位成本来源。

规模比较

设图像为 \(224\times224\),采用方形补丁与一个 CLS。下表是由整数公式计算出的结构数量,不是实测显存或运行时间。

表 39.2 固定图像尺寸下的序列规模。

\(P\) 网格 \(N\) \(L\) 每头 \(L^2\)
32 \(7\times7\) 49 50 2500
16 \(14\times14\) 196 197 38809
8 \(28\times28\) 784 785 616225

忽略 CLS,补丁边长减半使 \(N\) 增长四倍,二次项增长十六倍。保留 CLS 后比值分别为 \(\frac{38809}{2500}\approx15.52\)\(\frac{616225}{38809}\approx15.88\),不能把十六倍写成含 CLS 情况的精确等式。

\(d=768,\rho=4,B=1,P=16\) 为例,一层线性投影与前馈的主要项为

\[ 12\times197\times768^2=1394343936, \tag{39.22}\]

注意力两次矩阵乘法为

\[ 2\times197^2\times768=59610624. \tag{39.23}\]

在这一构造配置中,前者明显更大;不能仅因注意力存在二次项,就断定任何分辨率下它都支配运算。两类项相等约发生在 \(L=(2+\rho)d\),本例为 \(4608\)。这一交点只比较乘加次数,尚未计入带宽、并行度和算子调度。

若固定 \(P=16\) 而把输入变为 \(384\times384\),则网格为 \(24\times24\)\(N=576,L=577\),每头逻辑分数为 \(332929\)。二维尺寸同时扩大时,\(N\) 按面积增长,注意力二次项按面积的平方增长。与改变补丁大小不同,这种调整保持补丁投影形状不变,但仍需处理位置参数与视觉尺度分布。

结构预算与质量是不同问题

更细补丁提高空间采样粒度,同时增加编码器序列成本;更高分辨率可能保留输入细节,但也改变内容尺度和位置分布。两者都不保证分类或定位质量单调提高。比较质量时应同时固定数据划分、预处理、优化预算和评价口径,并说明哪些变量实际发生了变化。

39.6归纳偏置及训练边界

卷积先验及全局交互

归纳偏置(Inductive Bias)是模型结构或学习过程对可学习规律的偏好。卷积通过局部连接和跨位置共享核编码空间先验;在适当边界与步幅条件下,其输出随输入平移而相应平移,这称为平移等变性(Translation Equivariance)。带步幅的卷积仅对与采样网格兼容的平移具有相应性质,不能无条件套用逐像素平移等变的说法。

ViT 的补丁投影同样包含局部性与权重共享,并非没有任何视觉先验。它的编码器允许补丁全局交互,而绝对位置表可使不同位置具有不同作用。一像素平移可能改变多个补丁内部的像素组合,不能简单视为补丁序列的整数置换。因此,式(39.12)的序列置换等变不等于图像平移等变。

原始 ViT 强调了预训练数据规模与迁移效果的关系;后续数据高效视觉 Transformer 研究说明,训练配方、正则化及蒸馏也会显著改变数据利用效率(Touvron 等 2021)。不能把某一配方在某个数据规模下的结果写成“Transformer 天生需要固定数量图像”的定律。模型容量、目标域和数据增强共同决定泛化条件。

数据增强的目标效应

数据增强(Data Augmentation)从变换分布 \(a\sim\mathcal A\) 采样图像变换,训练目标相应成为

\[ \min_\theta\frac1M\sum_{i=1}^{M} \mathbb E_{a\sim\mathcal A}\left[\ell(f_\theta(a(I_i)),y_i)\right]. \tag{39.24}\]

随机裁剪和翻转隐含“变换后标签仍有效”的假设。裁剪移除了唯一目标、镜像改变文字含义或左右具有临床语义时,标签保持假设可能失败。因此,增强不能仅按强弱选择,还应按任务的语义不变性选择。验证阶段通常使用固定处理流程,以免随机输入变化掩盖模型差异。

混合增强(Mixup)在线性组合输入时同时组合标签(Zhang 等 2018)

\[ \widetilde I=\lambda I_i+(1-\lambda)I_j,\quad \widetilde y=\lambda y_i+(1-\lambda)y_j,\quad 0\leq\lambda\leq1. \tag{39.25}\]

原方法从 Beta 分布采样 \(\lambda\)。由于交叉熵对目标标签线性,有

\[ -\sum_k\widetilde y_k\log p_k =\lambda\ell(p,y_i)+(1-\lambda)\ell(p,y_j). \tag{39.26}\]

例如 \(\lambda=0.7\),两类标签混合为 \((0.7,0.3)\),预测为 \((0.8,0.2)\),则损失为 \(-0.7\log0.8-0.3\log0.2\approx0.6390\)。这是对合成输入施加的软监督,不表示混合图像在现实世界中天然具有同样的类别概率。

迁移策略及输入协议

线性探测(Linear Probing)冻结视觉主干,仅训练新的线性分类头;全量微调更新主干与分类头;部分解冻则在两者之间选择可训练层。冻结主干减少优化器状态,却不自动证明其表示适合新域。若主干前面还存在需要训练的模块,冻结权重的层仍需向输入传播梯度,这与参数高效微调中的原则相同。

小数据下可从预训练表示与较保守的更新范围开始,依据独立验证选择策略。层间学习率衰减可以让较浅层更新更小;参数指数移动平均对历次参数进行平滑。两者以及混合精度、梯度累积的通用机制见训练章节,是否提升当前视觉任务仍需受控比较,不能把配方叠加数目当作有效性的证据。

发布时必须绑定权重、架构配置、图像处理器和标签映射。预处理中的通道顺序、像素范围、缩放插值、裁剪位置、均值与标准差共同定义输入分布。若训练使用 \(x=\frac{\frac{p}{255}-\mu}{\sigma}\),部署直接把 \(p\) 代入同一个归一化式,便不是一个微小误差,而是显著改变输入尺度。分类头列数正确也不保证标签语义正确:标签索引发生置换时,模型输出的数值可以完全合理,显示的类别却整体错误。

算法39.1 视觉编码的确定性推理路径

输入:图像批量、固定预处理协议、补丁与位置网格配置、\(T\) 层权重、分类标签映射。

输出:类别概率,以及按需要保留的补丁表征。

状态:有效区域、补丁网格 \((G_h,G_w)\)、序列 \(Z\)、层计数 \(t\)

  1. 按声明的通道、范围、缩放与归一化处理图像;根据边界规则裁剪或填充,并记录有效区域。

  2. 由式(39.1)确定补丁次序,使用式(39.3)或等价卷积投影。保持权重排列与像素排列一致。

  3. 检查位置表的源网格;若目标网格不同,分离 CLS 后按声明的二维规则插值。若补丁投影尺寸不兼容,终止并报告配置错误。

  4. 加入 CLS 与位置嵌入,建立有效位置掩码。每个有效查询必须至少有一个可见键;不得将全屏蔽行直接送入普通 softmax。

  5. \(t=1,\ldots,T\) 执行式(39.18),保持序列长度和隐藏维度不变;推理时停用训练期随机失活。

  6. 按固定的 CLS 或有效均值读出方式产生 \(h\),计算分类分数与概率,并用绑定的标签映射解释输出。

停止条件与不变量:完成 \(T\) 层与分类头后返回;每个补丁的序列位置始终对应同一空间位置。配置不兼容或无有效输入时显式终止,不静默更换预处理或读出策略。

39.7视觉模型的评价边界

机制等价与任务有效性需要不同证据。共享参数后的线性投影和卷积一致性支持算子对应;补丁化后按逆映射恢复像素支持坐标正确;这些都不证明训练后分类准确。反过来,较高分类准确率也可能掩盖错误预处理被模型偶然补偿的问题。评价视觉系统还应控制同源图像跨划分泄漏、近重复、类别不平衡与采集域变化。

注意力图显示式(39.19)中的内部权重,不直接等于像素的因果重要性。多头投影、值向量、残差和后续非线性共同决定输出。遮挡分析也改变了输入分布,因此应说明遮挡规则和比较对象,而不是把一张热图当作解释有效性的最终结论。


  1. 库中的滑窗提取操作往往也支持重叠和填充;只有核尺寸、步幅及边界规则满足本节前提时,才对应这里的无重叠补丁化。↩︎

  2. 原始 ViT 在提高分辨率微调时采用位置插值。插值是参数适配操作;某个实现具体选用的插值核、对齐模式和抗锯齿选项,仍应与其检查点配置一致。↩︎

WORKBOOK / 习题

配套习题与解析

先独立作答,再展开参考解析。选修题保留原书标记。

习题 39.1

\(B=2,C=3,H=96,W=128,P_h=8,P_w=16\),计算 \(G_h,G_w,N,F\);写出最后一个补丁和块内最后一个像素的索引。

展开参考解析

网格\(G_h=\frac{96}{8}=12,G_w=\frac{128}{16}=8\),补丁数\(N=96\),块内元素\(F=3\times8\times16=384\)。零起始最后补丁\(n=95\)对应网格\((11,7)\);按块内通道优先、再行列的约定,最后元素\(f=383\)对应\((c,u,v)=(2,7,15)\),映回图像\((c,h,w)=(2,95,127)\),批索引可为0或1。若通道后置,需同时改索引公式与权重排列。

习题 39.2

证明式39.2可逆,并说明当滑窗重叠、忽略边界或带填充时,哪些结论发生变化。

展开参考解析

无重叠整除时,每像素\(h,w\)唯一分解为\(h=g_hP_h+u,w=g_wP_w+v\),其中商余数唯一;再将\((g_h,g_w)\)\((c,u,v)\)编码为n、f,构成双射,逆映射按商余数还原。重叠会复制像素,逆需检查一致并累加/归一;忽略边界丢信息所以不可逆;填充需保留原尺寸并裁掉新增位置,才能恢复原图。

习题 39.3

以本章 \(4\times4\) 图像算例为基础交换块内两个像素的展平位置。怎样变换 \(W_E\) 才保持输出不变?只改变展平规则会造成什么错误?

展开参考解析

令块内置换矩阵为P,行向量展平改成\(X'=XP\),取\(W'_E=P^TW_E\),则\(X'W'_E=XPP^TW_E=XW_E\)。交换两个像素等于交换W对应两行。只改X不改W会让不同像素被原位置权重相乘,例如左右差核可能算成上下或混合差,形状虽不变而输出语义改变。

习题 39.4选修

推导重叠滑窗情况下图像梯度的累加公式,并说明为什么不能用无重叠逆重排直接替代。

展开参考解析

设抽取算子\(X=UI\),投影\(Z=XW\),则\(D_I=U^T(D_ZW^T)\)。展开为某像素的梯度等于所有包含该像素的窗口、对应块内位置以及输出通道贡献之和。重叠时同像素出现多次,单纯逆重排只保留一次会漏梯度;若为重建图像求平均,要明确这是另一归一化算子,而反向应为前向抽取算子的转置。

习题 39.5选修

\(F=12,d=5\) 时,证明至少存在七维的补丁扰动空间不会改变线性嵌入。这个结论是否足以判断分类性能?

展开参考解析

线性映射由\(12\times5\)矩阵定义,其秩至多5。秩零化度定理给核空间维数\(12-\operatorname{rank}W\ge7\),所以存在至少七维非零扰动\(\delta x\)满足\(\delta xW=0\)。这说明线性编码不能保留全部输入差异,却不能单独判断分类性能,因为被丢弃方向可能与标签无关;任务充分性需要数据与分类目标证据。

习题 39.6

证明没有位置编码时,固定 CLS、任意置换补丁不会改变分类读出。加入位置后同时置换内容和位置,与只置换内容有何区别?

展开参考解析

令置换\(P=\operatorname{diag}(1,P_v)\)固定CLS,对无位置的自注意力有\(Q'=PQ,K'=PK,V'=PV\),行Softmax满足\(\operatorname{softmax}(PSP^T)=P\operatorname{softmax}(S)P^T\),输出为PO;逐位置前馈、归一化和残差也等变。由层归纳CLS行不变,分类不变。加入位置后同时置换内容和位置仍只是整行置换;只置换内容则改变内容与空间的配对,一般改变输出。推理关闭随机丢弃或同步其置换是该证明的条件。

习题 39.7

\(2\times2\) 标量位置网格插值至 \(4\times3\),明确角点或中心对齐规则,并解释为什么不能将 CLS 当作额外空间点。

展开参考解析

沿用源网格\(\left[\begin{smallmatrix}0&2\\4&6\end{smallmatrix}\right]\),取角点对齐,连续场为\(f(y,x)=4y+2x\)。目标y取\(0,\frac{1}{3},\frac{2}{3},1\),x取\(0,\frac{1}{2},1\),结果为 \(\left[\begin{smallmatrix}0&1&2\\\frac{4}{3}&\frac{7}{3}&\frac{10}{3}\\\frac{8}{3}&\frac{11}{3}&\frac{14}{3}\\4&5&6\end{smallmatrix}\right]\)。中心对齐会使用另一坐标和边界处理,结果不同。CLS表示汇聚角色,没有二维像素位置,单独保留其参数,不能插入网格混合。

习题 39.8

\(d=512,\rho=4\) 时,求式39.21中线性项与二次项相等的序列长度;解释这为何不是硬件延迟交点。

展开参考解析

主要线性项\((4+2\rho)Ld^2\)与注意力项\(2L^2d\)相等,正L下约去\(2Ld\)\(L=(2+\rho)d=6\times512=3072\)。这是乘加量交点;内存搬运、融合、并行度、矩阵利用率和工作区不同,真实时间交点必须测量,不能据此直接决定内核选择。

习题 39.9

比较固定补丁尺寸提高分辨率与固定分辨率减小补丁尺寸:哪些参数形状变化,哪些只是激活形状变化?

展开参考解析

固定补丁尺寸提高分辨率,块内维数F与投影W不变,位置数及注意力激活增大,学习位置表需重采样。固定分辨率减小补丁,F和W形状改变、位置数增大,因此不能只插值位置表就复用全部权重。共享编码层的d不变时其参数可保留;两种变化都改变输入尺度分布,质量需验证。

习题 39.10

写出带填充掩码的 GAP 读出梯度,并说明直接除以包含填充的 \(N\) 会产生什么偏差。

展开参考解析

有效掩码\(m_i\in\{0,1\}\)\(n_v=\sum_i m_i>0\),读出\(g=\sum_i \frac{m_ih_i}{n_v}\)。给定上游\(D_g\)\(D_{h_i}=\frac{m_iD_g}{n_v}\);填充位置为零。若除以含填充的N,则\(g\)和梯度被缩为\(\frac{n_v}{N}\),让表示幅度与填充比例相关。全空样本必须拒绝或单独定义,不能除零。

习题 39.11

为包含小字符的图像分类任务分析随机裁剪、镜像与 Mixup 的标签假设。提出一个保持划分固定的比较方案,区分增强收益与数据泄漏。

展开参考解析

小字符裁剪可能删掉决定标签的字,镜像可能改变文字含义,Mixup软标签隐含组合目标而非真实混图类别概率。可固定按原始图/文档分组的数据划分,在相同模型、训练步数和预算下分别比较无增强、语义保持裁剪、翻转和Mixup。测试使用固定处理器,并按字符大小与方向切片;同一原图变体不得跨训练测试泄漏。

习题 39.12

一个模型张量形状全部正确,但部署准确率骤降。按输入范围、通道、位置映射、读出和标签映射构造逐层排查顺序,并为每一步指出所需证据。

展开参考解析

先用原始样本与处理器日志核对数值范围和归一化,再核对RGB/BGR与通道轴;用可手算网格验证patchify及位置索引;用保存中间激活核对CLS/GAP和掩码;最后核对分类头列与标签ID映射。每步以固定输入对照参考输出,定位第一个偏离处。形状检查只能排除维度错误,不能排除数值尺度、位置或标签语义错误。

REFERENCES

参考文献

Dosovitskiy, Alexey, Lucas Beyer, Alexander Kolesnikov, Dirk Weissenborn, Xiaohua Zhai, Thomas Unterthiner, Mostafa Dehghani, 等. 2021. 《An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale》. 收入 International Conference on Learning Representations. https://openreview.net/forum?id=YicbFdNTTy.
Touvron, Hugo, Matthieu Cord, Matthijs Douze, Francisco Massa, Alexandre Sablayrolles, 和 Herve Jegou. 2021. 《Training data-efficient image transformers & distillation through attention》. 收入 Proceedings of the 38th International Conference on Machine Learning, 139:10347–57. Proceedings of Machine Learning Research. https://proceedings.mlr.press/v139/touvron21a.html.
Zhang, Hongyi, Moustapha Cisse, Yann N. Dauphin, 和 David Lopez-Paz. 2018. 《mixup: Beyond Empirical Risk Minimization》. 收入 International Conference on Learning Representations. https://arxiv.org/abs/1710.09412.

搜索全书

搜索全书正文、习题与解析