Redian新闻
>
十分钟读懂Diffusion:图解Diffusion扩散模型

十分钟读懂Diffusion:图解Diffusion扩散模型

公众号新闻


©作者 | 绝密伏击
单位 | 奇虎360高级算法专家
在之前的文章中,我们曾经介绍过 Diffusion 的具体原理,但是讲的还是比较偏理论,为了让大家快速了解 Diffusion 原理,这篇文章我们通过图解的方式。

AIGC爆火的背后——扩散模型DDPM浅析:

https://zhuanlan.zhihu.com/p/590840909




Diffusion文字生成图片——整体结构

1.1 整个生成过程 

我们知道在使用 Diffusion 的时候,是通过文字生成图片,但是上一篇文章中讲的 Diffusion 模型输入只有随机高斯噪声和 time step。那么文字是怎么转换成 Diffusion 的输入的呢?加入文字后 Diffusion 又有哪些改变?下图可以找到答案。

▲ 文字生成图片全过程


实际上 Diffusion 是使用 Text Encoder 生成文字对应的 embedding(Text Encoder 使用 CLIP 模型),然后和随机噪声 embedding,time step embedding 一起作为 Diffusion 的输入,最后生成理想的图片。我们看一下完整的图:


▲ token embedding、随机噪声embedding、time embedding一起输入diffusion

上图我们看到了 Diffusion 的输入为 token embedding 和随机 embedding,time embedding 没有画出来。中间的 Image Information Creator 是由多个 UNet 模型组成,更详细的图如下:

▲ 更详细的结构
可以看到中间的 Image Information Creator 是由多个 UNet 组合而成的,关于 UNet 的结构我们放在后面来讲。现在我们了解了加入文字 embedding 后 Diffusion 的结构,那么文字的 embedding 是如何生成的?接下来我们介绍下如何使用 CLIP 模型生成文字 embedding。 

1.2 使用CLIP模型生成输入文字embedding 


CLIP 在图像及其描述的数据集上进行训练。想象一个看起来像这样的数据集,包含 4 亿张图片及其说明:



▲ 图像及其文字说明

实际上 CLIP 是根据从网络上抓取的图像及其文字说明进行训练的。CLIP 是图像编码器和文本编码器的组合,它的训练过程可以简化为给图片加上文字说明。首先分别使用图像和文本编码器对它们进行编码。




然后使用余弦相似度刻画是否匹配。最开始训练时,相似度会很低。



然后计算 loss,更新模型参数,得到新的图片 embedding 和文字 embedding。





通过在训练集上训练模型,最终得到文字的 embedding 和图片的 embedding。有关 CLIP 模型的细节,可以参考对应的论文:
https://arxiv.org/pdf/2103.00020.pdf

1.3 UNet网络中如何使用文字embedding


前面已经介绍了如何生成输入文字 embedding,那么 UNet 网络又是如何使用的?实际上是在 UNet 的每个 ResNet 之间添加一个 Attention,而 Attention 一端的输入便是文字 embedding。如下图所示。



更详细的图如下:





扩散模型Diffusion

前面介绍了 Diffusion 是如何根据输入文字生成图片的,让大家有个大概的了解,接下来会详细介绍扩散模型 Diffusion 是如何训练的,又是如何生成图片的。 

2.1 扩散模型Duffison的训练过程


▲ 扩散模型Diffusion

Diffusion 模型的训练可以分为两个部分: 

1. 前向扩散过程(Forward Diffusion Process)→图片中添加噪声;

2. 反向扩散过程(Reverse Diffusion Process)→去除图片中的噪声

2.2 前向扩散过程




前向扩散过程是不断往输入图片中添加高斯噪声。 


2.3 反向扩散过程



反向扩散过程是将噪声不断还原为原始图片。


2.4 训练过程


在每一轮的训练过程中,包含以下内容: 

1. 每一个训练样本选择一个随机时间步长 t
2. 将 time step 对应的高斯噪声应用到图片中
3. 将 time step 转化为对应 embedding 

下面是每一轮详细的训练过程:



2.5 从高斯噪声中生成原始图片(反向扩散过程)


上图的 Sample a Gaussian 表示生成随机高斯噪声,Iteratively denoise the image 表示反向扩散过程,如何一步步从高斯噪声变成输出图片。可以看到最终生成的 Denoised image 非常清晰。


补充1:UNet模型结构

前面已经介绍了 Diffusion 的整个过程,这里补充以下 UNet 的模型结构,如下图所示。



这里面 Downsampe、Middle block、Upsample 中都包含了 ResNet 残差网络。

补充2:Diffusion模型的缺点及改进版——Stable Diffusion

前面我们在介绍整个文字生成图片的架构中,图里面用的都是 Stable Diffusion,后面介绍又主要介绍的是 Diffusion。其实 Stable Diffusion 是 Diffusion 的改进版。 

Diffusion 的缺点是在反向扩散过程中需要把完整尺寸的图片输入到 U-Net,这使得当图片尺寸以及 time step t 足够大时,Diffusion 会非常的慢。Stable Diffusion 就是为了解决这一问题而提出的。后面有时间再介绍下 Stable Diffusion 是如何改进的。

