My Note of Diffusion Models

news2024/11/16 7:32:07

Diffusion Models

Links: https://theaisummer.com/diffusion-models/

Markovian Hierachical VAE

rvs:

  • data: x 0 x_{0} x0,
  • representation: x T x_{T} xT

( p ( x 0 , x 1 , ⋯   , x T ) , q ( x 1 , ⋯   , x T ∣ x 0 ) ) (p(x_0,x_1,\cdots,x_T),q(x_1,\cdots,x_{T}|x_0)) (p(x0,x1,,xT),q(x1,,xTx0))
where x 1 , ⋯   , x T x_1,\cdots,x_T x1,,xT is unobservable, and

  • generative model/backward trajectory:
    p ( x 0 , x 1 , ⋯   , x T ) = p ( x T ) ∏ t p ( x t − 1 ∣ x t ) p(x_0,x_1,\cdots,x_T)=p(x_T)\prod_tp(x_{t-1}|x_{t}) p(x0,x1,,xT)=p(xT)tp(xt1xt)
  • forward trajectory(Markov process):
    q ( x 1 , ⋯   , x T ∣ x 0 ) ) = ∏ t q ( x t ∣ x t − 1 ) q(x_1,\cdots,x_{T}|x_0))=\prod_tq(x_{t}|x_{t-1}) q(x1,,xTx0))=tq(xtxt1)

E L B O : = ∫ q ( x T ∣ x 0 ) log ⁡ p ( x T ) q ( x T ∣ x 0 ) d x T + ∑ t = 2 T ∫ q ( x t − 1 , x t ∣ x 0 ) log ⁡ p ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t , x 0 ) d x t − 1 x t + ∫ q ( x 1 ∣ x 0 ) log ⁡ p ( x 1 ∣ x 0 ) d x 1 ELBO:=\int q(x_{T}|x_{0}) \log \frac{p(x_{T})}{q(x_{T}|x_{0})}\mathrm{d}x_{T}\\ +\sum_{t=2}^T \int q(x_{t-1},x_{t}|x_{0})\log \frac{p(x_{t-1}|x_{t})}{q(x_{t-1}|x_{t}, x_{0})}\mathrm{d}x_{t-1}x_{t}\\+\int q(x_{1}|x_{0})\log p(x_{1}|x_{0})\mathrm{d}x_{1} ELBO:=q(xTx0)logq(xTx0)p(xT)dxT+t=2Tq(xt1,xtx0)logq(xt1xt,x0)p(xt1xt)dxt1xt+q(x1x0)logp(x1x0)dx1

Loss

L o s s : = − E L B O = D K L ( q ( x T ∣ x 0 ) ∥ p ( x T ) ) + ∑ t = 2 T ∫ q ( x t ∣ x 0 ) d x t D K L ( q ( x t − 1 ∣ x t , x 0 ) ∥ p ( x t − 1 ∣ x t ) ) − ∫ q ( x 1 ∣ x 0 ) log ⁡ p ( x 1 ∣ x 0 ) d x 1 Loss:=-ELBO= D_{KL} (q(x_{T}|x_{0})\| p(x_{T}))\\ +\sum_{t=2}^T \int q(x_{t}|x_{0})\mathrm{d}x_{t}D_{KL}(q(x_{t-1}|x_{t}, x_{0})\|p(x_{t-1}|x_{t}))\\-\int q(x_{1}|x_{0})\log p(x_{1}|x_{0})\mathrm{d}x_{1} Loss:=ELBO=DKL(q(xTx0)p(xT))+t=2Tq(xtx0)dxtDKL(q(xt1xt,x0)p(xt1xt))q(x1x0)logp(x1x0)dx1

  • prior matching term
  • denoising matching term
  • reconstruction term

Diffusion Models

basic assumption

  • tractable distr: p ( x T ) p(x_{T}) p(xT)
  • forward trajectory(Markov process): q ( x t ∣ x t − 1 ) q(x_{t}|x_{t-1}) q(xtxt1) is fixed (has no unlearned parameter)

