问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

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

创作时间:
作者:
@小白创作中心

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

引用
CSDN
1.
https://blog.csdn.net/tMb8Z9Vdm66wH68VX1/article/details/134979539

Diffusion模型是当前图像生成领域的重要技术之一,其通过逐步添加和去除噪声来生成逼真的图像。本文将通过图解方式,帮助读者快速理解Diffusion模型的工作原理,包括文字生成图片的整体结构、CLIP模型生成文字embedding的过程、UNet网络的使用,以及Diffusion模型的训练过程等。

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

1.1 整个生成过程

在使用Diffusion模型生成图片时,需要将文字转换为模型可处理的输入形式。具体来说,Diffusion模型会使用Text Encoder生成文字对应的embedding(通常使用CLIP模型),然后将这个embedding与随机噪声embedding和time step embedding一起作为Diffusion模型的输入,最终生成理想的图片。

上图展示了完整的Diffusion生成过程:token embedding、随机噪声embedding、time embedding一起输入diffusion。

更详细的结构图如下:

可以看到中间的Image Information Creator是由多个UNet模型组合而成的。

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

CLIP模型是在图像及其描述的数据集上进行训练的。其训练过程可以简化为:首先分别使用图像和文本编码器对它们进行编码,然后使用余弦相似度来衡量是否匹配。通过在训练集上训练模型,最终得到文字的embedding和图片的embedding。

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

在UNet网络中,会在每个ResNet之间添加一个Attention模块,而Attention模块的一端输入便是文字embedding。

扩散模型Diffusion

2.1 扩散模型Diffusion的训练过程

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

  1. 前向扩散过程(Forward Diffusion Process):不断往输入图片中添加高斯噪声。
  2. 反向扩散过程(Reverse Diffusion Process):将噪声不断还原为原始图片。

2.2 前向扩散过程

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

2.3 反向扩散过程

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

2.4 训练过程

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

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

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

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

上图展示了从高斯噪声到最终清晰图片的反向扩散过程。

补充说明

补充1:UNet模型结构

UNet模型结构包含Downsample、Middle block和Upsample三个部分,其中每个部分都包含了ResNet残差网络。

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

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

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

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

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

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

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

在训练过程中,如果时间步长是递增的,那么必然会使得模型过多的关注较早的时间步长(因为早期loss大),而忽略了较晚的时间步长信息。因此,采用随机时间步长可以更均衡地优化模型在不同时间步长的表现。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号