VIT、UVIT与DIT

VIT

原始论文: An Image is Worth 16x16 Words Transformers for Image Recognition at Scale

举例

通过例子便于理解:
输入图片大小为224x224,patch大小为16x16,channel为3
(1) patch embedding:输入图片大小为224x224,将图片分为固定大小的patch,patch大小为16x16,则每张图像会生成224x224/16x16=196个patch,即输入序列长度为196,每个patch维度16x16x3=768,线性投射层的维度为768x768,也就是等维度投影,因此输入通过线性投射层之后的维度依然为196x768。即一共有196个token,每个token的维度是768。
这里还需要加上一个特殊字符cls,可以当做结束字符,patch数量增加1,因此最终的维度是197x768。到目前为止,已经通过patch embedding将一个视觉问题转化为了一个seq2seq问题
(2) positional encoding(standard learnable 1D position embeddings):ViT同样需要加入位置编码,位置编码映射后维度和输入序列embedding的维度相同(768)。注意位置编码的操作是sum,而不是concat。加入位置编码信息之后,维度依然是197x768
(3) LN/multi-head attention/LN:LN输出维度依然是197x768。多头自注意力时,先将输入映射到q,k,v,如果只有一个头,qkv的维度都是197x768,如果有12个头(768/12=64),则qkv的维度是197x64,一共有12组qkv,最后再将12组qkv的输出拼接起来,输出维度是197x768,然后在过一层LN,维度依然是197x768
(4) MLP:将维度放大再缩小回去,197x768放大为197x3072,再缩小变为197x768
一个block之后维度依然和输入相同,都是197x768,因此可以堆叠多个block。最后会将特殊字符cls对应的输出  z L 0 z^0_L zL0作为encoder的最终输出 ,代表最终的image presentation(另一种做法是不加cls字符,对所有的tokens的输出做一个平均),如下图公式(4),后面接一个MLP进行图片分类

ViT 的核心结构与原理

ViT 的结构主要由以下几个部分组成:

  1. 图像切分(Patch Partitioning)
    • 将输入图像(例如大小为 224×224224×224 224 \times 224224×224 的 RGB 图像)划分为固定大小的小块(patch),例如 16×1616×16 16 \times 1616×16 像素的小块。
    • 每个小块被展平为一个一维向量,形成长度为 NN NN 的序列(N=总块数=(图像高度/块大小)2N=总块数=(图像高度/块大小)2 N = \text{总块数} = \text{(图像高度}/\text{块大小)}^2N=总块数=(图像高度/块大小)2)。
  2. 线性嵌入(Linear Projection of Patches)
    • 将每个 patch 的向量通过一个线性投影(如全连接层),映射到固定的嵌入维度 DD DD。
  3. 位置编码(Positional Encoding)
    • 因为 Transformer 本质上是无序的,所以需要为每个 patch 添加位置信息,确保模型知道各个 patch 的相对位置。
  4. Transformer 编码器(Transformer Encoder)
    • 使用标准的 Transformer 编码器架构,包括 多头自注意力机制(Multi-Head Self-Attention)和 前馈网络(Feedforward Network)。
    • 输入的 patch 序列通过多层 Transformer 编码器,学习全局的特征关系。
  5. 分类头(Classification Head)
    • 在所有的 patch 序列前添加一个特殊的 [CLS] Token,表示全局图像特征。
    • 最后将 [CLS] Token 的嵌入输出通过一个全连接层,用于分类任务
应用

图像分类:ViT 在 ImageNet 等图像分类任务上表现优异。
目标检测:结合 ViT 的框架如 DETR(基于 Transformer 的目标检测模型)已被广泛应用。
图像生成:在生成模型(如扩散模型)中,ViT 可作为特征提取模块。
跨模态学习:在多模态模型(如 CLIP)中,ViT 负责处理图像特征,与文本特征对齐。

UVIT

介绍

U-ViT(U-shaped Vision Transformer)是一种将 Vision Transformer(ViT)架构应用于扩散模型的创新设计。传统上,基于卷积神经网络(CNN)的 U-Net 在扩散模型中占据主导地位,而 U-ViT 则探索了使用 ViT 作为扩散模型骨干网络的可能性。
pape:All are Worth Words: A ViT Backbone for Diffusion Models
仓库:https://github.com/baofff/U-ViT
发表在2023年CVPR上

