生成扩散模型漫谈(六):一般框架之ODE篇
By 苏剑林 | 2022-08-08 | 109937位读者 |上一篇文章《生成扩散模型漫谈(五):一般框架之SDE篇》中,我们对宋飏博士的论文《Score-Based Generative Modeling through Stochastic Differential Equations》做了基本的介绍和推导。然而,顾名思义,上一篇文章主要涉及的是原论文中SDE相关的部分,而遗留了被称为“概率流ODE(Probability flow ODE)”的部分内容,所以本文对此做个补充分享。
事实上,遗留的这部分内容在原论文的正文中只占了一小节的篇幅,但我们需要新开一篇文章来介绍它,因为笔者想了很久后发现,该结果的推导还是没办法绕开Fokker-Planck方程,所以我们需要一定的篇幅来介绍Fokker-Planck方程,然后才能请主角ODE登场。
再次反思 #
我们来大致总结一下上一篇文章的内容:首先,我们通过SDE来定义了一个前向过程(“拆楼”):
\begin{equation}d\boldsymbol{x} = \boldsymbol{f}_t(\boldsymbol{x}) dt + g_t d\boldsymbol{w}\label{eq:sde-forward}\end{equation}
然后,我们推导了相应的逆向过程的SDE(“建楼”):
\begin{equation}d\boldsymbol{x} = \left[\boldsymbol{f}_t(\boldsymbol{x}) - g_t^2\nabla_{\boldsymbol{x}}\log p_t(\boldsymbol{x}) \right] dt + g_t d\boldsymbol{w}\label{eq:sde-reverse}\end{equation}
最后,我们推导了用神经网络$\boldsymbol{s}_{\boldsymbol{\theta}}(\boldsymbol{x}, t)$来估计$\nabla_{\boldsymbol{x}}\log p_t(\boldsymbol{x})$的损失函数(得分匹配):
\begin{equation}\mathbb{E}_{\boldsymbol{x}_0,\boldsymbol{x}_t \sim p(\boldsymbol{x}_t|\boldsymbol{x}_0)\tilde{p}(\boldsymbol{x}_0)}\left[\left\Vert \boldsymbol{s}_{\boldsymbol{\theta}}(\boldsymbol{x}_t, t) - \nabla_{\boldsymbol{x}_t} \log p(\boldsymbol{x}_t|\boldsymbol{x}_0)\right\Vert^2\right] \end{equation}
至此,我们完成了扩散模型的训练、预测的一般框架,可以说,它是DDPM的非常一般化的推广了。但正如《生成扩散模型漫谈(四):DDIM = 高观点DDPM》中介绍的DDIM是DDPM的高观点反思结果,SDE作为DDPM的推广,有没有相应的“高观点反思结果”呢?有,其结果就是本文主题“概率流ODE”。
Dirac函数 #
DDIM做了什么反思呢?很简单,DDIM发现DDPM的训练目标主要跟$p(\boldsymbol{x}_t|\boldsymbol{x}_0)$有关,而跟$p(\boldsymbol{x}_t|\boldsymbol{x}_{t-1})$无关,所以它以$p(\boldsymbol{x}_t|\boldsymbol{x}_0)$为出发点,去推导更一般的$p(\boldsymbol{x}_{t-1}|\boldsymbol{x}_t,\boldsymbol{x}_0)$和$p(\boldsymbol{x}_t|\boldsymbol{x}_{t-1},\boldsymbol{x}_0)$。概率流ODE做的反思是类似的,它想知道在SDE框架中,对于固定的$p(\boldsymbol{x}_t)$,能找出哪些不同的$p(\boldsymbol{x}_{t+\Delta t}|\boldsymbol{x}_t)$(或者说找到不同的前向过程SDE)。
我们先写出前向过程$\eqref{eq:sde-forward}$的离散形式
\begin{equation}\boldsymbol{x}_{t+\Delta t} = \boldsymbol{x}_t + \boldsymbol{f}_t(\boldsymbol{x}_t) \Delta t + g_t \sqrt{\Delta t}\boldsymbol{\varepsilon},\quad \boldsymbol{\varepsilon}\sim \mathcal{N}(\boldsymbol{0}, \boldsymbol{I})\label{eq:sde-discrete}\end{equation}
这个等式描述的是随机变量$\boldsymbol{x}_{t+\Delta t},\boldsymbol{x}_t,\boldsymbol{\varepsilon}$之间的关系,我们可以方便地对两边求期望,然而我们并非想求期望,而是想求分布$p(\boldsymbol{y}_t)$(所满足的关系式)。怎么将分布转换成期望形式呢?答案是Dirac函数:
\begin{equation}p(\boldsymbol{x}) = \int \delta(\boldsymbol{x} - \boldsymbol{y}) p(\boldsymbol{y}) d\boldsymbol{y} = \mathbb{E}_{\boldsymbol{y}}[\delta(\boldsymbol{x} - \boldsymbol{y})]\end{equation}
Dirac函数严格定义是属于泛函分析的内容,但我们通常都是当它是普通函数来处理,一般都能得到正确的结果。由上式还可以得知,对于任意$f(\boldsymbol{x})$,成立
\begin{equation}p(\boldsymbol{x})f(\boldsymbol{x}) = \int \delta(\boldsymbol{x} - \boldsymbol{y}) p(\boldsymbol{y})f(\boldsymbol{y}) d\boldsymbol{y} = \mathbb{E}_{\boldsymbol{y}}[\delta(\boldsymbol{x} - \boldsymbol{y}) f(\boldsymbol{y})]\end{equation}
直接对上式两边求偏导数,得到
\begin{equation}\nabla_{\boldsymbol{x}}[p(\boldsymbol{x}) f(\boldsymbol{x})] = \mathbb{E}_{\boldsymbol{y}}\left[\nabla_{\boldsymbol{x}}\delta(\boldsymbol{x} - \boldsymbol{y}) f(\boldsymbol{y})\right] = \mathbb{E}_{\boldsymbol{y}}\left[f(\boldsymbol{y})\nabla_{\boldsymbol{x}}\delta(\boldsymbol{x} - \boldsymbol{y})\right]\end{equation}
这是后面要用到的性质之一,可以发现它本质上是狄拉克函数的导数能够通过积分转移到所乘函数上去。
F-P方程 #
经过上述铺垫,现在我们根据式$\eqref{eq:sde-discrete}$写出
\begin{equation}\begin{aligned}
&\,\delta(\boldsymbol{x} - \boldsymbol{x}_{t+\Delta t}) \\[5pt]
=&\, \delta(\boldsymbol{x} - \boldsymbol{x}_t - \boldsymbol{f}_t(\boldsymbol{x}_t) \Delta t - g_t \sqrt{\Delta t}\boldsymbol{\varepsilon}) \\
\approx&\, \delta(\boldsymbol{x} - \boldsymbol{x}_t) - \left(\boldsymbol{f}_t(\boldsymbol{x}_t) \Delta t + g_t \sqrt{\Delta t}\boldsymbol{\varepsilon}\right)\cdot \nabla_{\boldsymbol{x}}\delta(\boldsymbol{x} - \boldsymbol{x}_t) + \frac{1}{2} \left(g_t\sqrt{\Delta t}\boldsymbol{\varepsilon}\cdot \nabla_{\boldsymbol{x}}\right)^2\delta(\boldsymbol{x} - \boldsymbol{x}_t)
\end{aligned}\end{equation}
这里当$\delta(\cdot)$是普通函数那样做了泰勒展开,只保留了不超过$\mathcal{O}(\Delta t)$的项。现在我们两边求期望:
\begin{equation}\begin{aligned}
&\,p_{t+\Delta t}(\boldsymbol{x}) \\[6pt]
=&\,\mathbb{E}_{\boldsymbol{x}_{t+\Delta t}}\left[\delta(\boldsymbol{x} - \boldsymbol{x}_{t+\Delta t})\right] \\
\approx&\, \mathbb{E}_{\boldsymbol{x}_t, \boldsymbol{\varepsilon}}\left[\delta(\boldsymbol{x} - \boldsymbol{x}_t) - \left(\boldsymbol{f}_t(\boldsymbol{x}_t) \Delta t + g_t \sqrt{\Delta t}\boldsymbol{\varepsilon}\right)\cdot \nabla_{\boldsymbol{x}}\delta(\boldsymbol{x} - \boldsymbol{x}_t) + \frac{1}{2} \left(g_t\sqrt{\Delta t}\boldsymbol{\varepsilon}\cdot \nabla_{\boldsymbol{x}}\right)^2\delta(\boldsymbol{x} - \boldsymbol{x}_t)\right] \\
=&\, \mathbb{E}_{\boldsymbol{x}_t}\left[\delta(\boldsymbol{x} - \boldsymbol{x}_t) - \boldsymbol{f}_t(\boldsymbol{x}_t) \Delta t\cdot \nabla_{\boldsymbol{x}}\delta(\boldsymbol{x} - \boldsymbol{x}_t) + \frac{1}{2} g_t^2\Delta t \nabla_{\boldsymbol{x}}\cdot \nabla_{\boldsymbol{x}}\delta(\boldsymbol{x} - \boldsymbol{x}_t)\right] \\
=&\,p_t(\boldsymbol{x}) - \nabla_{\boldsymbol{x}}\cdot\left[\boldsymbol{f}_t(\boldsymbol{x})\Delta t\, p_t(\boldsymbol{x})\right] + \frac{1}{2}g_t^2\Delta t \nabla_{\boldsymbol{x}}\cdot\nabla_{\boldsymbol{x}}p_t(\boldsymbol{x})
\end{aligned}\end{equation}
两边除以$\Delta t$,并取$\Delta t\to 0$的极限,结果是
\begin{equation}\frac{\partial}{\partial t} p_t(\boldsymbol{x}) = - \nabla_{\boldsymbol{x}}\cdot\left[\boldsymbol{f}_t(\boldsymbol{x}) p_t(\boldsymbol{x})\right] + \frac{1}{2}g_t^2 \nabla_{\boldsymbol{x}}\cdot\nabla_{\boldsymbol{x}}p_t(\boldsymbol{x})\label{eq:fp}
\end{equation}
这就是式$\eqref{eq:sde-forward}$所对应的“F-P方程”(Fokker-Planck方程),它是描述边际分布的偏微分方程。
等价变换 #
大家看到偏微分方程不用担心,因为这里并没有打算去研究怎么求解偏微分方程,只是借助它来引导一个等价变换而已。对于任意满足$\sigma_t^2\leq g_t^2$的函数$\sigma_t$,F-P方程$\eqref{eq:fp}$完全等价于
\begin{equation}\begin{aligned}
\frac{\partial}{\partial t} p_t(\boldsymbol{x}) =&\, - \nabla_{\boldsymbol{x}}\cdot\left[\boldsymbol{f}_t(\boldsymbol{x})p_t(\boldsymbol{x}) - \frac{1}{2}(g_t^2 - \sigma_t^2)\nabla_{\boldsymbol{x}}p_t(\boldsymbol{x})\right] + \frac{1}{2}\sigma_t^2 \nabla_{\boldsymbol{x}}\cdot\nabla_{\boldsymbol{x}}p_t(\boldsymbol{x}) \\
=&\,- \nabla_{\boldsymbol{x}}\cdot\left[\left(\boldsymbol{f}_t(\boldsymbol{x}) - \frac{1}{2}(g_t^2 - \sigma_t^2)\nabla_{\boldsymbol{x}}\log p_t(\boldsymbol{x})\right)p_t(\boldsymbol{x})\right] + \frac{1}{2}\sigma_t^2 \nabla_{\boldsymbol{x}}\cdot\nabla_{\boldsymbol{x}}p_t(\boldsymbol{x})
\end{aligned}\label{eq:fp-2}\end{equation}
形式上该F-P方程又相当于原来的F-P的$\boldsymbol{f}_t(\boldsymbol{x})$换成了$\boldsymbol{f}_t(\boldsymbol{x}) - \frac{1}{2}(g_t^2 - \sigma_t^2)\nabla_{\boldsymbol{x}}\log p_t(\boldsymbol{x})$、$g_t$换成了$\sigma_t$,根据式$\eqref{eq:fp}$对应于式$\eqref{eq:sde-forward}$,上式则对应于
\begin{equation}d\boldsymbol{x} = \left(\boldsymbol{f}_t(\boldsymbol{x}) - \frac{1}{2}(g_t^2 - \sigma_t^2)\nabla_{\boldsymbol{x}}\log p_t(\boldsymbol{x})\right) dt + \sigma_t d\boldsymbol{w}\label{eq:sde-forward-2}\end{equation}
但是别忘了式$\eqref{eq:fp}$跟式$\eqref{eq:fp-2}$是完全等价的,所以这意味着式$\eqref{eq:sde-forward}$和式$\eqref{eq:sde-forward-2}$这两个随机微分方程所对应的边际分布$p_t(\boldsymbol{x})$是完全等价的!这个结果告诉我们存在不同方差的前向过程,它们产生的边际分布是一样的。这个结果相当于DDIM的升级版,后面我们还会证明,当$\boldsymbol{f}_t(\boldsymbol{x})$是关于$\boldsymbol{x}$的线性函数时,它就完全等价于DDIM。
特别地,根据上一篇SDE的结果,我们可以写出式$\eqref{eq:sde-forward-2}$对应的反向SDE:
\begin{equation}d\boldsymbol{x} = \left(\boldsymbol{f}_t(\boldsymbol{x}) - \frac{1}{2}(g_t^2 + \sigma_t^2)\nabla_{\boldsymbol{x}}\log p_t(\boldsymbol{x})\right) dt + \sigma_t d\boldsymbol{w}\label{eq:sde-reverse-2}\end{equation}
神经ODE #
式$\eqref{eq:sde-forward-2}$允许我们改变采样过程的方差,这里我们特别考虑$\sigma_t = 0$的极端情形,此时SDE退化为ODE(常微分方程):
\begin{equation}d\boldsymbol{x} = \left(\boldsymbol{f}_t(\boldsymbol{x}) - \frac{1}{2}g_t^2\nabla_{\boldsymbol{x}}\log p_t(\boldsymbol{x})\right) dt\label{eq:flow-ode}\end{equation}
这个ODE称为“概率流ODE(Probability flow ODE)”,由于实践中的$\nabla_{\boldsymbol{x}}\log p_t(\boldsymbol{x})$需要用神经网络$\boldsymbol{s}_{\boldsymbol{\theta}}(\boldsymbol{x}, t)$近似,所以上式也对应一个“神经ODE”。
为什么要特别研究方差为0的情形呢?因为此时传播过程不带噪声,从$\boldsymbol{x}_0$到$\boldsymbol{x}_T$是一个确定性变换,所以我们直接反向求解ODE就能得到由$\boldsymbol{x}_T$变换为$\boldsymbol{x}_0$的逆变换,这也是一个确定性变换(直接在式$\eqref{eq:sde-reverse-2}$中代入$\sigma_t=0$也可以发现前向和反向的方程是一样的)。这个过程和flow模型是一致的(即通过一个可逆的变换将噪声变换成样本),所以概率流ODE允许我们将扩散模型的结果与flow模型相关结果对应起来,比如原论文提到概率流ODE允许我们做精确的似然计算、获得隐变量表征等,这些本质上都是flow模型的好处。由于flow模型的可逆性,它还允许我们在隐变量空间对原图做一些图片编辑等。
另一方面,从$\boldsymbol{x}_T$到$\boldsymbol{x}_0$的变换由一个ODE描述,这意味着我们可以通过各种高阶的ODE数值算法来加速从$\boldsymbol{x}_T$到$\boldsymbol{x}_0$的变换过程。当然,原则上SDE的求解也有一些加速方法,但SDE的加速研究远远不如ODE的容易和深入。总的来说,相比SDE,ODE在理论分析和实际求解中都显得更为简单直接。
回顾DDIM #
在《生成扩散模型漫谈(四):DDIM = 高观点DDPM》的最后,我们推导了DDIM的连续版本对应于ODE
\begin{equation}\frac{d}{ds}\left(\frac{\boldsymbol{x}(s)}{\bar{\alpha}(s)}\right) = \boldsymbol{\epsilon}_{\boldsymbol{\theta}}\left(\boldsymbol{x}(s), t(s)\right)\frac{d}{ds}\left(\frac{\bar{\beta}(s)}{\bar{\alpha}(s)}\right)\label{eq:ddim-ode}\end{equation}
接下来我们可以看到,该结果其实就是本文的式$\eqref{eq:flow-ode}$在$\boldsymbol{f}_t(\boldsymbol{x})$取线性函数$f_t \boldsymbol{x}$时的特例:在《生成扩散模型漫谈(五):一般框架之SDE篇》的末尾,我们推导过对应的关系
\begin{equation}\left\{\begin{aligned}
&f_t = \frac{1}{\bar{\alpha}_t}\frac{d\bar{\alpha}_t}{dt} \\
&g^2 (t) = 2\bar{\alpha}_t \bar{\beta}_t \frac{d}{dt}\left(\frac{\bar{\beta}_t}{\bar{\alpha}_t}\right) \\
&\boldsymbol{s}_{\boldsymbol{\theta}}(\boldsymbol{x}, t) = -\frac{\boldsymbol{\epsilon}_{\boldsymbol{\theta}}(\boldsymbol{x}, t)}{\bar{\beta}_t}
\end{aligned}\right.\end{equation}
将这些关系代入到式$\eqref{eq:flow-ode}$【$\nabla_{\boldsymbol{x}}\log p_t(\boldsymbol{x})$替换为$\boldsymbol{s}_{\boldsymbol{\theta}}(\boldsymbol{x}, t)$】后,整理得到
\begin{equation}\frac{1}{\bar{\alpha}_t}\frac{d\boldsymbol{x}}{dt} - \frac{\boldsymbol{x}}{\bar{\alpha}_t^2}\frac{d\bar{\alpha}_t}{dt} = \boldsymbol{\epsilon}_{\boldsymbol{\theta}}(\boldsymbol{x}_t, t)\frac{d}{dt}\left(\frac{\bar{\beta}_t}{\bar{\alpha}_t}\right)\end{equation}
左端可以进一步整理得到$\frac{d}{dt}\left(\frac{\boldsymbol{x}}{\bar{\alpha}_t}\right)$,因此上式跟式$\eqref{eq:ddim-ode}$完全等价。
文章小结 #
本文在SDE篇的基础上,借助F-P方程推导了更一般化的前向方程,继而推导出了“概率流ODE”,并证明了DDIM是它的一个特例。
转载到请包括本文地址:https://spaces.ac.cn/archives/9228
更详细的转载事宜请参考:《科学空间FAQ》
如果您还有什么疑惑或建议,欢迎在下方评论区继续讨论。
如果您觉得本文还不错,欢迎分享/打赏本文。打赏并非要从中获得收益,而是希望知道科学空间获得了多少读者的真心关注。当然,如果你无视它,也不会影响你的阅读。再次表示欢迎和感谢!
如果您需要引用本文,请参考:
苏剑林. (Aug. 08, 2022). 《生成扩散模型漫谈(六):一般框架之ODE篇 》[Blog post]. Retrieved from https://spaces.ac.cn/archives/9228
@online{kexuefm-9228,
title={生成扩散模型漫谈(六):一般框架之ODE篇},
author={苏剑林},
year={2022},
month={Aug},
url={\url{https://spaces.ac.cn/archives/9228}},
}
September 9th, 2022
非常感谢苏神的分享,受益匪浅!请问苏神,在概率流ODE的框架下,输入$x$,最后得到的输出,是跟$x$一模一样,还是输出和x非常接近的$x^{\star}$呢?求解惑
你是说重构结果?还是说前向过程结果?重构结果理论上是完全相等的,但实际受限于计算精度,会有一定误差。
非常感谢苏神的解答!有一点疑惑,正向的噪声是人为指定参数添加的,而反向过程不是使用模型建模的嘛?这是如何保证重构在理论上是完全相同的呢?流模型前向和反向都是模型输出的,感觉可逆性容易理解,放在ODE这里就有点理解不能了QAQ
你没理解本文的逻辑,它是说通过加噪声训练后得到的DDPM或者SDE模型,其中隐含地对应着一个DDIM或者ODE模型,它们的前向过程过程和反向过程都是无噪声的。比如本文的ODE,前向过程和反向过程都是式$\eqref{eq:flow-ode}$,但训练时是普通的带噪声前向过程。
苏神好,有两个疑问!恳请解答:
1. 带噪过程训练得到的DDPM可以在预测时直接使用无噪的过程。
2. 训练时可以找到一个无噪的训练过程,但训练结果和带噪的理论上完全相同?
感谢!
1. DDIM 就是回答了第一个问题
2. “这意味着式(1)和式(12)这两个随机微分方程所对应的边际分布pt(x)是完全等价的”
DDIM的无噪声,仅仅是指$\boldsymbol{x}_t\to\boldsymbol{x}_{t-1}$这一步无噪声,但$\boldsymbol{x}_T$本身就是噪声,所以$\boldsymbol{x}_T\to \boldsymbol{x}_0$本就是噪声到图片的变换。
所以,训练过程也不可能没有噪声的,训练过程也只是用到了$\boldsymbol{x}_0\to \boldsymbol{x}_t$的噪声,没有显式用到$\boldsymbol{x}_{t-1}\to \boldsymbol{x}_t$的噪声,这跟DDIM的生成过程是类似的。
September 27th, 2022
感觉DDIM的推导没有这篇博客关于ODE的推导过程来得直观,赞一个
居然有人觉得这篇更直观哈哈,我也为你赞一个
October 7th, 2022
苏神你好,一直读苏神的博客受益良多。非常感谢。我有一个小疑问就是公式8的系数为1/2的第三项是怎么得到的呢?根据泰勒展开公式我只理解了公式8的前两项/(ㄒoㄒ)/~~
多元泰勒展开公式复习一下?(同时注意已经说了,只保留不超过$\mathcal{O}(\Delta t)$的项)
October 8th, 2022
您好,式17的第二项是不是漏掉了$\boldsymbol{x}$?
是的,已修正,谢谢。
November 28th, 2022
非常感谢苏老师的分享。想请教一下苏老师,F-P方程推导过程中,下面这一步:
\begin{aligned}
\approx&\, \mathbb{E}_{\boldsymbol{x}_t, \boldsymbol{\varepsilon}}\left[\delta(\boldsymbol{x} - \boldsymbol{x}_t) - \left(\boldsymbol{f}_t(\boldsymbol{x}_t) \Delta t + g_t \sqrt{\Delta t}\boldsymbol{\varepsilon}\right)\cdot \nabla_{\boldsymbol{x}}\delta(\boldsymbol{x} - \boldsymbol{x}_t) + \frac{1}{2} \left(g_t\sqrt{\Delta t}\boldsymbol{\varepsilon}\cdot \nabla_{\boldsymbol{x}}\right)^2\delta(\boldsymbol{x} - \boldsymbol{x}_t)\right] \\
=&\, \mathbb{E}_{\boldsymbol{x}_t}\left[\delta(\boldsymbol{x} - \boldsymbol{x}_t) - \boldsymbol{f}_t(\boldsymbol{x}_t) \Delta t\cdot \nabla_{\boldsymbol{x}}\delta(\boldsymbol{x} - \boldsymbol{x}_t) + \frac{1}{2} g_t^2\Delta t \nabla_{\boldsymbol{x}}\cdot \nabla_{\boldsymbol{x}}\delta(\boldsymbol{x} - \boldsymbol{x}_t)\right]
\end{aligned}
中间的 $g_t \sqrt{\Delta t}\boldsymbol{\varepsilon}\cdot \nabla_{\boldsymbol{x}}\delta(\boldsymbol{x} - \boldsymbol{x}_t)$这一项为什么可以省去?还有最后一项的$\boldsymbol{\varepsilon}^2$也不见了?求解惑
啊,好像是对$\boldsymbol{\varepsilon}$求积分,我悟了。。
对,直接算出$\boldsymbol{\varepsilon}$的期望。
我也卡这一步了,只不过积分后,看着貌似还是差一阶?想问下是咋个抵消的,望大佬解惑。
是要用伊普西龙是标准正态分布的条件吧?突然反应了下
必须的。
可以详细解释一下为什么 $g_t \sqrt{\Delta t}\varepsilon$ 这里是怎么消掉的吗?虽然是求积分,但为什么可以不考虑后面的 $\nabla_x \delta(x - x_t)$ 呀?
我懂了。$g_t\sqrt{\Delta t}$ 这里是因为 $\varepsilon$ 是标准正态,所以期望为0。后面 $E(\varepsilon^2)=1$ …
是的
因为$\epsilon$的expectation为0,而它平方的期望为1. $\triangledown$和$\triangledown^2$是对$x$求导,而$x$可以不等于$x_t$或$x_{t+\Delta t}$。
December 8th, 2022
请问公式(8)的第二项是怎么得到的呢
你说的是$\approx$怎么得出?这是直接泰勒展开,保留到$\mathcal{O}(\Delta t)$。
December 21st, 2022
您好,请问关于像处理正常函数一样对dirac函数做求导,展开这些操作,有哪些资料可以参考呢?如果是更数学一些的就更好了!
这个我还真不知道哪里有参考资料(哭笑),本质上这些都是不严谨数学,没太多资料会介绍。
January 16th, 2023
苏老师,能不能给出Eq 13的具体步骤呀,谢谢!
$(12)$代入上一篇文章的$(8)$。
April 3rd, 2023
请问一下11式的等价变换是怎么得到的呢,没有找到有关的数学定理qwq
没事了,深夜看东西脑子不清醒qwq
May 11th, 2023
苏神,有个问题想请教一下
前向过程和逆向过程的$f_t(x), g_t$是需要保持一致的,但是$\sigma_t$无所谓,这样就能保证前向和逆向满足同一个边际分布,但是采样阶段和训练阶段的$\alpha, \beta$ schedule有必要保持一致吗?我看到有些文章用训练好的DDPM网络,和优化后的改变了的$\alpha, \beta$ schedule进行采样,也能保证效果,是因为网络学到的是数据分布,对边际分布如何有一定的鲁棒性嘛?
我好像没印象有这方面的paper,请推荐一下,我去看看。
1、Learning Fast Samplers for Diffusion Models by Differentiating Through Sample Quality
2、Noise Estimation for Generative Diffusion Models
两篇fast-sampling的文章,谢谢~
另外,苏神有时间能看看宋博士的新作Consistency Models嘛?
这篇真的是a new family of generative models吗?谢谢
没感觉跟reflow有什么区别,可以参考 https://kexue.fm/archives/9497 及其评论区。
粗看了一下,大概意思是给定采样步数,然后重新优化这些超参数,进一步改善效果?感觉像是一个工程方法而不是理论框架。
了解了,看来偏应用的研究确实不太重视理论的严谨性,起码我在类似的文章中都没看到合理性证明,把各种变量都当作超参来调,或者拿网络学一下,FID或者似然一个SOTA了就行,感觉有些随意。。。
谢谢回复