Definition(Diffusion Model)

  • tractable distr: p ( x T ) ∼ N ( 0 , 1 ) p(x_{T})\sim N(0,1) p(xT)N(0,1)
  • generative model/backward trajectory: p ( x t − 1 ∣ x t ) ∼ N ( μ ( t ) , Σ ( t ) ) p(x_{t-1}|x_{t})\sim N(\mu(t),\Sigma(t)) p(xt1xt)N(μ(t),Σ(t))
  • forward trajectory(Gaussian diffusion): q ( x t ∣ x t − 1 ) ∼ N ( x t − 1 1 − β t , β t ) q(x_{t}|x_{t-1})\sim N(x_{t-1}\sqrt{1-\beta_t},\beta_t) q(xtxt1)N(xt11βt ,βt),

Parameters:

  • β t = 1 − α t \beta_t=1-\alpha_t βt=1αt or α ˉ t : = ∏ t α t \bar{\alpha}_t:=\prod_t\alpha_t αˉt:=tαt: noise schedule, where α t \alpha_t αt is small
  • α ˉ t \sqrt{\bar{\alpha}_t} αˉt : signal rate

Fact.

  • q ( x t ∣ x 0 ) ∼ N ( x 0 α ˉ t , 1 − α ˉ t ) q(x_{t}|x_{0})\sim N(x_{0}\sqrt{\bar{\alpha}_t},1-\bar{\alpha}_t) q(xtx0)N(x0αˉt ,1αˉt)
  • q ( x t − 1 ∣ x t , x 0 ) ∼ N ( μ q ( x t , x 0 ) , σ 2 ( t ) ) q(x_{t-1}|x_{t},x_{0})\sim N(\mu_q(x_t ,x_0),\sigma^2(t)) q(xt1xt,x0)N(μq(xt,x0),σ2(t)) where
    μ q ( x t , x 0 ) : = α t ( 1 − α ˉ t − 1 ) x t − α ˉ t − 1 ( 1 − α t ) x 0 1 − α ˉ t = 1 α t x t − β t 1 − α ˉ t α t ϵ 0 \mu_q(x_t,x_0):=\frac{\sqrt{\alpha_t}(1-\bar\alpha_{t-1})x_t-\sqrt{\bar\alpha_{t-1}}(1-\alpha_{t})x_0}{1-\bar\alpha_t}\\ =\frac{1}{\sqrt{\alpha_t}}x_t-\frac{\beta_t}{\sqrt{1-\bar\alpha_t}\sqrt{\alpha_t}}\epsilon_0 μq(xt,x0):=1αˉtαt (1αˉt1)xtαˉt1 (1αt)x0=αt 1xt1αˉt αt βtϵ0
    and σ 2 ( t ) : = 1 − α ˉ t − 1 1 − α ˉ t β t \sigma^2(t):=\frac{1-\bar\alpha_{t-1}}{1-\bar\alpha_t}\beta_{t} σ2(t):=1αˉt1αˉt1βt.

Design I: p ( x t − 1 ∣ x t ) ∼ N ( μ ( t ) , Σ ( t ) ) p(x_{t-1}|x_{t})\sim N(\mu(t),\Sigma(t)) p(xt1xt)N(μ(t),Σ(t)):
μ ( t ) = α t ( 1 − α ˉ t − 1 ) x t − β t α ˉ t − 1 x ^ ( x t , t ) 1 − α ˉ t Σ ( t ) = σ 2 ( t ) \mu(t)=\frac{\sqrt{\alpha_t}(1-\bar\alpha_{t-1})x_t-\beta_{t}\sqrt{\bar\alpha_{t-1}}\hat{x}(x_t,t)}{1-\bar\alpha_t}\\ \Sigma(t)=\sigma^2(t) μ(t)=1αˉtαt (1αˉt1)xtβtαˉt1 x^(xt,t)Σ(t)=σ2(t)

Design II: p ( x t − 1 ∣ x t ) ∼ N ( μ ( t ) , Σ ( t ) ) p(x_{t-1}|x_{t})\sim N(\mu(t),\Sigma(t)) p(xt1xt)N(μ(t),Σ(t)):
μ ( t ) = 1 α t x t − β t 1 − α ˉ t α t ϵ ^ ( x t , t ) Σ ( t ) = σ 2 ( t ) \mu(t)=\frac{1}{\sqrt{\alpha_t}}x_t-\frac{\beta_t}{\sqrt{1-\bar\alpha_t}\sqrt{\alpha_t}}\hat{\epsilon}(x_t,t)\\ \Sigma(t)=\sigma^2(t) μ(t)=αt 1xt1αˉt αt βtϵ^(xt,t)Σ(t)=σ2(t)

