【深度学习】Diffusion扩散模型的逆扩散问题

1、前言

上一篇,我们讲了Diffusion这个模型的原理推导。但在推导中,仍然遗留了一些问题。本文将解决那些问题

参考论文:

①Variational Diffusion Models (arxiv.org)

②Tutorial on Diffusion Models for Imaging and Vision (arxiv.org)

视频:Diffusion扩散模型补充-哔哩哔哩

2、 q ( x t − 1 ∣ x t , x 0 ) q(x_{t-1}|x_t,x_0) q(xt−1∣xt,x0)

在上篇文章中,我们说 q ( x t − 1 ∣ x t , x 0 ) q(x_{t-1}|x_t,x_0) q(xt−1∣xt,x0)服从正态分布,但是并没有已与证明。那是因为我翻阅了大量的文章资料,都没有找到相关的证明过程。但是正当我放弃之际,我竟然找到了

首先,我们将这个概率利用贝叶斯公式展开
q ( x t − 1 ∣ x t , x 0 ) = q ( x t − 1 , x t ∣ x 0 ) q ( x t ∣ x 0 ) = q ( x t ∣ x t − 1 , x 0 ) q ( x t − 1 ∣ x 0 ) q ( x t ∣ x 0 ) = q ( x t ∣ x t − 1 ) q ( x t − 1 ∣ x 0 ) q ( x t ∣ x 0 ) q(x_{t-1}|x_t,x_0)=\frac{q(x_{t-1},x_t|x_0)}{q(x_{t}|x_0)}=\frac{q(x_t|x_{t-1},x_0)q(x_{t-1}|x_0)}{q(x_t|x_0)}=\frac{q(x_t|x_{t-1})q(x_{t-1}|x_0)}{q(x_t|x_0)} q(xt−1∣xt,x0)=q(xt∣x0)q(xt−1,xt∣x0)=q(xt∣x0)q(xt∣xt−1,x0)q(xt−1∣x0)=q(xt∣x0)q(xt∣xt−1)q(xt−1∣x0)

在此,得出 q ( x t − 1 ∣ x 0 ) q(x_{t-1}|x_0) q(xt−1∣x0)为先验, q ( x t ∣ x t − 1 ) q(x_t|x_{t-1}) q(xt∣xt−1)为似然,而 q ( x t − 1 ∣ x t , x 0 ) q(x_{t-1}|x_t,x_0) q(xt−1∣xt,x0)则为后验

论文①里面给出这个定理

我在以前的文章,也推导出这样的一个定理
如果: P ( x ) ∼ N ( x ∣ μ x , Σ x ) P ( y ∣ x ) ∼ N ( y ∣ A x + B , Q ) 那么: P ( x ∣ y ) ∼ N ( x ∣ μ x − Σ x y Σ y y − 1 μ y , Σ x x − Σ x y Σ y y − 1 Σ y x ) \begin{aligned}如果:&\\&P(x)\sim N(x|\mu_x,\Sigma_x)\\&P(y|x) \sim N(y|Ax+B,Q)\\那么:&\\&P(x|y)\sim N(x|\mu_x-\Sigma_{xy}\Sigma_{yy}^{-1}\mu_y,\Sigma_{xx}-\Sigma_{xy}\Sigma_{yy}^{-1}\Sigma_{yx})\end{aligned}\nonumber 如果:那么:P(x)∼N(x∣μx,Σx)P(y∣x)∼N(y∣Ax+B,Q)P(x∣y)∼N(x∣μx−ΣxyΣyy−1μy,Σxx−ΣxyΣyy−1Σyx)

其中里面的 Σ x y \Sigma_{xy} Σxy表示随机变量x,y的协方差矩阵,而 μ y \mu_y μy是随机变量y的期望。都是可以求出来的

至于怎么求,而刚刚的定理是怎么来的,请看我以前写过的一篇博文:线性动态系统中的概率求解_随机动态系统 条件概率-CSDN博客

