还是Transformers,来自 UC 伯克利的 William Peebles 以及纽约大学的谢赛宁撰文揭秘扩散模型中架构选择的意义,并为未来的生成模型研究提供经验基线。

近几年,在 Transformer 的推动下,机器学习正在经历复兴。过去五年中,用于自然语言处理、计算机视觉以及其他领域的神经架构在很大程度上已被 transformer 所占据。

不过还有许多图像级生成模型仍然不受这一趋势的影响,例如过去一年扩散模型在图像生成方面取得了惊人的成果,几乎所有这些模型都使用卷积 U-Net 作为主干。这有点令人惊讶!在过去的几年中,深度学习的大事件一直是跨领域的 Transformer 的主导地位。U-Net 或卷积是否有什么特别之处使它们在扩散模型中表现得如此出色?

将 U-Net 主干网络首次引入扩散模型的研究可追溯到 Ho 等人,这种设计模式继承了自回归生成模型 PixelCNN++,只是稍微进行了一些改动。而 PixelCNN++ 由卷积层组成,其包含许多的 ResNet 块。其与标准的 U-Net 相比,PixelCNN++ 附加的空间自注意力块成为 transformer 中的基本组件。不同于其他人的研究,Dhariwal 和 Nichol 等人消除了 U-Net 的几种架构选择,例如使用自适应归一化层为卷积层注入条件信息和通道计数。

本文中来自 UC 伯克利的 William Peebles 以及纽约大学的谢赛宁撰文《 Scalable Diffusion Models with Transformers 》,目标是揭开扩散模型中架构选择的意义,并为未来的生成模型研究提供经验基线。该研究表明,U-Net 归纳偏置对扩散模型的性能不是至关重要的,并且可以很容易地用标准设计(如 transformer)取代。

这一发现表明,扩散模型可以从架构统一趋势中受益,例如,扩散模型可以继承其他领域的最佳实践和训练方法,保留这些模型的可扩展性、鲁棒性和效率等有利特性。标准化架构也将为跨领域研究开辟新的可能性。

  • 论文地址:https://arxiv.org/pdf/2212.09748.pdf

  • 项目地址:https://github.com/facebookresearch/DiT

  • 论文主页:https://www.wpeebles.com/DiT

该研究专注于一类新的基于 Transformer 的扩散模型:Diffusion Transformers(简称 DiTs)。DiTs 遵循 Vision Transformers (ViTs) 的最佳实践,有一些小但重要的调整。DiT 已被证明比传统的卷积网络(例如 ResNet )具有更有效地扩展性。

具体而言,本文研究了 Transformer 在网络复杂度与样本质量方面的扩展行为。研究表明,通过在潜在扩散模型 (LDM) 框架下构建 DiT 设计空间并对其进行基准测试,其中扩散模型在 VAE 的潜在空间内进行训练,可以成功地用 transformer 替换 U-Net 主干。本文进一步表明 DiT 是扩散模型的可扩展架构:网络复杂性(由 Gflops 测量)与样本质量(由 FID 测量)之间存在很强的相关性。通过简单地扩展 DiT 并训练具有高容量主干(118.6 Gflops)的 LDM,可以在类条件 256 × 256 ImageNet 生成基准上实现 2.27 FID 的最新结果。

Diffusion Transformers

DiTs 是一种用于扩散模型的新架构,目标是尽可能忠实于标准 transformer 架构,以保留其可扩展性。DiT 保留了 ViT 的许多最佳实践,图 3 显示了完整 DiT 体系架构。

DiT 的输入为空间表示 z(对于 256 × 256 × 3 图像,z 的形状为 32 × 32 × 4)。DiT 的第一层是 patchify,该层通过将每个 patch 线性嵌入到输入中,以此将空间输入转换为一个 T token 序列。patchify 之后,本文将标准的基于 ViT 频率的位置嵌入应用于所有输入 token。

patchify 创建的 token T 的数量由 patch 大小超参数 p 决定。如图 4 所示,将 p 减半将使 T 翻四倍,因此至少能使 transformer Gflops 翻四倍。本文将 p = 2,4,8 添加到 DiT 设计空间。

DiT 块设计:在 patchify 之后,输入 token 由一系列 transformer 块处理。除了噪声图像输入之外,扩散模型有时还会处理额外的条件信息,例如噪声时间步长 t、类标签 c、自然语言等。本文探索了四种以不同方式处理条件输入的 transformer 块变体。这些设计对标准 ViT 块设计进行了微小但重要的修改。所有模块的设计如图 3 所示。

本文尝试了四种因模型深度和宽度而异的配置:DiT-S、DiT-B、DiT-L 和 DiT-XL。这些模型配置范围从 33M 到 675M 参数,Gflops 从 0.4 到 119 。

实验

研究者训练了四个最高 Gflop 的 DiT-XL/2 模型,每个模型使用不同的 block 设计 ——in-context(119.4Gflops)、cross-attention(137.6Gflops)、adaptive layer norm(adaLN,118.6Gflops)或 adaLN-zero(118.6Gflops)。然后在训练过程中测量 FID,图 5 为结果。

扩展模型大小和 patch 大小。图 2(左)给出了每个模型的 Gflops 和它们在 400K 训练迭代时的 FID 概况。可以发现,增加模型大小和减少 patch 大小会对扩散模型产生相当大的改进。

 图 6(顶部)展示了 FID 是如何随着模型大小的增加和 patch 大小保持不变而变化的。在四种设置中,通过使 Transformer 更深、更宽,训练的所有阶段都获得了 FID 的明显提升。同样,图 6(底部)展示了 patch 大小减少和模型大小保持不变时的 FID。研究者再次观察到,在整个训练过程中,通过简单地扩大 DiT 处理的 token 数量,并保持参数的大致固定,FID 会得到相当大的改善。

 图 8 中展示了 FID-50K 在 400K 训练步数下与模型 Gflops 的对比:

SOTA 扩散模型 256×256 ImageNet。在对扩展分析之后,研究者继续训练最高 Gflop 模型 DiT-XL/2,步数为 7M。图 1 展示了该模型的样本,并与类别条件生成 SOTA 模型进行比较,表 2 中展示了结果。

当使用无分类器指导时,DiT-XL/2 优于之前所有的扩散模型,将之前由 LDM 实现的 3.60 的最佳 FID-50K 降至 2.27。如图 2(右)所示,相对于 LDM-4(103.6 Gflops)这样的潜在空间 U-Net 模型来说,DiT-XL/2(118.6 Gflops)计算效率高得多,也比 ADM(1120 Gflops)或 ADM-U(742 Gflops)这样的像素空间 U-Net 模型效率高很多。

表 3 展示了与 SOTA 方法的比较。XL/2 在这一分辨率下再次胜过之前的所有扩散模型,将 ADM 之前取得的 3.85 的最佳 FID 提高到 3.04。

whaosoft aiot http://143ai.com

Transformers18~ Diffusion相关推荐

  1. 论文笔记(A Neural Influence Diffusion Model for Social Recommendation)

    神经影响传播模型为了社交推荐 原文链接:A Neural Influence Diffusion Model for Social Recommendation, SIGIR'19 原理:社交网络上应 ...

  2. A Concise and Provably Informative Multi-Scale Signature Based on Heat Diffusion

    这篇文章有很多理论基础我没有看懂, 感兴趣的同学请参考HSU02这本书 1) 先说figure 1, 曲线图是描述不同时间段, scaled HKS的值, 最开始1,2,3,4这四点相同, 因为这时还 ...

  3. average diffusion distance

    average diffusion distance(ADD) 定义见: [1] 说明见: [2] 主要代码: % test for farthest point sampling on 3D mes ...

  4. Fast marching on 3D meshes with diffusion distance

    与fast marching on 3D meshes with euclidian distance 不同(http://blog.csdn.net/seamanj/article/details/ ...

  5. 2022年11月100篇 diffusion models 扩散模型 汇总!

    在生成图像方面,自从NIPS 2014的一篇开山之作: Generative Adversarial Nets 论文:https://proceedings.neurips.cc/paper/2014 ...

  6. Diffusion Models和GANs结合

    Diffusion Models专栏文章汇总:入门与实战 前言:作为Diffusion Models最成功的前辈们:flow based models.VAEs.GANs,最近几个月已经有不少将dif ...

  7. 详细解读Latent Diffusion Models:原理和代码

    Diffusion Models专栏文章汇总:入门与实战 前言:CVPR 2022中的一项新工作latent diffusion models引起了广泛关注,提出了两段式diffusion model ...

  8. 扩散模型(Diffusion Model)——由浅入深的理解

    Diffusion Model--由浅入深的理解 概览 扩散过程 逆扩散过程 损失函数 总结 参考 Diffusion model 是一种图片生成的范式,大量的数学公式让许多同学望而却步,但实际研究下 ...

  9. 【论文简读】Diffusion Kernel Attention Network for Brain Disorder Classification用于脑疾病分类的扩散核注意力网络

    期刊:MIA 2022 early accept 作者:Jianjia Zhang, Luping Zhou, Lei Wang, Mengting Liu and Dinggang Shen 摘要 ...

最新文章

  1. android 8.0 ,9.0 静态广播不显示问题处理
  2. [React Native Android安利系列]搭建React Native Android环境
  3. query判断值是否为空,针对前台提交数据的校验
  4. 阿里面试题Linux curl命令详解
  5. IdentityServer4 第三方快速入门和示例
  6. 判断对象属性值是否为空
  7. python火柴人打架代码_python火柴人
  8. BBAug: 一个用于PyTorch的物体检测包围框数据增强包
  9. 一个500强公司的数据化运营管理实践
  10. oracle 判断为空赋一个值_求高手帮忙,oracle查出的值为null,怎么赋初始值?
  11. vue web在线聊天功能实现
  12. lvgl v8之Styling the scrollbars
  13. Java多线程系列--【JUC集合02】- CopyOnWriteArrayList
  14. 自己搭建无线音乐服务器,建立自己的音乐库 Aurender ACS10 音乐服务器
  15. vue结合高德地图V2.0(JSAPI key搭配代理服务器并携带安全密钥转发)
  16. python颜色参数palette_数据可视化Seaborn从零开始学习教程(二) 颜色调控篇
  17. 荣耀30青春版体验 拍照你不知道的小秘密有很多
  18. 假如你来发明编程语言
  19. DBeaver显示Unknown database错误
  20. 道指mt4代码_MT4产品代码

热门文章

  1. 2010年天灾预测年度报告简表
  2. 通过经纬度坐标计算距离的方法(实为通过一个经纬度和距离角度求另一个经纬度)
  3. Python二维数组赋值问题
  4. The order of a Tree(模拟BST的建树和访问)
  5. linux mint wifi自动重试_涵盖物联网应用系统低成本WiFi通信模块:4GLTE转WiFi网口DTU串口数据透传APSTA模式等...
  6. html单选按钮字段颜色设置,如何更改单选按钮的颜色?
  7. bootstrap分页插件php,bootstrap paginator分页插件使用方法
  8. 如何在Word中划横线
  9. 老人机侧键keypad流程
  10. C语言 htons函数