当前位置: 首页 > news >正文

ddim原理及代码(Denoising diffusion implicit models)

前言

之前学习了 DDPM(DDPM原理与代码剖析)和 IDDPM(IDDPM原理和代码剖析), 这次又来学习另一种重要的扩散模型。它的采样速度比DDPM快很多(respacing),扩散过程不依赖马尔科夫链。
Denoising diffusion implicit models, ICLR 2021



理论

Astract和Introduction部分

(1) 由于DDPM加噪基于马尔科夫链过程,那么在去噪过程过程也必须基于走这个过程,导致step数很多。
(2) DDIM的训练过程和DDPM一样,则可以利用起DDPM的权重,代码也可重用。而只要重新写一个sample的代码,就可以享受到采样step减少的好处。
(3) DDIM的采样过程是个确定的过程。
(4) 先有的概率模型主要有扩散的,也有分数的。
“Recent works on iterative generative models (Bengio et al., 2014), such as denoising diffusion probabilistic models (DDPM, Ho et al. (2020)) and noise conditional score networks (NCSN, Song & Ermon (2019))”
(5) 采样过程可以是郎之万,也可以是对逆扩散过程进行建模
“This generative Markov Chain process is either based on Langevin dynamics (Song & Ermon, 2019) or obtained by reversing a forward diffusion process that progressively turns an image into noise (Sohl-Dickstein et al., 2015).”


回顾DDPM

若没掌握过DDPM, 建议看下我之前的一篇博客 DDPM原理与代码剖析。
在ddim中, α t \alpha_t αt 相当于之前的 α ‾ t \overline{\alpha}_t αt
于是原来采样的公式变成了
q ( X 1 : T ∣ X 0 ) : = ∏ t = 0 T q ( X t ∣ X t − 1 ) q(X_{1:T}|X_0) := \prod_{t=0}^T q(X_t|X_{t-1}) q(X1:TX0):=t=0Tq(XtXt1), where q ( X t ∣ X t − 1 ) : = N ( α t α t − 1 X t − 1 , ( 1 − α t α t − 1 ) I ) q(X_t|X_{t-1}) := N(\sqrt{\frac{\alpha_t}{\alpha_{t-1}}}X_{t-1}, (1-\frac{\alpha_t}{\alpha_{t-1}})I) q(XtXt1):=N(αt1αt Xt1,(1αt1αt)I)

A special property of the forward process is that
q ( X t ∣ X 0 ) : = N ( X t ; α t X 0 , ( 1 − α t ) I ) q(X_t|X_0) := N(X_t; \sqrt{\alpha_t}X_0, (1-\alpha_t)I) q(XtX0):=N(Xt;αt X0,(1αt)I)

X t = α t X 0 + 1 − α t ϵ X_t = \sqrt{\alpha_t}X_0 + \sqrt{1-\alpha_t}\epsilon Xt=αt X0+1αt ϵ

相关文章:

  • 艾美捷脂质过氧化检测试剂盒参数说明和文献参考
  • Moonbeam Illuminate/22|各类圆桌讨论文字节选
  • MacOS系统安装Qt教程
  • day 8 模拟和高精度
  • Go语言常用条件判断空值逻辑
  • Kafka Producer Retries Idempotence 原理
  • 从零开始,开启属于你的 RTE 漫游之旅!丨漫游指南 x 即将启航
  • Fabric.js 元素被遮挡的部分也可以操作
  • 太阳能电池板自动清洗机器人的制作分享
  • electron:获取MAC地址
  • Kafka工作流程简介
  • Web漏洞扫描篇-Nessus使用
  • 移动边缘网络环境中的数据同步方法
  • shell脚本编写语法详解
  • 浅谈冯诺依曼体系,操作系统和进程概念
  • [洛谷]P2234 [HNOI2002]营业额统计
  • golang 协程的实现原理
  • Spring 中使用Nacos服务发现
  • 字符串尾部匹配-指针
  • 1. SpringMVC概述与入门