好,现在,我们不难发现, P ( x ) P(x) P(x)就是先验,而 P ( y ∣ x ) P(y|x) P(y∣x)则是似然, P ( x ∣ y ) P(x|y) P(x∣y)就是后验。

P ( x ∣ y ) P(x|y) P(x∣y)刚好对应上面那个 q ( x t − 1 ∣ x t , x 0 ) q(x_{t-1}|x_t,x_0) q(xt−1∣xt,x0)。那么也就是说, P ( x t − 1 ∣ x t , x 0 ) P(x_{t-1}|x_t,x_0) P(xt−1∣xt,x0)就是正态分布。至于是否要用刚刚的公式求出来,反而有些麻烦,其实可以直接用上一篇文章那种推导就可以了。

还有一点值得注意的是,在论文①中,里面已经强调了 q ( x t − 1 ∣ x 0 ) q(x_{t-1}|x_0) q(xt−1∣x0)为先验, q ( x t ∣ x t − 1 ) q(x_t|x_{t-1}) q(xt∣xt−1)为似然,而 q ( x t − 1 ∣ x t , x 0 ) q(x_{t-1}|x_t,x_0) q(xt−1∣xt,x0)则为后验

其实论文还提出,如果似然跟先验满足刚刚提出的定理,就可以直接得到后验的公式。

我想说的是,论文只是为了得到后验的公式。如果我们不想得到后验的公式(比如我们只想知道后验是什么分布)

那么根据高斯分布的自共轭性质,如果先验和似然都是高斯分布,那么后验就是高斯分布。就能得出结论了。

3、重建损失问题

在上一篇文章中,对于重构项 E q ( x 1 ∣ x 0 ) log ⁡ P ( x 0 ∣ x 1 ) \mathbb{E}_{q(x_1|x_0)}\\log P(x_0\|x_1) Eq(x1∣x0)logP(x0∣x1),我们进行了一些推导

但其实,那是我自己推的,论文里面没有提到。

虽然得到了结果,但是毕竟不是论文里面的。如果你想看论文里面的推导(毕竟我写错的概率大,而论文错的概率却很小)。可以参考论文②,里面有对重构项的推导。

想看论文里面的推导(毕竟我写错的概率大,而论文错的概率却很小)。可以参考论文②,里面有对重构项的推导。

相关推荐
可乐ea6 分钟前
智能体的模型列表为什么要从三处来源合成:一次让 GPT-6.1 Sol 选不上的发布延迟
人工智能·gpt·chatgpt·智能体框架·模型列表·多源数据合成·客户端工程
freewebsys13 分钟前
【原始POSTMAN】最老一个版本的postman 大家还记得吗?官方已经不支持没有升级了,下载了组件用AI直接升级了下可以使用了!
人工智能
云南新人和数采集团24 分钟前
云南靠谱软件开发公司选型指南:以昆明新腾科技为例
大数据·人工智能·科技
发现你走远了1 小时前
05-权限不是开关:工具调用如何在放行、拦截与追问之间做决定
人工智能·agent·claude
AllData公司负责人1 小时前
AI大模型数据开发底座系列说明书:AllData集成DB-GPT开源项目建设 AI 多模态分析底座,涵盖模态解析/智能大屏/MCP 扩展!
大数据·数据库·人工智能·gpt·数据采集·数据接入·模态解析
syyjhchou3 小时前
自己搭企业内部中转站,怎么让请求更容易命中缓存
人工智能·后端·语言模型·aigc
张然Adolf3 小时前
人工智能电力系统应用新手实战指南
人工智能
高洁013 小时前
数据同化与动态状态估计:让孪生持续贴合现实
人工智能·python·深度学习·transformer·迁移学习
feasibility.3 小时前
一物降一物?AI逆向没有终局:REA拆App,BLA设套,LASIK清场
人工智能·爬虫·github·逆向·skill·rea
通信仿真爱好者4 小时前
第【139】期--基于深度学习的OFDM信道估计方法研究--python完整代码
python·深度学习·ofdm·信道估计