15、Scalable Diffusion Models with Transformers

简介

官网
在这里插入图片描述
DiT(Diffusuion Transformer)将扩散模型的 UNet backbone 换成 Transformer,并且发现通过增加 Transformer 的深度/宽度或增加输入令牌数量,具有较高 Gflops 的 DiT 始终具有较低的 FID(~2.27),这样说明 DiT 是可扩展的(Scalable),网络复杂度(以 Gflops 度量)与样本质量(以 FID 度量)之间存在强相关性。

在这里插入图片描述

实现流程

在这里插入图片描述

Patchify

对于 256 × 256 × 3 256 \times256\times3 256×256×3 的图片, 中间特征 z 的维度是 32 × 32 × 4 32\times32\times4 32×32×4。DiT 的第1步和 ViT 一样,都是把图片 Patchify,并经过 Linear Embedding,最终变为 T 个 d 维的 tokens。在 Patchify 之后,将标准的基于 ViT 频率的位置编码 (sine-cosine 版本) 应用到所有的输入 tokens 上面。token T 的数量由 Patch 的大小 p 决定。Patch 的大小 p 和 token 的数量 T 之间满足 T = ( I / p ) 2 T=(I/p)^2 T=(I/p)2 的关系。当 Patch 的大小 p 越小时,token 的数量 T 越大。减半 p 将会使 T 变为4倍,使得计算量也变为4倍。尽管 p 对 GFLOPs 有显著的影响,但参数量没有很实质的影响。
在这里插入图片描述
在 DiT design space 里面使用 p = 2 , 4 , 8 p=2,4,8 p=2,4,8

DiT block design

在patchify之后,输入令牌由一系列转换器块处理。除了带噪声的图像输入,扩散模型有时还处理附加的条件信息,如噪声时间步长 t、类标签 c、自然语言等。

作者探索了4种不同类型的 Transformer Block,以不同的方式处理条件输入。这些设计都对标准 ViT Block 进行了微小的修改。

In-context conditioning

在这里插入图片描述
像这样的带条件输入的情况,In-context conditioning 的做法只需要将时间步长 t , 类标签 c 作为2个额外的 token 附加到输入的序列中。作者将它们视为与图像的 token 没有任何区别。这就有点类似于 ViT 的 [CLS] token。这就允许 DiT 使用标准的 ViT Block 而不用任何修改。经过了最后一个 Block 之后,删除条件 token 就行。这种方式带来的额外 GFLOPs 微不足道。

Cross-attention block

在这里插入图片描述
Cross-attention block 的做法是将 t和 c 的 Embedding 连接成一个长度为2的 Sequence,且与 image token 序列分开。这种方法给 Transformer Block 添加一个 Cross-Attention 块。这个操作带来的额外 GFLOPs 开销是大约 15%。

Adaptive layer norm (adaLN) block.

Adaptive Layer Norm (adaLN) Block 遵循 GAN[15]中的自适应归一化层,希望探索这个东西在扩散模型里面好不好用。没有直接学习缩放和移位参数 γ \gamma γ β \beta β ,而是改用噪声时间步长 t 和类标签 c 得到。adaLN 带来的额外的 GFLOPs 是最少的,因此计算效率最高。它也是唯一一种限制于将相同函数应用于所有令牌的条件调节机制

这里补充一些知识,归一化的一般公式是: z ˉ = z − μ σ 2 + ϵ ⊙ γ + β \bar{z} = \frac{z-\mu}{\sqrt{\sigma^2+\epsilon} }\odot \gamma + \beta zˉ=σ2+ϵ zμγ+β ,其中 z 是激活值, μ , σ 2 \mu,\sigma^2 μ,σ2 是根据激活值按照某个规则(如 BatchNorm、LayerNorm、GroupNorm等)计算出来的均值和方差。 γ , β \gamma,\beta γ,β 是两个可学习的参数。

主要是由于自适应归一化层(adaptive normalization layers)在 GAN 和 UNet backbone 中的广泛使用(归一化的参数(如均值和方差)是根据当前批次的数据或特定层的激活值计算得出的。而在自适应归一化层中,这些参数可能会根据另一组数据(如风格图像)进行调整,以实现特定的效果),考虑将 Transformer 块中的 standard layer norm layers 替换成 adaptive layer norm (adaLN)。不同的是,对于其中的 scale and shift parameters 即 γ , β \gamma,\beta γ,β ,并不是直接学习它们,而是从
t 和 c 的 embedding vector 的和去回归这两个参数。

