自学内容网 自学内容网

生成式 AI - Diffusion 模型的数学原理(2)

来自 论文《 Denoising Diffusion Probabilistic Model》(DDPM)
论文链接: https://arxiv.org/abs/2006.11239
Hung-yi Lee 课件整理

一、基本概念

Diffusion model的概念上一篇博客讲过了,很直观,一个Forward Process,是把噪声加到图片里面去,直到看不出原来的图长什么样子;和一个Reverse Process,它做Denoise,先给它一个全部都是噪声的图片,每次Denoise图像都会一点点浮现,直到最后完整的图像被生成。

二、VAE与Diffusion model

Diffusion model和VAE非常相似,VAE有一个Encoder把图像转换为latent representation,然后使用一个Decoder把这个latent representation还原成图片;Diffusion model 可以想象成加噪声的过程就是在做Encoder,只是这个Encoder不是一个神经网络,不是学习出来的,噪声加进去的过程是固定好的,它不需要学习,是人设计的,通过加噪声的过程把一张图片变成只有杂训的图片,看不出来里面有什么,这个只有杂训的图片就相当于VAE里面的latent representation,然后Denoise的过程就相当于VAE里面的Encoder,把都是杂训的图还原成原来的图。

三、算法解释

DDPM原始论文里面算法原理就是这样两个图,上一篇博客提到这里暗藏玄机,如果你仔细读一下这个算法似乎和上一篇博客讲的内容有些不一样,我们先来看看这个算法里面在做什么。

四、训练过程

先来看看训练的算法。
第一行,首先是做repeat,从第二行到第五行,直到converged为止。
第二行,代码讲的是,需要先sample一个样本X0,通常我们把X0当作干净的图。
第三行,sample一个t,从1到T之间sample一个整数出来,比如说T是1000,就是从1到1000sample一个整数出来,比如说980。
第四行, ε \varepsilon ε 是从一个标准分布中sample出来的,这个标准分布的均值是0,方差是I,这个 ε \varepsilon ε 的大小和图片的大小一样,它里面都是杂训,看不到有意义的信息。
第五行,比较复杂,红色框里面做的事情是把X0和 ε \varepsilon ε 做权重加权,这里的权重是事先定好的,从 α ˉ 1 \bar{\alpha } _{1} αˉ1 α ˉ T \bar{\alpha } _{T} αˉT,它的设置通常是由大到小。这样得到的就是一个有杂训的图,sample的T越大,那么 α \alpha α 就越小, α \alpha α 越小意味着原来的图X0占的比例越小,噪声占的比例越多。

红色方框再往外看是 ϵ θ {\epsilon } _{\theta } ϵθ, 它表示Noise Predictor,它的输入是带杂训的图片和t。

再往外看是学习目标 ϵ {\epsilon } ϵ, 就是我们sample出来的那个噪声。

到这里你会发现,想象中的操作和实际的操作不太一样,想象中是一步一步把噪声加进去的,实际上噪声的加入是通过 α ˉ t \bar{\alpha } _{t} αˉt决定那个噪音的严重程度,一次性加入的,直接混入噪音得到有噪音的图。

五、推理过程

再来看看产生图的过程。
先sample一张全部都是噪声的图。
接下来开始跑这个reverse process把图生成出来,一共要跑T次。
接下来又sample了一个噪声z,后续在细讲。
下面的公式要做的事情是什么呢, x t x_{t} xt是上一个步骤产生出来的图, ϵ θ ( x t , t ) \epsilon _{\theta} (x_{t},t ) ϵθxtt是noise predictor输出的图片,后面再加一个噪声,这个噪声Z又是一个玄机,后续解释。

如果这个式子没有看太懂的话看看下面的图演示帮助理解。


原文地址:https://blog.csdn.net/qq_30262201/article/details/136145372

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!