补充3:UNet网络同时输入文字embedding

在第 2 节介绍 Diffusion 原理的时候,为了方便,都是没有把输入文字 embedding 加进来,只用了 time embedding 和随机高斯噪声,怎么把文字 embedding 也加进来可以参考前面的 1.3 节。

补充4:DDPM为什么要引入时间步长t

引入时间步长 t 是为了模拟一个随时间逐渐增强的扰动过程。每个时间步长 t 代表一个扰动过程,从初始状态开始,通过多次应用噪声来逐渐改变图像的分布。因此,较小的 t 代表较弱的噪声扰动,而较大的 t 代表更强的噪声扰动。 

这里还有一个原因,DDPM 中的 UNet 都是共享参数的,那如何根据不同的输入生成不同的输出,最后从一个完全的一个随机噪声变成一个有意义的图片,这还是一个非常难的问题。我们希望这个 UNet 模型在刚开始的反向过程之中,它可以先生成一些物体的大体轮廓,随着扩散模型一点一点往前走,然后到最后快生成逼真图像的时候,这时候希望它学习到高频的一些特征信息。由于 UNet 都是共享参数,这时候就需要 time embedding 去提醒这个模型,我们现在走到哪一步了,现在输出是想要粗糙一点的,还是细致一点的。 

所以加入时间步长 t 对生成和采样过程都有帮助。

补充5:为什么训练过程中每一次引入的是随机时间步长 t

我们知道模型在训练过程中 loss 会逐渐降低,越到后面 loss 的变化幅度越小。如果时间步长 是递增的,那么必然会使得模型过多的关注较早的时间步长(因为早期 loss 大),而忽略了较晚的时间步长信息。

参考文献


https://medium.com/@steinsfu/stable-diffusion-clearly-explained-ed008044e07e

http://jalammar.github.io/illustrated-stable-diffusion/

https://pub.towardsai.net/getting-started-with-stable-diffusion-f343639e4931

https://zhuanlan.zhihu.com/p/597924053

https://zhuanlan.zhihu.com/p/590840909?

https://arxiv.org/abs/2103.00020


更多阅读



#投 稿 通 道#

 让你的文字被更多人看到 



如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。


总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 


PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。


📝 稿件基本要求:

• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注 

• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题

• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算


📬 投稿通道:

• 投稿邮箱:[email protected] 

• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者

• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿


△长按添加PaperWeekly小编



🔍


现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧


·
·
·


微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
既是自编码器,也是RNN,DeepMind科学家八个视角剖析扩散模型第一百二十三章 老师一分钟读懂GMV公式【图解】构建更高水平全民健身公共服务体系!家门口的健身设施如何布局、全民健身赛事活动如何开展,一图读懂→CVPR 2023 | 多个扩散模型相互合作,新方法实现多模态人脸生成与编辑开源了!UniControl:可控视觉生成的统一扩散模型118页深度:图拆特斯拉Optimus——走进机器人文生图模型又“卷”起来了!比 Stable Diffusion 中文理解能力更强、更懂国人的文生图模型是如何构建的?《如意东方》&《西楼别序》你只管提需求,大模型解决问题:图表处理神器SheetCopilot上线免费领 | 画图解题,一学就会!《图解小学数学思维训练题》1~6年级论文插图也能自动生成了!用到了扩散模型,还被ICLR 2023接收!CVPR 2023 | Collaborative Diffusion 怎样让不同的扩散模型合作?【图解】一图读懂“创业团队孵化场地费补贴”(附热点问答)蛋白质侧链预测新方法DiffPack:扩散模型也能精准预测侧链构象!5069 血壮山河之武汉会战 黄广战役 1一句话生成 PPT,一分钟读懂外语论文,WPS AI 又进化了!Stable Diffusion一周年:这份扩散模型编年简史值得拥有文生图prompt不再又臭又长!LLM增强扩散模型,简单句就能生成高质量图像|ACM MM'23论文插图也能自动生成了,用到了扩散模型,还被ICLR接收基于扩散模型的音频驱动说话人生成,云从&上交数字人研究入选ICASSP 2023扩散模型「读脑术」,自动化所MindDiffuser清晰重建人脑视觉画面5分钟读懂:医生和生物人“从中国内地直接”申请美国绿卡,拒绝走冤枉路!【图解】一图读懂示范区文化和旅游发展专项规划扩散模型还能预测地震和犯罪?清华团队最新研究提出时空扩散点过程十分钟读懂旋转编码(RoPE)AlphaDev将排序算法提速70%!C语言库作者一文详解DeepMind最新AI土共国的骗子们都疯了?抓狂了?CVPR 2023论文总结!CV最热领域颁给多模态、扩散模型清华&腾讯提出DreamDiffusion:你大脑中的画面,可以高清还原了!视觉新任务!ReVersion:图像生成中的Relation定制化第一百二十四章 乡村剧团佛州少妇狠杀室友浑身血!竟想分解DNA!【图解】一图读懂《上海市吸引集聚企业研发机构推进研发产业化的实施意见》港大和微软提出Uni-ControlNet:可控制扩散模型再添一员!
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。