DDPM模型——pytorch实现


论文传送门:Denoising Diffusion Probabilistic Models

参考文章:The Annotated Diffusion Model

DDPM的目的:

从标准正态分布中采样出噪声图像,经过T次去噪后还原出与训练图像相似的生成图像,从而完成图像生成任务。

DDPM的方法:

Alt

①扩散过程(加噪过程):

对训练图像不断加噪,经过T次,使得训练图像近似变成各向独立的标准正态分布的噪声图像。
每次加噪记作 q ( x t ∣ x t − 1 ) q(x_t|x_{t-1}) q(xtxt1),其中t指当前时刻(加噪t次),t-1指上一时刻(加噪t-1次), x t x_t xt指当前时刻的图像, x t − 1 x_{t-1} xt1指上一时刻的图像。
整个过程是马尔科夫链,即当前时刻的图像仅与其上一时刻有关,而与其他时刻无关。
设定一个长度为T的序列 β β β β t β_t βt在(0,1)区间内单调递增,t时刻加入噪声的方差为 β t β_t βt,均值由 β t β_t βt x t x_t xt共同决定,则可以写出当前时刻 q ( x t ∣ x t − 1 ) q(x_t|x_{t-1}) q(xtxt1)和整个扩散过程 q ( x 1 : T ∣ x 0 ) q(x_{1:T}|x_0) q(x1:Tx0)的公式:

Alt
可以发现,任意时刻的噪声图像 x t x_t xt可以由初始时刻图像(原图) x 0 x_0 x0 β β β序列来确定,定义 α t = 1 − β t α_t=1-β_t αt=1βt α ˉ = ∏ s = 1 t α s \bar{α}=\prod\limits_{s=1}^tα_s αˉ=s=1tαs,则:
Alt
当T趋近于∞时,可以认为 x T x_T xT是各向独立的标准正态分布。
扩散过程与网络无关,只要确定初始时刻图像 x 0 x_0 x0 β β β序列,整个扩散过程均可求。

②逆扩散过程(去噪过程):

对噪声图像不断去噪,经过T次,使得噪声图像可以恢复为初始时刻图像 x 0 x_0 x0
​每次去噪记作 p ( x t − 1 ∣ x t ) p(x_{t-1}|x_t) p(xt1xt),公式:
Alt
p ( x t − 1 ∣ x t ) p(x_{t-1}|x_t) p(xt1xt)难以直接求解,所以使用网络进行计算。
使用网络来拟合分布有多种实现方式,作者选择构建网络 D θ ( x t , t ) D_θ(x_t,t) Dθ(xt,t)( θ θ θ

  • 6
    点赞
  • 66
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

CV_Peach

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

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

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

打赏作者

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

抵扣说明:

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

余额充值