ddpm和ddim小记

  前面分析了DDPM和DDIM,但是仍然感觉对其理解不是和透彻,最近又学习了下,简单记录一下进一步的理解。为了方便理解,这里直接以两个像素的灰度图像为例。前面讲过无论是DDPM还是DDIM,他们的训练过程都是一样的,都遵循下面的这个公式:
x t = α t ˉ x 0 + 1 − α t ˉ ϵ x_t = \sqrt{\bar{\alpha_t}}x_0+\sqrt{1-\bar{\alpha_t}}\epsilon xt=αtˉ x0+1αtˉ ϵ
  但是在采样的时候有些不同,DDPM是遵循马尔科夫性质的,DDIM是直接一步到位。因此DDIM的采样过程要远远快于DDPM,而DDPM的多样性要好于DDIM。
  我们先以采样为例,假设采样的两像素都服从正态分布(为什么是假设为高斯分布而不是均值分布或者其他的分布呢?因为我们再扩散模型采样的时候就是直接从高斯随机噪声中采样得到的,这些噪声点就是服从高斯分布的,所以这里直接以高斯分布举例子。其实我觉得换成其他的分布也可以,只不过正态分布式在自然界中是最常见的,DDPM采样的核心其实就是通过不断堆叠多个的正态分布来模拟原始数据集的一个复杂分布情况,原始数据集的分布会有很多种情况,可能服从正态分布,也可能服从均值分布,泊松分布,瑞丽分布等等,采样过程其实就是在模拟这个过程),如下图所示的概率密度图,越亮的地方表示该像素被选取到的概率是越大的,也就是对分别对应这个两个分布对应的 μ \mu μ处,两个分布的 σ \sigma σ分别对应这图中发亮的地方的半径, σ \sigma σ越大,表示椭圆的半径越大,反之越小,如果两个像素的高斯分布的 σ \sigma σ一样,那么这个椭圆就变成了圆。

在这里插入图片描述
  有了上面的密度图假设,我们现在来随机取一个点,假设取值对应这坐标上的(0.5,0.5),有了这个点,我们就能得到一个两像素的图,像素值分别为0.5,0.5。同理我们可以设想一下,把这两像素的图扩展到(100,100,3),每个像素均服从正态分布,那么上面的二维概率密度图是不是可以扩展到了 100 × 100 × 3 = 30000 100 \times100 \times 3=30000 100×100×3=30000维度,这个维度我们可能无法想想,但是道理同二维一样的,我们随机从30000维空间中选取一个点,是不是就确定了一张图像。
  现在我们假设一下,有一个两像素的数据集,很多张图像,几千万张,上亿张图像,这个数据集一定有一个分布,但是这个分布我不知道,我现在需要通过扩散模型来学习这个分布。训练的时候就是从这个数据集里面选取图像加高斯噪声,假设1000步,每张图像都加了1000步的高斯噪声之后,我们可以再统计下加完噪声的这个噪声数据集的分布情况,你会意外的发现,这个噪声数据集竟然服从正态分布。其实这一点一比较好理解,我们刚才说了,DDPM 采样的时候其实就是通过不断的堆叠不同正态分布来模拟原始的数据分布的,那么训练的时候是在不断地加噪声,每次加的噪声都是分布一样的,那么最终生成的噪声数据分布肯定是跟你加的这个噪声分布一致呀。采样的时候就是根据这个噪声数据集,每次采样的时候都会调整正态分布的情况,最终学习到原始数据集的分布。DDPM是逐步调整吗,DDIM是一步到位,在看下这两个采样公式:
DDPM:
x t − 1 = 1 α t ( x t − 1 − α t 1 − α ˉ t ϵ θ ( x t , t ) ) + σ t z \mathbf{x}_{t-1}=\frac{1}{\sqrt{\alpha_t}}\left(\mathbf{x}_t-\frac{1-\alpha_t}{\sqrt{1-\bar{\alpha}_t}} \boldsymbol{\epsilon}_\theta\left(\mathbf{x}_t, t\right)\right)+\sigma_t \mathbf{z} xt1=αt 1(xt1αˉt 1αtϵθ(xt,t))+σtz
可见DDPM只能一步一步来。
DDIM:
x s = α ˉ s ( x k − 1 − α ˉ k ϵ θ ( x k ) α k ‾ ) + 1 − α ˉ s − σ 2 ϵ θ ( x k ) + σ ϵ x_s=\sqrt{\bar{\alpha}_s}\left(\frac{x_k-\sqrt{1-\bar{\alpha}_k} \epsilon_\theta\left(x_k\right)}{\sqrt{\overline{\alpha_k}}}\right)+\sqrt{1-\bar{\alpha}_s-\sigma^2} \epsilon_\theta\left(x_k\right)+\sigma \epsilon xs=αˉs (αk xk1αˉk ϵθ(xk))+1αˉsσ2 ϵθ(xk)+σϵ
DDIM可以直接从第k步跳到s步,实现了采样的加速。

  • 24
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
DDPM(Denoising Diffusion Probabilistic Models)和DDIM(Denoising Diffusion Implicit Models)是两种基于扩散过程的图像去噪模型。它们的主要区别在于模型结构和学习策略。 首先,DDPMDDIM的模型结构存在差异。DDPM是基于生成对抗网络(GAN)的模型,它将一个噪声样本通过一个潜在空间的扩散过程逐渐转换为真实样本。DDPM使用自回归模型来建模噪声样本和真实样本之间的条件分布,并通过学习逆过程来实现去噪。而DDIM是基于自编码器的模型,它将一个噪声样本通过逐步更改噪声水平来实现去噪。DDIM使用隐式神经网络来学习噪声样本和真实样本之间的条件分布,不需要生成样本或潜在空间。 其次,DDPMDDIM的学习策略也有所不同。DDPM使用反向过程来学习,即从真实样本逐渐生成噪声样本。这种学习方式需要采样随机扰动来模拟生成噪声样本的过程。而DDIM使用前向模拟扰动过程来学习,即从噪声样本逐步还原为真实样本。这种学习方式不需要随机采样,可以更高效地生成噪声和去噪样本。 总结来说,DDPMDDIM都是通过扩散过程实现图像去噪的模型,但它们在模型结构和学习策略上存在差异。DDPM使用生成对抗网络,学习逆过程去噪;而DDIM使用自编码器,学习前向过程去噪。这些区别使得它们在处理图像去噪问题时具有不同的优势和适用场景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

I松风水月

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

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

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

打赏作者

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

抵扣说明:

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

余额充值