一、 ViT 的数学底层构筑:从像素到序列

Vision Transformer (ViT) 的核心思想是将图像处理视作一个 1D 序列建模问题,通过舍弃 CNN 的先验偏置(Inductive Bias)来换取更高的表达能力上限。

1. 图像序列化(Patch Embedding)

对于输入图像 ,我们将其切分为 个固定大小的图像块(Patches),每个块的分辨率为

序列化映射过程如下:

随后,通过线性投影矩阵 将其映射至隐空间维度

等价性分析

线性投影层在算子上完全等价于一个卷积核大小为 、步长(Stride)为 的二维卷积:

该操作的权重矩阵 维度即为 。这一步完成了从局部空间信号到全局嵌入向量的转换。

2. [CLS] Token 与 Position Embedding

为了执行分类或全局特征提取,ViT 引入了可学习的 向量。输入序列构造为:

其中 是位置编码。

深度讨论:归纳偏置的缺失

  • Translation Invariance (平移不变性):CNN 通过卷积核权值共享实现,而 ViT 的 Self-Attention 是置换不变的(Permutation Invariant),平移不变性必须通过海量数据在位置编码中学习获得。

  • Locality (局部性):CNN 的感受野随层数线性增加,而 ViT 首层即可实现全局感受野。这种“感受野自由”导致模型在小数据集上极易过拟合,对数据量的需求呈对数线性增长。


二、 Transformer Encoder 的严谨推导

1. Multi-Head Self-Attention (MSA)

定义在缩放点积之上:

矩阵秩(Rank)视角:单头注意力往往受限于低秩瓶颈(Low-rank bottleneck),容易导致注意力矩阵退化。多头机制通过将维度 切分为 个子空间,允许模型在不同的流形空间中捕捉非相干特征(Incoherent Features)

2. Layer Normalization 与 MLP

ViT 采用 Pre-LN 结构,其数学意义在于保证残差分支(Residual Stream)的恒等映射在初始化阶段更接近单位矩阵,防止深层网络中的梯度消失或爆炸:

MLP 通常由两层线性层组成,扩展因子为 4,使用 GeLU 激活函数。其导数特性 时不完全为零,提供了比 ReLU 更平滑的优化曲面。


三、 训练细节与大规模预训练法则

1. JFT-300M 与数据饥渴

实证研究表明,当数据集规模 (如 ImageNet-1k)时,ViT 性能劣于 ResNet;但在 (JFT-300M)时,ViT 的表现开始展现出更强的缩放效应(Scaling Laws)。

2. 优化器与正则化

  • AdamW:针对权重衰减(Weight Decay)进行了修正,典型超参数为

  • DropPath (Stochastic Depth):在训练期间随机丢弃整个残差分支,防止深度 Transformer 的协同适应(Co-adaptation)。

  • 学习率衰减:通常采用线性预热(Warmup)配合余弦退火(Cosine Annealing)。

3. 分辨率微调中的位置编码插值

当微调分辨率从 提升至 时,原始 的序列长度不再匹配。此时需将 看作二维网格信号,利用双线性插值(Bilinear Interpolation)重采样:


四、 对接 Stable Diffusion:ViT 的衍生与应用

1. VAE 中的角色

在 Stable Diffusion (SD) 的变分自编码器中,尽管主体是 CNN,但在低分辨率的中等特征层(Bottleneck)通常嵌入了 Self-Attention。这利用了 Transformer 的长程依赖能力,确保生成图像在全局结构(如人体比例、对称性)上的逻辑一致性。

2. U-Net 中的 Transformer Block

SD 的 U-Net 实际上是卷积与 Transformer 的混合体:

  • Spatial Transformer:包含 Self-Attention(处理图像内部关联)和 Cross-Attention(处理文本 Prompt 与图像特征的对齐)。

  • 计算权衡

    | 维度 | Pixel-based (CNN) | Patch-based (ViT/Transformer) | |:---|:---|:---| | 归纳偏置 | 强(适合纹理生成) | 弱(适合全局语义对齐) | | 计算复杂度 | | | | 感受野 | 局部,受层数限制 | 全局,由注意力机制驱动 | | 平移不变性 | 通过卷积权值共享天然具备 | 需通过位置编码学习 | | 数据依赖 | 少量数据即可取得好效果 | 需要大规模数据( 级别) |

3. 从 ViT 到 DiT (Diffusion Transformer)

最新的生成模型(如 Sora, SD3)正在抛弃 U-Net,转向纯 DiT 架构。DiT 将潜在空间(Latent Space)的特征图完全 Patchify:

  1. 展平为 Tokens。

  2. 通过类似 ViT 的标准 Transformer Block 处理。

  3. 优势:Transformer 的 Scaling Law 比 U-Net 更稳定,更易于通过增加参数量获得涌现能力。


五、 潜在问题与工程坑点

  1. 计算复杂度瓶颈:Self-Attention 的显存占用随像素数 增长。高分辨率任务中,必须引入 FlashAttention(基于算子融合)或 Window Attention(如 Swin)来降低算力负担。

  2. 注意力坍缩(Attention Collapse):在极深层模型中,所有 Token 的注意力权重趋向一致(Query 和 Key 的点积分布变平坦)。解决方法包括引入 Re-Attention 或增加 Head 维度。

  3. 训练不稳定性:ViT 对初始化极其敏感。通常需要较长的 Warmup Steps(如总步数的 5%-10%)来让梯度在高频振荡期后进入稳定流形区域。


结论:ViT 的成功在于其数学架构的通用性。在扩散模型领域,它正在从辅助角色(U-Net 内部插件)演变为核心引擎(DiT),这标志着生成式 AI 正在从空间局部建模全面转向全局关系建模。