Fact.
Under the design I:
D K L ( q ( x t − 1 ∣ x t , x 0 ) ∥ p θ ( x t − 1 ∣ x t ) ) = 1 2 σ t 2 ( 1 − α ˉ t − 1 ) β t 2 ( 1 − α ˉ t ) 2 ∥ x ^ ( x t , t ) − x 0 ∥ 2 = 1 2 ( 1 1 − α ˉ t − 1 − 1 1 − α ˉ t ) ∥ x ^ ( x t , t ) − x 0 ∥ 2 D_{KL} (q(x_{t−1}|x_t , x_0) \| p_θ (x_{t−1} |x_t))=\frac{1}{2\sigma_t^2}\frac{(1-\bar{\alpha}_{t-1})\beta_t^2}{(1-\bar{\alpha}_{t})^2}\|\hat{x}(x_t,t)-x_0\|^2\\ =\frac{1}{2}(\frac{1}{1-\bar{\alpha}_{t-1}}-\frac{1}{1-\bar{\alpha}_{t}})\|\hat{x}(x_t,t)-x_0\|^2 DKL(q(xt1xt,x0)pθ(xt1xt))=2σt21(1αˉt)2(1αˉt1)βt2x^(xt,t)x02=21(1αˉt111αˉt1)x^(xt,t)x02

Under the design II:
D K L ( q ( x t − 1 ∣ x t , x 0 ) ∥ p θ ( x t − 1 ∣ x t ) ) = 1 2 σ t 2 β t 2 ( 1 − α ˉ t ) α t 2 ∥ ϵ ^ ( x t , t ) − ϵ 0 ∥ 2 D_{KL} (q(x_{t−1}|x_t , x_0) \| p_θ (x_{t−1} |x_t))=\frac{1}{2\sigma_t^2}\frac{\beta_t^2}{(1-\bar{\alpha}_{t})\alpha_t^2}\|\hat{\epsilon}(x_t,t)-\epsilon_0\|^2 DKL(q(xt1xt,x0)pθ(xt1xt))=2σt21(1αˉt)αt2βt2ϵ^(xt,t)ϵ02

Algorithm

Loss:
L = ∑ t L t L t ≈ ∑ ϵ ∼ N ( 0 , 1 ) ∥ ϵ − ϵ ^ ( x t , t ) ∥ 2 , ( 0 ≤ t < T ) L=\sum_t L_t\\ L_t\approx \sum_{\epsilon\sim N(0,1)}\|\epsilon-\hat{\epsilon}(x_{t},t)\|^2,(0\leq t<T) L=tLtLtϵN(0,1)ϵϵ^(xt,t)2,(0t<T)
where x t : = α ˉ t x 0 + 1 − α ˉ t ϵ x_{t}:=\sqrt{\bar{\alpha}_t} x_0 + \sqrt{1-\bar{\alpha}_t}\epsilon xt:=αˉt x0+1αˉt ϵ.

train NN ϵ ^ \hat\epsilon ϵ^ by data { ( ϵ ^ ( x t ( x 0 , i , ϵ i l ) , t ) , ϵ i l ) , ϵ i l ∼ N ( 0 , 1 ) , l = 1 , ⋯   , L } \{(\hat{\epsilon}(x_{t}(x_{0,i},\epsilon_{il}),t),\epsilon_{il}),\epsilon_{il}\sim N(0,1),l=1,\cdots, L\} {(ϵ^(xt(x0,i,ϵil),t),ϵil),ϵilN(0,1),l=1,,L} with size of N L NL NL for each t t t


Exercise

  1. Given a latent variable model p ( x , z ) p(x,z) p(x,z) with variational distr. q ( z ∣ x ) q(z|x) q(zx). q ( x ) q(x) q(x) represents data distr. and let q ( x , z ) = q ( z ∣ x ) q ( x ) q(x,z)=q(z|x)q(x) q(x,z)=q(zx)q(x).
    ∫ q ( x ) L x = ∫ q ( x , z ) log ⁡ p ( x , z ) q ( z ∣ x ) ∼ D K L ( q ( x , z ) ∥ p ( x , z ) ) \int q(x)L_x=\int q(x,z)\log\frac{p(x,z)}{q(z|x)}\sim D_{KL}(q(x,z)\|p(x,z)) q(x)Lx=q(x,z)logq(zx)p(x,z)DKL(q(x,z)p(x,z))
    where L x L_x Lx is LEBO.

