趋近智
Transformer模型的基础是处理标记 (token)序列,能有效地建立一维结构中元素间的关联。这与图像的网格状、二维(或更高维)性质形成鲜明对比,卷积神经网络 (neural network)(CNN)因其对局部性和空间层级的固有归纳偏置 (bias),在这种数据上自然表现好。要在扩散模型中把Transformer自注意力 (self-attention)机制 (attention mechanism)的优点施加于图像数据,我们首先需要一种方式将图像表示成Transformer能处理的序列。目前主流的做法直接借鉴了使Transformer在视觉任务中普及的架构:Vision Transformer (ViT)。
主要做法是将输入图像划分为更小、不重叠的图像块网格。可以想象把一张图像裁剪成一系列正方形瓦片。每个瓦片,或称图像块,随后被视为输入到Transformer序列中的一个“标记 (token)”。
我们以输入图像 为例,其中 是高度, 是宽度, 是通道数(例如,RGB图像为3)。我们将此图像分成 个大小为 的图像块。图像块的总数是 ,这里假定 和 都能被 整除。
每个图像块随后都被展平为一个向量 (vector)。单个图像块最初的维度是 ,因此其展平后的表示将是一个长度为 的向量。
这些展平后的图像块向量 (vector),虽然是序列形式,但维度通常非常高 ()。更重要的是,它们可能不处于一个对Transformer自注意力 (self-attention)机制 (attention mechanism)学习关联有利的表示空间。因此,每个展平后的图像块向量都被线性投影到一个较低维度的嵌入空间,通常以维度 表示。这通过一个可学习的线性投影矩阵(一个嵌入层)实现:
其中 是可学习的权重 (weight)矩阵, 是偏置 (bias)项。经过此投影后,我们的图像被表示为 个向量的序列,每个向量维度为 。这个序列,,其中每个 ,现在是适合输入标准Transformer架构的格式。
将图像转换为可用于Transformer处理的图像块嵌入序列的步骤。
标准的Transformer架构具有置换不变性;如果打乱输入序列,其输出(在不考虑原始位置时)会仅根据打乱后的内容而非原始顺序进行可预测的改变。然而,图像中图像块的空间排列是重要信息。左上角的图像块所包含的上下文 (context)信息与中心图像块的不同。
为了让Transformer获得这种重要的空间感知,位置嵌入被加入到图像块嵌入中。这些位置嵌入是与图像块嵌入具有相同维度 的向量 (vector)。通常,网格中每个图像块的可能位置都会学习一个独特的位置嵌入向量。在将序列输入到第一个Transformer块之前,对应的位置嵌入会逐元素地添加到每个图像块嵌入中:
其中 是第 个图像块的嵌入, 是对应于第 个图像块空间位置的位置嵌入。这些位置嵌入 通常随机初始化,并在训练期间与模型的其余部分一起学习。还有其他一些做法,例如使用固定的正弦位置嵌入,这类似于原始Transformer论文中使用的那些,有时也会针对二维情况进行修改。
图像块划分、展平、线性投影以及添加位置嵌入 (embedding)的整个过程,是Vision Transformer (ViT) 模型定义的标准输入处理流程。ViT表明,纯Transformer架构在以这种方式处理图像数据后,能在图像分类任务上获得当前最佳成果,动摇了CNN在该领域的主导。
接下来我们将研究Diffusion Transformers (DiTs),它直接采用了这种ViT风格的输入处理。DiTs不是将图像块序列输入Transformer进行分类,而是将Transformer作为扩散框架中的骨干网络,以预测噪声(或原始图像)。在扩散环境中,此过程的输入通常是在给定时间步 的带噪声图像 。由此产生的、已包含空间信息的处理后图像块嵌入序列,作为后续Transformer块的输入,这些块负责去噪这项主要工作。时间和条件信息也会被包含进来,我们将在稍后说明。
这种调整有效地将图像生成问题变为Transformer可解决的序列建模问题,借助于Transformer在捕捉图像不同部分(图像块)之间全局关联方面的优点。
这部分内容有帮助吗?
© 2026 ApX Machine LearningAI伦理与透明度•