adaLN-Zero block

在这里插入图片描述
在有监督学习中,对每个 Block 的第一个 Batch Norm 操作的缩放因子进行 Zero-Initialization 可以加速其大规模训练。基于 U-Net 的扩散模型使用类似的初始化策略,对每个 Block 的第一个卷积进行 Zero-Initialization。本文作者作了一些改进:除了回归计算缩放和移位参数 γ \gamma γ β \beta β 之外,还回归缩放系数 α \alpha α

作者初始化 MLP 使其输出的缩放系数 α \alpha α 全部为0,这样一来,DiT Block 就初始化为了 Identity Function。adaLN-Zero Block 带来的额外的 GFLOPs 可以忽略不计。

Transformer Decoder

在最后一个 DiT Block 之后,需要将 image tokens 的序列解码为输出噪声以及对角的协方差矩阵的预测结果。

而且,这两个输出的形状都与原始的空间输入一致。作者在这个环节使用标准的线性解码器,将每个 token 线性解码为 P × P × 2 C P\times P \times 2C P×P×2C 的张量,其中 C 是空间输入中到 DiT 的通道数。最后将解码的 tokens 重新排列到其原始空间布局中,得到预测的噪声和协方差。

模型尺寸

遵循 ViT 的做法,作者在缩放 DiT 时也是从下面几个维度进行考虑:深度 N ,hidden dimension d,head 数量。作者设计出4种不同尺寸的 DiT 模型 DiT-S, DiT-B, DiT-L 和 DiT-XL,从 0.3 到 118.6 GFLOPs,详细信息如下图所示。
在这里插入图片描述

实验

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/516253.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

springJPA如果利用注解的方式 进行多表关联操作

前言:上一篇我写了个用JPA的Specification这个接口怎么做条件查询并且进行分页的,想学的自己去找一下 地址:springJPA动态分页 今天我们来写个 利用jpa的Query注解实现多表联合查询的demo 注意: 不建议在实际项目中用这玩意. 因为: 1. 用Query写的sql 可读性极差,给后期维护这…

六角螺母缺陷分类数据集:3440张图像

六角螺母缺陷数据集:包含变形,划痕,断裂,生锈,以及优质螺母图片数据,共计3440张,无标注 一.变形螺母-1839 二.断裂螺母-287 三.划痕螺母-473 四.生锈螺母-529 五.优良螺母-312 适用于CV项目&am…

法律行业案例法模型出现,OPenAI公布与法律AI公司Harvey合作案例

Harvey与OpenAl合作,为法律专业人士构建了一个定制训练的案例法模型。该模型是具有复杂推理广泛领域知识以及超越单一模型调用能力的任务的AI系统,如起草法律文件、回答复杂诉讼场景问题以及识别数百份合同之间的重大差异。 Harvey公司由具有反垄断和证…

阿里云服务器199元一年,ECS u1实例性能测评

阿里云服务器ECS u1实例,2核4G,5M固定带宽,80G ESSD Entry盘优惠价格199元一年,性能很不错,CPU采用Intel Xeon Platinum可扩展处理器,购买限制条件为企业客户专享,实名认证信息是企业用户即可&a…

树莓派部署yolov5实现目标检测(ubuntu22.04.3)

