Diffusion开篇

加噪声(正态,或者标准正态)每个时刻都加一个噪声-标签

故事就是

从x0到xn 递归--有点像RNn

 z是一个噪音

我先看了这个介绍

Diffusion Models:生成扩散模型 (yinglinzheng.netlify.app)

dd 

Diffusion Models 的灵感来自non-equilibrium thermodynamics (非平衡热力学)。理论首先定义扩散步骤的马尔可夫链,以缓慢地将随机噪声添加到数据中,然后学习逆向扩散过程以从噪声中构造所需的数据样本。与 VAE 或流模型不同,扩散模型是通过固定过程学习,并且隐空间 z 具有比较高的维度。


More often than not, data is compressed in machine learning to learn important information about data points. Let me explain with an example.

隐空间

留下有用的(可能是在高维空间-不一定是二三维,可能原来是十四D,现在降低到4D),为了寻找某种特征,所以降维度,留下那些重要的东西,这一步骤是深度学习的核心步骤。也就是更注重与学习本身的目的

潜在空间中更容易地发现模式,因为相似的数据点往往会聚集在一起,但我们还没有看到如何从这个潜在空间中采样点以生成“新”数据

在上面的例子中,我们可以通过对潜在空间进行插值来生成不同的面部结构,并使用我们的模型解码器将潜在空间表示重建为与我们的原始输入具有相同尺寸的2D图像。

可以看看插值 

 interpolate 

必应翻译

关键要点 潜在空间只是压缩数据的表示形式,其中相似的数据点在空间中更近。 潜在空间对于学习数据特征和查找更简单的数据表示以进行分析非常有用。 我们可以通过分析潜在空间中的数据来理解数据点之间的模式或结构相似性,无论是通过流形,聚类等。 我们可以在潜在空间中插值数据,并使用模型的解码器来“生成”数据样本。 我们可以使用t-SNE和LLE等算法可视化潜在空间,这些算法采用我们的潜在空间表示并将其转换为2D或3D。 在了解潜在空间时,我对这个“隐藏”但必不可少的概念着迷。我希望这篇文章揭开了潜在空间表示的神秘面纱,并提供了我作为新手所渴望的对深度学习的“更深入理解”。


总的来看,Diffusion Models 领域正处于一个百花齐放的状态,这个领域有一点像 GAN 刚提出来的时候,目前的训练技术让 Diffusion Models 直接跨越了 GAN 领域调模型的阶段,直接可以用来做下游任务。

生成式模型本质上是一组概率分布。如下图所示,左边是一个训练数据集,里面所有的数据都是从某个数据pdata中独立同分布取出的随机样本。右边就是其生成式模型(概率分布),在这种概率分布中,找出一个分布pθ使得它离pdata的距离最近。接着在pθ上采新的样本,可以获得源源不断的新数据。

但是往往pdata的形式是非常复杂的,而且图像的维度很高,我们很难遍历整个空间,同时我们能观测到的数据样本也有限。

Diffusion做的是什么事呢?

我们可以将任意分布,当然也包括我们感兴趣的pdata,不断加噪声,使得他最终变成一个纯噪声分布N(0,I)。怎么理解呢?

从概率分布的角度来看,考虑下图瑞士卷形状的二维联合概率分布p(x,y),扩散过程q非常直观,本来集中有序的样本点,受到噪声的扰动,向外扩散,最终变成一个完全无序的噪声分布。

而diffusion model其实是图上的这个逆过程p,将一个噪声分布N(0,I)逐步地去噪以映射到pdata,有了这样的映射,我们从噪声分布中采样,最终可以得到一张想要的图像,也就是可以做生成了。

从单个图像样本来看这个过程,扩散过程q就是不断往图像上加噪声直到图像变成一个纯噪声,逆扩散过程p就是从纯噪声生成一张图像的过程。

Diffusion Models 既然叫生成模型,这意味着 Diffusion Models 用于生成与训练数据相似的数据。从根本上说,Diffusion Models 的工作原理,是通过连续添加高斯噪声来破坏训练数据,然后通过反转这个噪声过程,来学习恢复数据。

训练后,可以使用 Diffusion Models 将随机采样的噪声传入模型中,通过学习去噪过程来生成数据。也就是下面图中所对应的基本原理,不过这里面的图仍然有点粗。

更具体地说,扩散模型是一种隐变量模型(latent variable model),使用马尔可夫链(Markov Chain, MC)映射到 latent space。通过马尔可夫链,在每一个时间步 t 中逐渐将噪声添加到数据 xi 中以获得后验概率 q(x1:T∣x0) ,其中 x1,…,xT 代表输入的数据同时也是 latent space。也就是说 Diffusion Models 的 latent space与输入数据具有相同维度。

最终,从 x0 输入的真实图像,经过 Diffusion Models 后被渐近变换为纯高斯噪声的图片 xT 。

模型训练主要集中在逆扩散过程。训练扩散模型的目标是,学习正向的反过程:即训练概率分布 pθ(xt−1∣xt)。通过沿着马尔可夫链向后遍历,可以重新生成新的数据 x0 。

读到这里就有点意思啦,Diffusion Models 跟 GAN 或者 VAE 的最大区别在于不是通过一个模型来进行生成的,而是基于马尔可夫链,通过学习噪声来生成数据。

除了生成很好玩的高质量图片之外呢,Diffusion Models 还具有许多其他好处,其中最重要的是训练过程中没有对抗了,对于 GAN 网络模型来说,对抗性训练其实是很不好调试的,因为对抗训练过程互相博弈的两个模型,对我们来说是个黑盒子。另外在训练效率方面,扩散模型还具有可扩展性和可并行性,那这里面如何加速训练过程,如何添加更多数学规则和约束,扩展到语音、文本、三维领域就很好玩了,可以出很多新文章。

Diffusion 前向过程(扩散过程)

给定真实图片样本 x0∼q(x) ,diffusion 前向过程通过 T次累计对其添加高斯噪声,得到 x1,x2,...,xT,如下图的 q 过程。每一步的大小是由一系列的高斯分布方差的超参数 {βt∈(0,1)}t=1T来控制的。 前向过程由于每个时刻 t 只与 t−1时刻有关,所以也可以看做马尔科夫过程:

(1)q(xt|xt−1)=N(xt;1−βtxt−1,βtI),q(x1:T|x0)=∏t=1Tq(xt|xt−1). 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Top X AIRT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值