DDPM Diffusion模型训练和采样过程细节汇总
- 算法回顾
- 框架理解
- DDPM
- 训练过程
- 采样过程
- Text-guiled DDPM
- 训练过程
- 采样过程
- Null-text guiled DDPM
- 训练过程
- 采样过程
- 项目代码
- 训练过程![在这里插入图片描述](https://img-blog.csdnimg.cn/f6213f8e584b4142b0c5a016cd23b63a.png)
- 采样过程
算法回顾
DDPM的算法概述
我们从 Classifier-Free Diffusion Guidance 这篇文章开始。
classifier-free 引导的条件采样过程
在《Null-text Inversion for Editing Real Images using Guided Diffusion Models》 中,对Classifier-free guidance 形式化为:
简单的推断一下:
= ω ∗ ϵ θ ( z t , t , C ) + ϵ θ ( z t , t , ⊘ ) − ω ∗ ϵ θ ( z t , t , ⊘ ) \omega * \epsilon_{\theta}(z_t,t,C)+\epsilon_{\theta}(z_t,t,\oslash )-\omega * \epsilon_{\theta}(z_t,t,\oslash ) ω∗ϵθ(zt,t,C)+ϵθ(zt,t,⊘)−ω∗ϵθ(zt,t,⊘)
= ω ∗ ( ϵ θ ( z t , t , C ) − ϵ θ ( z t , t , ⊘ ) ) + ϵ θ ( z t , t , ⊘ ) \omega *( \epsilon_{\theta}(z_t,t,C)-\epsilon_{\theta}(z_t,t,\oslash ))+\epsilon_{\theta}(z_t,t,\oslash ) ω∗(ϵθ(zt,t,C)−ϵθ(zt,t,⊘))+ϵθ(zt,t,⊘)
相当于是在 ϵ θ ( z t , t , ⊘ ) \epsilon_{\theta}(z_t,t,\oslash ) ϵθ(zt,t,⊘)的基础上,加强了在 ϵ θ ( z t , t , C ) − ϵ θ ( z t , t , ⊘ ) \epsilon_{\theta}(z_t,t,C)-\epsilon_{\theta}(z_t,t,\oslash ) ϵθ(zt,t,C)−ϵθ(zt,t,⊘)方向上的引导,可以结合下图来进行理解:
Classifier-Free Diffusion Guidance 中的这张图也表达相同的意思,模型增加分类器指导强度时发生的Inception score增加和样本多样性减少的简化表现。
框架理解
下面画图理解一下Diffuion Model 发展各个阶段的方法
DDPM
训练过程
采样过程
Text-guiled DDPM
训练过程
采样过程
Null-text guiled DDPM
训练过程
和 text guiled DDPM一致。
采样过程
项目代码
下面是论文《GLIDE: Towards Photorealistic Image Generation and Editing with Text-Guided Diffusion Models》的代码逻辑进行梳理,code 链接:https://github.com/openai/glide-text2im/