最近两天搞了一下树莓派部署yolov5,有点难搞(这个东西有点老,版本冲突有些包废弃了等等) 最后换到ubuntu系统弄了,下面是我的整体步骤: 1.烧完ubuntu镜像后,接显示器按系统流程进行系统部署(大于…

win10+Intel显卡安装配置stable-diffusion-webui绘画网页

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目…

精准扶贫管理系统|基于Springboot的精准扶贫管理系统设计与实现(源码+数据库+文档)

精准扶贫管理系统目录 目录 基于Springboot的精准扶贫管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、管理员模块的实现 (1)用户信息管理 (2)贫困户信息管理 (3)新闻类型管理 &a…

openGauss学习笔记-256 openGauss性能调优-使用Plan Hint进行调优-优化器GUC参数的Hint

文章目录 openGauss学习笔记-256 openGauss性能调优-使用Plan Hint进行调优-优化器GUC参数的Hint256.1 功能描述256.2 语法格式256.3 参数说明 openGauss学习笔记-256 openGauss性能调优-使用Plan Hint进行调优-优化器GUC参数的Hint 256.1 功能描述 设置本次查询执行内生效的…

程序员沟通之道:TCP与UDP之辩,窥见有效沟通的重要性(day19)

程序员沟通的重要性: 今天被师父骂了一顿,说我不及时回复他,连最起码的有效沟通都做不到怎么当好一个程序员,想想还挺有道理,程序员需要知道用户到底有哪些需求,用户与程序员之间的有效沟通就起到了关键性作…

图DP

目录 有向无环图DP 力扣 329. 矩阵中的最长递增路径 力扣 2192. 有向无环图中一个节点的所有祖先 有向有环图DP 力扣 1306. 跳跃游戏 III 有向无环图DP 力扣 329. 矩阵中的最长递增路径 给定一个 m x n 整数矩阵 matrix ,找出其中 最长递增路径 的长度。 对…

Golang | Leetcode Golang题解之第3题无重复字符的最长子串

题目: 题解: func lengthOfLongestSubstring(s string) int {// 哈希集合,记录每个字符是否出现过m : map[byte]int{}n : len(s)// 右指针,初始值为 -1,相当于我们在字符串的左边界的左侧,还没有开始移动r…

50道Java经典面试题总结

1、那么请谈谈 AQS 框架是怎么回事儿? (1)AQS 是 AbstractQueuedSynchronizer 的缩写,它提供了一个 FIFO 队列,可以看成是一个实现同步锁的核心组件。 AQS 是一个抽象类,主要通过继承的方式来使用&#x…

Linux系统——网络管理

此文章以红帽Linux9版本为例进行讲解。 红帽Linux9版本的网络管理十分全面,可在多处进行网络配置的修改,但需要注意的是,在9版本内,用户可在配置文件内进行网络配置的修改,但系统不会执行修改的命令,而在9之…

C语言中的结构体:高级特性与扩展应用

前言 结构体在C语言中的应用不仅限于基本的定义和使用,还包含一些高级特性和扩展应用,这些特性和应用使得结构体在编程中发挥着更加重要的作用。 一、位字段(Bit-fields) 在结构体中,我们可以使用位字段来定义成员…

小林coding图解计算机网络|基础篇01|TCP/IP网络模型有哪几层?

小林coding网站通道:入口 本篇文章摘抄应付面试的重点内容,详细内容还请移步: 文章目录 应用层(Application Layer)传输层(Transport Layer)TCP段(TCP Segment) 网络层(Internet Layer)IP协议的寻址能力IP协议的路由能力 数据链路层(Link Lay…

Hadoop Yarn

首先先从Yarn开始讲起,Yarn是Hadoop架构的资源管理器,可以管理mapreduce程序的资源分配和任务调度。 Yarn主要有ResourceManager、NodeManage、ApplicationMaster,Container ResourceMange负责管理全局的资源 NodeManage(NM&a…

阿里云2核2G服务器99元1年,3M固定带宽

阿里云服务器99元一年配置为云服务器ECS经济型e实例,2核2G配置、3M固定带宽和40G ESSD Entry系统盘,新用户和老用户均可买,续费不涨价依旧是99元一年,阿里云服务器网aliyunfuwuqi.com来详细说下阿里云99元服务器性能测评&#xff…

【学习】渗透测试有哪些重要性

随着信息技术的迅猛发展,网络安全问题日益凸显。渗透测试作为网络安全防御的重要手段之一,旨在模拟黑客攻击,发现并修复潜在的安全漏洞,提高网络系统的安全性。本文将介绍渗透测试的概念、重要性、实施步骤及实践案例,…

报错 | 2023新版IDEA/PyCharm连接远程服务器的Docker需使用密钥认证

文章目录 01 问题情景02 需求场景及工作原理03 解决步骤3.1 在本地生成密钥对3.2 将公钥保存至服务器3.3 本地连接时选择私钥文件 网上有很多文章讲怎么解决,但都要么写得很复杂,要么没有写明白原理或操作详情,造成我一头雾水。 01 问题情景…

NOIP2014提高组D1T2:联合权值

题目链接 NOIP2014提高组D1T2:联合权值 题目描述 无向连通图 G G G 有 n n n 个点, n − 1 n-1 n−1 条边。点从 1 1 1 到 n n n 依次编号,编号为 i i i 的点的权值为 W i W_i Wi​,每条边的长度均为 1 1 1。图上两点 ( u , v ) (…