Diffusion Model的数学原理

基本概念

Forward Process

Reverse Process

DDPM的算法

训练的算法

1.从数据中选取一张干净的图片。
2.生成一个t值用于噪声网络的训练步骤
3.从高斯分布中随机产生一个带有噪声的量
4.采用梯度下降对Noise Predictor进行训练.

\(\alpha\)的值越来越小代表随着迭代次数的进行,我们越来越看重噪声量的作用,这与添加噪声量的过程是一致的。

实际上的训练过程与理想的情况并不一致

推理过程(Inference)

推理算法中为什么还要再随机产生一个噪声z?

从影像生成的本质目标开始讲起。

从真实数据的分布 \(P_{\text{data}}(x)\) 中采样出 \(m\) 个样本:\(\{x^1, x^2, \dots, x^m\}\)
然后,基于模型的分布 \(P_\theta(x)\),可以计算出这些样本的概率 \(P_\theta(x^i)\)

最大似然估计目标:通过调整模型参数 \(\theta\),使模型分布 \(P_\theta(x)\) 对真实数据样本的生成概率最大化。

数学表达式为:

\[\theta^* = \arg \max_\theta \prod_{i=1}^m P_\theta(x^i) \]

其中,\(\prod_{i=1}^m\) 表示对所有样本的联合概率。由于概率连乘可能产生数值下溢,通常会在优化时取对数,变为对数似然:

\[\theta^* = \arg \max_\theta \sum_{i=1}^m \log P_\theta(x^i) \]

最大似然估计相当于最大KL- divergence

在Vae中通过最大化Lower bound借此来优化\(logP(x)\)

在DDPM中如何计算\(P_{\theta}(x)\)

在DDPM中如何优化Lower bound

forward process 得到的噪声图片可以一步到位

Understanding Diffusion Models:A Unified Perspective

已知\(x_{0},x_{t}\)求解\(x_{t-1}\)

不考虑方差对结果的影响,让两个分布的mean越接近越好。

为什么最后还要多加一个noise?

实验效果好

posted @ 2024-12-02 15:47  afengleafs  阅读(68)  评论(0)    收藏  举报