创新点
  • 将时间t,条件c,和图像patch视作token输入到Transformer block
  • 引入long skip connection

DIT

介绍

是与UVIT的同期工作
paper:Scalable Diffusion Models with Transformers
Diffusion Transformer (DiT) 是一种将 Transformer 架构应用于扩散模型的生成模型,旨在利用 Transformer 的自注意力机制来生成高质量的图像。传统的扩散模型通常采用基于卷积神经网络(CNN)的 U-Net 结构,而 DiT 则探索了使用 Vision Transformer(ViT)作为扩散模型骨干网络的可能性。

DiT 的核心特点:
  • Transformer 架构:DiT 使用 ViT 作为主干网络,将图像划分为固定大小的块(patch),并将其作为序列输入到 Transformer 中进行处理。
  • 条件输入处理:DiT 设计了多种处理条件输入的方法,包括 In-Context Conditioning、Cross-Attention、Adaptive Layer Norm(adaLN)等,以增强模型的生成能力。
  • 模型可扩展性:通过调整模型的深度、宽度和输入 token 的数量,DiT 展现出良好的可扩展性,能够在计算复杂度和生成质量之间取得平衡。


提出了使用ViT代替U-Net的思想,不同的是DiT中没有引入long skip connection也依然取得了杰出的效果。UVIT作者推测原因可能有:

  • DiT 出色的Adaptive layer norm以及零初始化的设计能够有效提升生成质量;
  • DiT 在建模特征空间表现良好,但在建模像素空间表现欠缺,可能在用扩散概率模型建模像素空间分布时long skip connection是至关重要的;
  • 即使在建模特征空间上,DiT 没有long skip connection也能取得很好的效果,但long skip connection在加速收敛方面也起着关键的作用,如下图所示:
    D a t a M o d e l P a r a m s ( M ) F l o p s ( G ) B a t c h S i z e T r a i n i n g I t e r a t i o n F i d I m a g e N e t 256 ( L a t e n t D i f f u s i o n ) U − V i T − H / 2 501 133 1024 50 k 2.29 I m a g e N e t 256 ( L a t e n t D i f f u s i o n ) D i T − X L / 2 675 118 256 700 k 2.27 \begin{array}{|c|c|c|c|c|c|c|} \hline Data & Model & Params(M) & Flops(G) & Batch Size & Training Iteration & Fid \\ \hline ImageNet256 (Latent Diffusion) & U-ViT-H/2 & 501 & 133 & 1024 & 50k & 2.29 \\ \hline ImageNet256 (Latent Diffusion) & DiT-XL/2 & 675 & 118 & 256 & 700k & 2.27 \\ \hline \end{array} DataImageNet256(LatentDiffusion)ImageNet256(LatentDiffusion)ModelUViTH/2DiTXL/2Params(M)501675Flops(G)133118BatchSize1024256TrainingIteration50k700kFid2.292.27
    相对来说,UVIT比DIT多做了跳接,两者侧重点不同

总结

特性Diffusion ModelViTDiTU-ViT
模型目标图像生成、修复、去噪图像分类、分割等任务扩散模型中的图像生成高分辨率图像生成和修复
主干架构通常是 U-Net标准 Transformer基于 ViT 的扩散模型ViT + U-Net 结构
特征建模局部特征为主全局特征建模全局特征建模全局与局部特征结合
条件处理时间步、类别标签等无条件强条件(文本嵌入等)强条件(多模态支持)
适用场景图像生成、修复、去噪图像分类、检测、分割条件和无条件图像生成多尺度生成、多模态生成
创新点基于去噪的生成过程引入 Transformer 替代 CNN在扩散模型中引入 ViT融合 ViT 和 U-Net 特性

参考

# 『论文精读』Vision Transformer(VIT)论文解读
# ViT(Vision Transformer)解析
# U-ViT: A ViT Backbone for Diffusion Models
# U-ViT(CVPR2023)——ViT与Difussion Model的结合
# 一文带你搞懂DiT(Diffusion Transformer)
扩散模型解读 (一):DiT 详细解读 - 知乎专栏

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值