References

  1. Jonathan Ho, Ajay Jain, Pieter Abbeel. Denoising Diffusion Probabilistic Models, 2020.
  2. Calvin Luo, Understanding Diffusion Models: A Unified Perspective, 2022

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/612248.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AcWing 回转游戏 dfs IDA* 剪枝 统一操作 java

&#x1f351; 算法题解专栏 &#x1f351; 回转游戏 如下图所示&#xff0c;有一个 # 形的棋盘&#xff0c;上面有 1 , 2 , 3 1,2,3 1,2,3 三种数字各 8 8 8 个。 给定 8 8 8 种操作&#xff0c;分别为图中的 A s i m H A \\sim H AsimH。 这些操作会按照图中字母和箭头…

ChatGPT会取代低代码开发平台吗?

编程作为一种高端技能&#xff0c;向来是高收入高科技的代名词。近期&#xff0c;伴随着ChatGPT在全球的爆火&#xff0c;过去通过窗口“拖拉拽”的所见即所得方式的低代码开发模式&#xff0c;在更加智能和更低成本的AI搅局之下&#xff0c;又面临了更深层次的影响。 低代码平…

MySQL redo log、undo log、binlog

MySQL是一个广泛使用的关系型数据库管理系统&#xff0c;它通过一系列的日志来保证数据的一致性和持久性。在MySQL中&#xff0c;有三个重要的日志组件&#xff0c;它们分别是redo log&#xff08;重做日志&#xff09;、undo log&#xff08;回滚日志&#xff09;和binlog&…

MyBatis深入学习总结

MyBatis总结 MyBatis入门操作 简介 原始jdbc操作&#xff08;查询数据&#xff09; 原始jdbc操作&#xff08;插入数据&#xff09; 原始jdbc操作的分析 原始jdbbc开发存在的问题如下&#xff1a; 数据库连接创建、释放频繁造成系统资源的浪费从而影响系统性能sql语句在代…

深度学习基础知识-tf.keras实例:衣物图像多分类分类器

参考书籍&#xff1a;《Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow, 2nd Edition (Aurelien Geron [Gron, Aurlien])》 本次使用的数据集是tf.keras.datasets.fashion_mnist&#xff0c;里面包含6w张图&#xff0c;涵盖10个分类。 import tensorflo…

Linux中的ACL以及加固

ACL访问控制 // ACL:Access Control List 访问控制列表 // -p :以原始格式显示 ACL [rootzbx ~]# getfacl -p /root/ // 查看ACL策略 # file: /root/ # owner: root # group: root user::r-x group::r-x other::--- 设置ACL策略 // -m : 修改文件的ACL // -b : 表示删除所有的…

RedisGraph的图存储模型

1 overview 在RedisGraph的整体架构中&#xff0c;非常简略的概括了RedisGraph的图存储模型&#xff1a; RedisGraph使用DataBlock来存储node和edge的属性。RedisGraph使用稀疏矩阵来表示图&#xff0c;稀疏矩阵的存储格式为按行压缩的稀疏矩阵&#xff08;Compressed Sparse…

同浏览器下多窗口进行跨源通信、同源通信

同浏览器下多窗口进行跨源通信、同源通信 多页面通信运用到了“发布订阅”的设计模式&#xff0c;一个页面发布指令&#xff0c;其他页面进行订阅并进行相应的行为操作&#xff01; 一、跨源通信 window.postMessage() window.postMessage() 方法可以安全地实现跨源通信。通常…

Qt6之调用Windows下vc生成的动态链接库dll

Qt是跨平台工具&#xff0c;显然能和windows的动态库一起使用。 在Windows操作系统上&#xff0c;库以文件的形式存在&#xff0c;并且可以分为动态链接库(DLL) 和静态链接库两种。动态链接库文控以.dll为后缀名&#xff0c;静态链接库文控以.lib为后缀名。不管是动态链接库还是…

独立站卖家如何应对PayPal风险?3大策略教你安全收款!

PayPal是全球风险控制做得最好的第三方在线支付平台&#xff0c;PayPal付款是钱直接到卖家PayPal账户。但随着外贸交易的日益发展&#xff0c;恶意买家的问题也越来越多。如何防范风险&#xff0c;保证收款安全&#xff0c;成为独立站卖家们所关注的问题。下面为大家分享三种策…

