【深度学习】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)],我们进行了一些推导

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

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

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

相关推荐
古希腊掌管学习的神1 分钟前
[机器学习]XGBoost(3)——确定树的结构
人工智能·机器学习
ZHOU_WUYI29 分钟前
4.metagpt中的软件公司智能体 (ProjectManager 角色)
人工智能·metagpt
靴子学长1 小时前
基于字节大模型的论文翻译(含免费源码)
人工智能·深度学习·nlp
AI_NEW_COME2 小时前
知识库管理系统可扩展性深度测评
人工智能
海棠AI实验室2 小时前
AI的进阶之路:从机器学习到深度学习的演变(一)
人工智能·深度学习·机器学习
hunteritself2 小时前
AI Weekly『12月16-22日』:OpenAI公布o3,谷歌发布首个推理模型,GitHub Copilot免费版上线!
人工智能·gpt·chatgpt·github·openai·copilot
IT古董3 小时前
【机器学习】机器学习的基本分类-强化学习-策略梯度(Policy Gradient,PG)
人工智能·机器学习·分类
centurysee3 小时前
【最佳实践】Anthropic:Agentic系统实践案例
人工智能
mahuifa3 小时前
混合开发环境---使用编程AI辅助开发Qt
人工智能·vscode·qt·qtcreator·编程ai
四口鲸鱼爱吃盐3 小时前
Pytorch | 从零构建GoogleNet对CIFAR10进行分类
人工智能·pytorch·分类