[总结] DDPM Diffusion模型各阶段训练和采样过程方案细节和代码逻辑汇总

算法回顾

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/

训练过程在这里插入图片描述

采样过程

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/NGUever15/article/details/128574368