背包DP-入门篇

目录 01背包&#xff1a; 完全背包&#xff1a; 多重背包&#xff1a; 分组背包&#xff1a; 01背包&#xff1a; [NOIP2005 普及组] 采药 - 洛谷https://www.luogu.com.cn/problem/P1048 01背包背景 在一个小山上&#xff0c;有个n个黄金和一个容量为w的背包&#xff0c;…

【Python】深度理解Class类、Object类、Type元类的概念和关系

深度理解Class类、Object类、Type元类 1.Class类、Object类、Type元类的表面关系2.Class、Object、Type解释3.关系详解4.那么如何看待object、type在Python面对对象概念中的一席之地呢&#xff1f;5.那么object、type扮演了什么样的角色呢&#xff1f;他们对class又分别做了什么…

【计算机组成】Cache与CPU的直接映射、全相联映射与组相联映射

一.Cache与CPU需要映射的原因 CPU准备访问内存时&#xff0c;会先问问cache存储器有没有已经提前准备好了数据&#xff0c;如果没有则再找内存要&#xff1a; 如果Cache刚好命中&#xff0c;则直接从Cache中读取数据&#xff1a; 如果Cache没有命中&#xff08;Cache失效&#…

时序数据库InfluxDB快速入门使用

推荐博客&#xff1a; Influxdb中文文档 linux安装influxdb Influxdb安装、启动influxdb控制台、常用命令、Influx命令使用、Influx-sql使用举例、Influxdb的数据格式、Influxdb客户端工具 1.安装 1、influxdb数据库官网的下载链接&#xff1a; https://portal.influxdata.c…

如何利用MES系统进行生产防呆防错?

一、认识MES系统的防呆防错功能 首先&#xff0c;我们要清楚了解&#xff0c;什么是MES系统的防呆防错。MES系统防呆防错是指利用MES系统来避免生产过程中的错误和缺陷&#xff0c;保障生产排程和生产过程顺利进行的过程。MES系统防呆防错包括以下方面&#xff1a; 1. 自动识别…

relation-graph关系图谱组件2.0版本遇到的问题

前提&#xff1a;之前已经写过一篇1.1版本的问题&#xff0c;这里就不过多讲了&#xff08;如果想要解决火狐低版本兼容&#xff0c;看那个就行&#xff09; 这次主要讲的是和1.X版本的区别和一些其它问题 区别 参数名不同&#xff1a;以前的links>lines (虽然现在links也…

遇见未来,降低职场焦虑——中国人民大学与加拿大女王大学金融硕士来助力

身在职场的你有感到一丝丝的焦虑吗&#xff1f;偶尔的小焦虑可以作为我们工作中的动力&#xff0c;时刻提醒我们保持奋进。预见未来才能遇见未来&#xff0c;随着社会经济不断发展&#xff0c;没有什么是一成不变的。处于职场上升期的我们更要懂得未雨绸缪&#xff0c;增加自身…

ClickHouse集群搭建总结

简介 ClickHouse是俄罗斯最大的搜素引擎Yandex于2016年开源的列式数据库管理系统&#xff0c;使用C 语言编写, 主要应用于OLAP场景。 使用理由 在大数据量的情况下&#xff0c;能以很低的延迟返回查询结果。 笔者注&#xff1a; 在单机亿级数据量的场景下可以达到毫秒级的查询…

SpringCloudAlibaba 微服务生态

一 微服务架构 1.1 微服务 微服务其实是一种架构风格&#xff0c;我们在开发一个应用的时候这个应用应该是由一组小型服务组成&#xff0c;每个小型服务都运行在自己的进程内&#xff1b;小服务之间通过HTTP的方式进行互联互通。 1.2 微服务架构的常见问题 一旦采用微服务系…

ChatGPT 之后,B 端产品设计会迎来颠覆式革命吗?| Liga妙谈

近日&#xff0c;脑机接口公司 Neuralink 宣布&#xff0c;其植入式脑机接口设备首次人体临床研究已被准许启动。遥想当年&#xff0c;我们还嘲讽罗老师「动嘴做 PPT」&#xff0c;谁曾想不久后我们可能连嘴都不用动&#x1f64a;。 脑机接口何时会引爆人机交互革命尚未可知&a…