扩散模型的数学原理

快速理解

[说明]:此节使用通俗语言进行扩散模型的总体概述,用词较为冗杂,某些概念为简易性做了些许牺牲,可能略有偏颇。深入理解请继续阅读后续章节,概念定义也以后续章节为准。

扩散模型是一类生成模型,在训练此类模型时,它可以被分为两个阶段,分别称为扩散阶段逆扩散阶段扩散阶段主要对训练数据样本 x 0 x_0 x0不断添加高斯噪声,在重复足够的次数(一般表示为 T T T步)后,此数据样本变为各项独立的高斯样本 x T x_T xT,这与VAE中的编码过程神似。逆扩散过程是主要是对一个高斯样本 x T x_T xT不断的进行减高斯噪声的操作,在 T T T步后将获得一个符合训练数据分布的样本 x 0 ′ x'_0 x0,这与VAE中解码神似。如果此过程被确定,则在推理阶段我们能使用任意的高斯样本逆扩散为一个符合训练数据分布的样本(这达到了生成模型的目的)。此训练过程可以用下图表示:
扩散过程(右到左)与逆扩散过程(左到右)
在训练过程,我们将确定一个加入噪声的策略,这被称作nois_schedule,由于高斯噪声的主要影响参数为均值( μ \mu μ)和标准差( σ \sigma σ),此策略主要决定的是当前步数( t t t)时,加入高斯噪声的均值和标准差。在此策略和训练样本 x 0 x_0 x0被确定的情况下,我们的扩散过程能被逐步推出。所以更重要的是逆扩散过程。
在逆扩散过程中,需要做的是逐步减高斯噪声,如果我们将其定义为直接减去扩散过程中加入的那个高斯噪声则在经过 T T T步后就能还原数据样本 x 0 x_0 x0。但这样的定义将毫无意义,因为在推理阶段(从随机高斯样本逆扩散到样本数据),我们并没有加噪声策略的记录,也就无法获得减噪声的策略,逆扩散过程将无法进行。
所以,在训练阶段的逆扩散过程,我们需要使用神经网络来预测这个减噪声的策略,当此策略满足训练集样本的极大似然估计的时侯,推理阶段就可使用此神经网络来生成减噪声策略,从而用随机高斯样本生成符合训练集分布的生成样本。
神经网络损失函数的定义至关重要。在训练过程,由于已知样本数据 x 0 x_0 x0和加噪声策略,我们能轻易求出 x T x_T xT x T − 1 x_{T-1} xT1。所以神经网络可以设定为接收已知的信息 x T x_T xT T T T为输入,预测其减噪声后的结果 x T − 1 ′ x'_{T-1} xT1。已知预测值 x T − 1 ′ x'_{T-1} xT1和真实值 x T − 1 x_{T-1} xT1,损失函数则呼之欲出。(注意,此处不具有数学严谨性,只为描述神经网络的建模想法

数学基础

[说明]:下章节开始介绍扩散模型数学原理,对此数学基础的掌握必不可少。为简单起见,读者可不深究此节相关内容,但需要在阅读下节时实时翻阅,以作为推到的理论基础。

高斯分布表示 (数1)

符号表示: N ( μ , σ 2 ) N(\mu, \sigma^2) N(μ,σ2)。 其中 μ \mu μ为均值, σ \sigma σ为标准差。
概率密度函数:
f ( x ) = 1 2 π σ e x p ( − 1 2 ( x − μ ) 2 σ 2 ) = 1 2 π σ e x p ( − 1 2 ( 1 σ 2 x 2 − 2 μ σ 2 x + μ 2 σ 2 ) ) f(x) = \frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{1}{2}\frac{(x-\mu)^2}{\sigma^2})= \frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{1}{2}(\frac{1}{\sigma^2}x^2-\frac{2\mu}{\sigma^2}x+\frac{\mu^2}{\sigma^2})) f(x)=2π σ1exp(21σ2(xμ)2)=2π σ1exp(21(σ21x2σ22μx+σ2μ2))

高斯分布线性叠加 (数2)

两个高斯分布 X ∼ N ( μ 1 , σ 1 2 ) X\sim N(\mu_1, \sigma^2_1) XN(μ1,σ12) Y ∼ N ( μ 2 , σ 2 2 ) Y\sim N(\mu_2, \sigma^2_2) YN(μ2,σ22)进行线性组合仍然为高斯分布,表示为:
a X + b Y ∼ N ( a μ 1 + b μ 2 , a 2 σ 1 2 + b 2 σ 2 2 ) aX+ bY \sim N(a\mu_1+b\mu_2, a^2\sigma^2_1+b^2\sigma^2_2) aX+bYN(aμ1+bμ2,a2σ12+b2σ22)

重参数化技巧 (数3)

设标准高斯分布 N ( 0 , 1 ) N(0, 1) N(0,1)随机采样的样本为 z z z,高斯分布 N ( μ , σ 2 ) N(\mu, \sigma^2) N(μ,σ2)随机采样的样本表示为 z ′ z' z。使用重参数化技巧,可以将 z ′ z' z表示为:
z ′ = σ z + μ z' = \sigma z + \mu z=σz+μ

贝叶斯公式 (数4)

p ( A ∣ B ) = p ( B ∣ A ) p ( A ) p ( B ) p(A|B) = p(B|A)\frac{p(A)}{p(B)} p(AB)=p(BA)p(B)p(A)

指数乘除法 (数5)

e x p ( a ) ∗ e x p ( b ) / e x p ( c ) = e x p ( a + b − c ) exp(a) * exp(b) / exp(c) = exp(a+b-c) exp(a)exp(b)/exp(c)=exp(a+bc)

扩散过程

给定初始分布 x 0 ∼ q ( x ) x_0\sim q(x) x0q(x)(其中 x 0 x_0 x0代表某各训练样本, q ( x ) q(x) q(x)代表训练数据集分布),可以不断向其中加入高斯噪声。规定此策略为:在 t t t时刻,对 x t − 1 x_{t-1} xt1进行 1 − β t \sqrt{1 - \beta_t} 1βt 倍的数值缩放,并向其中加入 β t \beta_t βt倍标准高斯噪声 z t − 1 z_{t-1} zt1得到数据 x t x_t xt。此过程表示为:
x t = 1 − β t x t − 1 + β t z t − 1     ( 1 ) x_t = \sqrt{1-\beta_t}x_{t-1} +\sqrt{\beta_t}z_{t-1} \ \ \ (1) xt=1βt xt1+βt zt1   (1)
随着t不断增大,最终达到T时,样本数据( x T x_T xT)成了一个各项独立的高斯分布。且由于策略已知, x T x_T xT能通过迭代计算求得。为了节约计算资源并为一些后续工作做准备,可以通过公式推导求得 x t x_t xt x 0 x_0 x0之间的关系,这使得任意时刻的 x t x_t xt能通过公式一步求得。具体公式推导如下:
为方便表示,令 α t = 1 − β t \alpha_t = 1-\beta_t αt=1βt α ˉ t = ∏ i = 1 T α i \bar{\alpha}_t=\prod^{T}_{i=1}\alpha_i αˉt=i=1Tαi。要求给定 x t − 1 x_{t-1} xt1情况下 x t x_t xt的分布函数 q ( x t ∣ x t − 1 ) q(x_t|x_{t-1}) q(xtxt1)。由(1)和(数3)进行比对可得:
q ( x t ∣ x t − 1 ) = N ( 1 − β t x t − 1 , β t )   ( 2 ) = N ( α t x t − 1 , 1 − α t )   ( 3 ) \begin{aligned} q(x_t|x_{t-1}) &= N(\sqrt{1-\beta_t}x_{t-1},\beta_t) \ (2)\\ &=N(\sqrt{\alpha_t}x_{t-1}, 1-\alpha_t) \ (3) \\ \end{aligned} q(xtxt1)=N(1βt xt1,βt) (2)=N(αt xt1,1αt) (3)
x t x_t xt进行递归拆解:
x t = α t x t − 1 + 1 − α t z t − 1   ( 5 )     w h e r e   z t − 1 , z t − 2 , . . . , z ∼ N ( 0 , 1 ) = α t ( α t − 1 x t − 2 + 1 − α t − 1 z t − 2 ) + 1 − α t z t − 1   ( 6 ) = α t α t − 1 x t − 2 + α t − α t α t − 1 z t − 2 + 1 − α t z t − 1   ( 7 ) = α t α t − 1 x t − 2 + 1 − α t α t − 1 z t − 2   ( 8 ) = . . . = α ˉ t x 0 + 1 − α ˉ t z   ( 9 ) \begin{aligned} x_t &= \sqrt{\alpha_t}x_{t-1} + \sqrt{1-\alpha_t}z_{t-1} \ (5) \ \ \ where\ z_{t-1},z_{t-2},...,z \sim N(0,1)\\ &=\sqrt{\alpha_t}(\sqrt{\alpha_{t-1}}x_{t-2} + \sqrt{1-\alpha_{t-1}}z_{t-2} ) + \sqrt{1-\alpha_t}z_{t-1} \ (6)\\ &=\sqrt{\alpha_t\alpha_{t-1}}x_{t-2}+\sqrt{\alpha_t-\alpha_t\alpha_{t-1}}z_{t-2}+ \sqrt{1-\alpha_t}z_{t-1} \ (7) \\ &=\sqrt{\alpha_t\alpha_{t-1}}x_{t-2}+\sqrt{1-\alpha_t\alpha_{t-1}}z_{t-2} \ (8) \\ &=... \\ &= \sqrt{\bar{\alpha}_t}x_0 + \sqrt{1 - \bar{\alpha}_t}z \ (9) \end{aligned} xt=αt xt1+1αt zt1 (5)   where zt1,zt2,...,zN(0,1)=αt (αt1 xt2+1αt1 zt2)+1αt zt1 (6)=αtαt1 xt2+αtαtαt1 zt2+1αt zt1 (7)=αtαt1 xt2+1αtαt1 zt2 (8)=...=αˉt x0+1αˉt z (9)
式(7)到式(8)的解释:
由(数3)及(数2)可知, α t − α t α t − 1 z t − 2 + 1 − α t z t − 1 \sqrt{\alpha_t-\alpha_t\alpha_{t-1}}z_{t-2}+ \sqrt{1-\alpha_t}z_{t-1} αtαtαt1 zt2+1αt zt1可重参数化为一个只含标准高斯 z z z 1 − α t α t − 1 z \sqrt{1-\alpha_t\alpha_{t-1}}z 1αtαt1 z,又因为 z t − 2 , z z_{t-2}, z zt2,z都是标准高斯,进行等效替换后为 1 − α t α t − 1 z t − 2 \sqrt{1-\alpha_t\alpha_{t-1}}z_{t-2} 1αtαt1 zt2

逆扩散过程

如果你已经能理解上一节的内容,那祝贺你拥有非凡的语文阅读能力及数学理解能力。这一节的内容可能略难,我对自己的表达能力与数学水平并不是很自信,但拥有如此理解能力的你想必也能轻松阅读这一节,让我们开始吧。
故名思意,逆扩散过程必定是扩散过程的反过程。在上一节中,我们成功求出了 q ( x t ∣ x t − 1 ) q(x_t|x_{t-1}) q(xtxt1)的表达式,这使得我们可以轻松求得任何扩散时刻下的结果。同样,如果我们在逆过程中能求得 q ( x t − 1 ∣ x t ) q(x_{t-1}|x_{t}) q(xt1xt)的表达式,这个逆过程也将成为我们的囊中之物。下面让我们开始吧:
q ( x t − 1 ∣ x t ) = q ( x t ∣ x t − 1 ) ∗ q ( x t − 1 ) q ( x t )    ( 10 )     . . . 由 ( 数 4 ) 可知 = ( α t x t − 1 + 1 − α t z t − 1 ) ∗ α ˉ t − 1 x 0 + 1 − α ˉ t − 1 z α ˉ t x 0 + 1 − α ˉ t z    ( 11 )     . . . 由 ( 5 ) , ( 9 ) 可知 = ( α t x t − 1 + β t z t − 1 ) ∗ α ˉ t − 1 x 0 + 1 − α ˉ t − 1 z α ˉ t x 0 + 1 − α ˉ t z    ( 12 ) ∝ e x p ( − ( x t − α t x t − 1 ) 2 2 β t ) ∗ e x p ( − ( x t − 1 − α ˉ t − 1 x 0 ) 2 2 ( 1 − α ˉ t − 1 ) ) / e x p ( − ( x t − α ˉ t x 0 ) 2 2 ( 1 − α ˉ t ) )    ( 13 )     . . . 由 ( 数 3 ) , ( 数 1 ) 可知 = e x p [ − 1 2 ( ( x t − α t x t − 1 ) 2 β t + ( x t − 1 − α ˉ t − 1 x 0 ) 2 1 − α ˉ t − 1 − ( x t − α ˉ t x 0 ) 2 1 − α ˉ t ) ]    ( 14 )     . . . 由 ( 数 5 ) 可知 = e x p [ − 1 2 ( x t 2 − 2 α t x t x t − 1 + α t x t − 1 2 β t + x t − 1 2 − 2 α ˉ t − 1 x 0 x t − 1 + α ˉ t − 1 x 0 2 1 − α ˉ t − 1 − ( x t − α ˉ t x 0 ) 2 1 − α ˉ t ) ]    ( 15 ) = e x p [ − 1 2 ( ( α t β t + 1 1 − α ˉ t − 1 ) x t − 1 2 − ( 2 α t β t x t + 2 α ˉ t − 1 1 − α ˉ t − 1 x 0 ) x t − 1 + C ) ]    ( 16 )    . . . 由于 x 0 , x t 不含 x t − 1 项被整合为常数 C \begin{aligned} q(x_{t-1}|x_{t}) &= q(x_t|x_{t-1}) * \frac{q(x_{t-1})}{q(x_t)} \ \ (10) \ \ \ ...由(数4)可知\\ &=(\sqrt{\alpha_t}x_{t-1} + \sqrt{1-\alpha_t}z_{t-1}) *\frac{ \sqrt{\bar{\alpha}_{t-1}}x_0 + \sqrt{1 - \bar{\alpha}_{t-1}}z}{ \sqrt{\bar{\alpha}_t}x_0 + \sqrt{1 - \bar{\alpha}_t}z} \ \ (11) \ \ \ ...由(5),(9)可知\\ &=(\sqrt{\alpha_t}x_{t-1} + \sqrt{\beta_t}z_{t-1}) *\frac{ \sqrt{\bar{\alpha}_{t-1}}x_0 + \sqrt{1 - \bar{\alpha}_{t-1}}z}{ \sqrt{\bar{\alpha}_t}x_0 + \sqrt{1 - \bar{\alpha}_t}z} \ \ (12) \\ &\propto exp(-\frac{(x_t-\sqrt{\alpha_t}x_{t-1})^2}{2\beta_t}) * exp(-\frac{(x_{t-1}-\sqrt{\bar{\alpha}_{t-1}}x_0)^2}{2(1- \bar{\alpha}_{t-1})}) / exp(-\frac{(x_{t}-\sqrt{\bar{\alpha}_{t}}x_0)^2}{2(1- \bar{\alpha}_{t})}) \ \ (13) \ \ \ ...由(数3),(数1)可知\\ &= exp[-\frac{1}{2}(\frac{(x_t-\sqrt\alpha_t x_{t-1})^2}{\beta_t}+\frac{(x_{t-1}-\sqrt{\bar{\alpha}_{t-1}} x_{0})^2}{1-\bar{\alpha}_{t-1} }-\frac{(x_{t}-\sqrt{\bar{\alpha}_t} x_{0})^2}{1-\bar{\alpha}_{t} })] \ \ (14) \ \ \ ...由(数5)可知\\ &=exp[-\frac{1}{2}(\frac{x_t^2-2\sqrt\alpha_tx_t x_{t-1}+\alpha_tx_{t-1}^2}{\beta_t}+\frac{x_{t-1}^2-2\sqrt{\bar{\alpha}_{t-1}} x_{0}x_{t-1}+\bar{\alpha}_{t-1}x_0^2}{1-\bar{\alpha}_{t-1} }-\frac{(x_{t}-\sqrt{\bar{\alpha}_t} x_{0})^2}{1-\bar{\alpha}_{t} })] \ \ (15) \\ &=exp[-\frac{1}{2}((\frac{\alpha_t}{\beta_t}+\frac{1}{1-\bar{\alpha}_{t-1}})x_{t-1}^2-(\frac{2\sqrt\alpha_t}{\beta_t}x_t+\frac{2\sqrt{\bar{\alpha}_{t-1}}}{1-\bar{\alpha}_{t-1}}x_0)x_{t-1} +C)]\ \ (16) \ \ ...由于x_0,x_t不含x_{t-1}项被整合为常数C\\ \end{aligned} q(xt1xt)=q(xtxt1)q(xt)q(xt1)  (10)   ...(4)可知=(αt xt1+1αt zt1)αˉt x0+1αˉt zαˉt1 x0+1αˉt1 z  (11)   ...(5),(9)可知=(αt xt1+βt zt1)αˉt x0+1αˉt zαˉt1 x0+1αˉt1 z  (12)exp(2βt(xtαt xt1)2)exp(2(1αˉt1)(xt1αˉt1 x0)2)/exp(2(1αˉt)(xtαˉt x0)2)  (13)   ...(3),(1)可知=exp[21(βt(xtα txt1)2+1αˉt1(xt1αˉt1 x0)21αˉt(xtαˉt x0)2)]  (14)   ...(5)可知=exp[21(βtxt22α txtxt1+αtxt12+1αˉt1xt122αˉt1 x0xt1+αˉt1x021αˉt(xtαˉt x0)2)]  (15)=exp[21((βtαt+1αˉt11)xt12(βt2α txt+1αˉt12αˉt1 x0)xt1+C)]  (16)  ...由于x0,xt不含xt1项被整合为常数C
与(数1)公式进行对比,可知:
α t β t + 1 1 − α ˉ t − 1 ⇔ 1 σ 2    ( 17 ) 2 α t β t x t + 2 α ˉ t − 1 1 − α ˉ t − 1 x 0 ⇔ 2 μ σ 2    ( 18 ) q ( x t − 1 ∣ x t ) = N ( μ , σ ) \begin{aligned} \frac{\alpha_t}{\beta_t}+\frac{1}{1-\bar{\alpha}_{t-1}}&\Leftrightarrow \frac{1}{\sigma^2} \ \ (17) \\ \\ \frac{2\sqrt\alpha_t}{\beta_t}x_t+\frac{2\sqrt{\bar{\alpha}_{t-1}}}{1-\bar{\alpha}_{t-1}}x_0&\Leftrightarrow\frac{2\mu}{\sigma^2} \ \ (18)\\ \\ q(x_{t-1}|x_{t}) &=N(\mu, \sigma) \end{aligned} βtαt+1αˉt11βt2α txt+1αˉt12αˉt1 x0q(xt1xt)σ21  (17)σ22μ  (18)=N(μ,σ)
将(17)带入(18)得:
α t β t x t + α ˉ t − 1 1 − α ˉ t − 1 x 0 = ( α t β t + 1 1 − α ˉ t − 1 ) μ    ( 19 ) \frac{\sqrt\alpha_t}{\beta_t}x_t+\frac{\sqrt{\bar{\alpha}_{t-1}}}{1-\bar{\alpha}_{t-1}}x_0=(\frac{\alpha_t}{\beta_t}+\frac{1}{1-\bar{\alpha}_{t-1}}){\mu} \ \ (19) βtα txt+1αˉt1αˉt1 x0=(βtαt+1αˉt11)μ  (19)
进行整理得:
μ = α t β t x t + α ˉ t − 1 1 − α ˉ t − 1 x 0 α t β t + 1 1 − α ˉ t − 1    ( 20 ) = ( 1 − α ˉ t − 1 ) α t x t + β t α ˉ t − 1 x 0 ( 1 − α ˉ t − 1 ) α t + β t = ( 1 − α ˉ t − 1 ) α t x t + β t α ˉ t − 1 x 0 α t − α ˉ t − 1 α t + 1 − α t    ( 21 ) = ( 1 − α ˉ t − 1 ) α t x t + β t α ˉ t − 1 x 0 1 − α ˉ t − 1 α t    ( 22 ) = ( 1 − α ˉ t − 1 ) α t x t + β t α ˉ t − 1 x 0 1 − α ˉ t    ( 23 ) \begin{aligned} \mu &= \frac{\frac{\sqrt\alpha_t}{\beta_t}x_t+\frac{\sqrt{\bar{\alpha}_{t-1}}}{1-\bar{\alpha}_{t-1}}x_0}{\frac{\alpha_t}{\beta_t}+\frac{1}{1-\bar{\alpha}_{t-1}}} \ \ (20) \\ &=\frac{(1-\bar{\alpha}_{t-1})\sqrt{\alpha_t}x_t+\beta_t\sqrt{\bar{\alpha}_{t-1}}x_0}{(1-\bar{\alpha}_{t-1})\alpha_t+\beta_t} \\ &=\frac{(1-\bar{\alpha}_{t-1})\sqrt{\alpha_t}x_t+\beta_t\sqrt{\bar{\alpha}_{t-1}}x_0}{\alpha_t-\bar{\alpha}_{t-1}\alpha_t+1-\alpha_t} \ \ (21) \\ &= \frac{(1-\bar{\alpha}_{t-1})\sqrt{\alpha_t}x_t+\beta_t\sqrt{\bar{\alpha}_{t-1}}x_0}{1-\bar{\alpha}_{t-1}\alpha_t} \ \ (22) \\ &=\frac{(1-\bar{\alpha}_{t-1})\sqrt{\alpha_t}x_t+\beta_t\sqrt{\bar{\alpha}_{t-1}}x_0}{1-\bar{\alpha}_{t}} \ \ (23) \end{aligned} μ=βtαt+1αˉt11βtα txt+1αˉt1αˉt1 x0  (20)=(1αˉt1)αt+βt(1αˉt1)αt xt+βtαˉt1 x0=αtαˉt1αt+1αt(1αˉt1)αt xt+βtαˉt1 x0  (21)=1αˉt1αt(1αˉt1)αt xt+βtαˉt1 x0  (22)=1αˉt(1αˉt1)αt xt+βtαˉt1 x0  (23)
将(9)变形得 x 0 = 1 α ˉ t ( x t − 1 − α ˉ t z ) x_0 = \frac{1}{\sqrt{\bar\alpha_t}}(x_t-\sqrt{1-\bar{\alpha}_t}z) x0=αˉt 1(xt1αˉt z),(23)中可用 x t x_t xt代替 x 0 x_0 x0变为:
μ = ( 1 − α ˉ t − 1 ) α t x t + β t α ˉ t − 1 1 α ˉ t ( x t − 1 − α ˉ t z ) 1 − α ˉ t    ( 24 ) = ( 1 − α ˉ t − 1 ) α t x t + β t 1 α t ( x t − 1 − α ˉ t z ) 1 − α ˉ t    ( 25 ) = ( 1 − α ˉ t − 1 ) α t x t + β t ( x t − 1 − α ˉ t z ) ( 1 − α ˉ t ) α t    ( 26 ) = ( 1 − α ˉ t − 1 ) α t + β t ( 1 − α ˉ t ) α t x t − β t 1 − α ˉ t ( 1 − α ˉ t ) α t z    ( 27 ) = 1 a t ( ( 1 − α ˉ t − 1 ) α t + β t 1 − α ˉ t x t − β t 1 − α ˉ t 1 − α ˉ t z )    ( 28 ) = 1 a t ( α t − α ˉ t + 1 − α t 1 − α ˉ t x t − β t 1 − α ˉ t z )    ( 29 ) = 1 a t ( 1 − α ˉ t 1 − α ˉ t x t − β t 1 − α ˉ t z )    ( 30 ) = 1 a t ( x t − β t 1 − α ˉ t z )    ( 31 ) \begin{aligned} \mu &=\frac{(1-\bar{\alpha}_{t-1})\sqrt{\alpha_t}x_t+\beta_t\sqrt{\bar{\alpha}_{t-1}} \frac{1}{\sqrt{\bar\alpha_t}}(x_t-\sqrt{1-\bar{\alpha}_t}z)}{1-\bar{\alpha}_{t}} \ \ (24)\\ &=\frac{(1-\bar{\alpha}_{t-1})\sqrt{\alpha_t}x_t+\beta_t\frac{1}{\sqrt{\alpha_t}}(x_t-\sqrt{1-\bar{\alpha}_t}z)}{1-\bar{\alpha}_{t}} \ \ (25)\\ &=\frac{(1-\bar{\alpha}_{t-1}){\alpha_t}x_t+\beta_t(x_t-\sqrt{1-\bar{\alpha}_t}z)}{(1-\bar{\alpha}_{t})\sqrt{\alpha_t}} \ \ (26)\\ &=\frac{(1-\bar{\alpha}_{t-1}){\alpha_t}+\beta_t }{(1-\bar{\alpha}_{t})\sqrt{\alpha_t}}x_t - \frac{\beta_t\sqrt{1-\bar{\alpha}_t}}{(1-\bar{\alpha}_{t})\sqrt{\alpha_t}}z\ \ (27) \\ &=\frac{1}{\sqrt{a_t}}(\frac{(1-\bar{\alpha}_{t-1}){\alpha_t}+\beta_t }{1-\bar{\alpha}_{t}}x_t - \frac{\beta_t\sqrt{1-\bar{\alpha}_t}}{1-\bar{\alpha}_{t}}z)\ \ (28) \\ &=\frac{1}{\sqrt{a_t}}(\frac{\alpha_t-\bar{\alpha}_{t}+1-\alpha_t }{1-\bar{\alpha}_{t}}x_t - \frac{\beta_t}{\sqrt{1-\bar{\alpha}_{t}}}z)\ \ (29) \\ &=\frac{1}{\sqrt{a_t}}(\frac{1-\bar{\alpha}_{t}}{1-\bar{\alpha}_{t}}x_t - \frac{\beta_t}{\sqrt{1-\bar{\alpha}_{t}}}z) \ \ (30)\\ &=\frac{1}{\sqrt{a_t}}(x_t - \frac{\beta_t}{\sqrt{1-\bar{\alpha}_{t}}}z)\ \ (31) \\ \end{aligned} μ=1αˉt(1αˉt1)αt xt+βtαˉt1 αˉt 1(xt1αˉt z)  (24)=1αˉt(1αˉt1)αt xt+βtαt 1(xt1αˉt z)  (25)=(1αˉt)αt (1αˉt1)αtxt+βt(xt1αˉt z)  (26)=(1αˉt)αt (1αˉt1)αt+βtxt(1αˉt)αt βt1αˉt z  (27)=at 1(1αˉt(1αˉt1)αt+βtxt1αˉtβt1αˉt z)  (28)=at 1(1αˉtαtαˉt+1αtxt1αˉt βtz)  (29)=at 1(1αˉt1αˉtxt1αˉt βtz)  (30)=at 1(xt1αˉt βtz)  (31)
σ \sigma σ的求解更为简单,直接对(17)进行变形即可:
1 σ 2 = α t ( 1 − α ˉ t − 1 ) + β t β t ( 1 − α ˉ t − 1 )    ( 32 ) σ 2 = β t ( 1 − α ˉ t − 1 ) α t ( 1 − α ˉ t − 1 ) + β t    ( 33 ) ≈ β t α t + β t = β t    ( 34 )     . . . 由 α t = 1 − β t 可知 σ = β t     ( 35 ) \begin{aligned} \frac{1}{\sigma^2} &= \frac{\alpha_t(1-\bar{\alpha}_{t-1})+\beta_t}{\beta_t(1-\bar{\alpha}_{t-1})} \ \ (32)\\ \sigma^2 &= \frac{\beta_t(1-\bar{\alpha}_{t-1})}{\alpha_t(1-\bar{\alpha}_{t-1})+\beta_t} \ \ (33) \\ &\approx \frac{\beta_t}{\alpha_t+\beta_t} = \beta_t \ \ (34) \ \ \ ...由\alpha_t=1-\beta_t可知 \\ \sigma&=\sqrt{\beta_t} \ \ \ (35) \end{aligned} σ21σ2σ=βt(1αˉt1)αt(1αˉt1)+βt  (32)=αt(1αˉt1)+βtβt(1αˉt1)  (33)αt+βtβt=βt  (34)   ...αt=1βt可知=βt    (35)
由于 0 < α t < 1 0<\alpha_t<1 0<αt<1,当t足够大有 α ˉ t ≈ 0 \bar{\alpha}_t \approx 0 αˉt0,所以(33)到(34)公式成立。
如果 μ , σ \mu,\sigma μ,σ表达式已知,则条件概率分布 q ( x t − 1 ∣ x t ) = N ( μ , σ ) q(x_{t-1}|x_{t})=N(\mu,\sigma) q(xt1xt)=N(μ,σ)已知,使得我们从一个随机高斯样本 x t x_t xt通过循环迭代能求得符合真实数据分布的样本 x 0 x_0 x0
事实上,我们离上诉描述已经很接近了,但在 μ \mu μ的表达式中,我们存在唯一一个未知量,这就是 z z z。在训练时由于策略已知, z z z可以人为是已知量。但在推理阶段,减噪声策略未知, z z z被视为未知量。此时,神经网络出场了。在训练阶段,我们只需训练一个模型用来预测 z ′ z' z,通过与已知的 z z z做损失对比,完成训练后,使用此网络来求得一系列的 z ′ z' z就能完成整个逆扩散过程。根据论文,模型的输入被定义为 x t 和 t x_t和t xtt,损失函数则可表示为下式:
L simple = E t , x t , z [ ∥ z − ϵ θ ( x t , t ) ∥ 2 ] = E t , x 0 , z [ ∥ z − ϵ θ ( α ˉ t x 0 + 1 − α ˉ t z , t ) ∥ 2 ] \begin{aligned} \mathcal{L}_{\text{simple}} &=\mathbb{E}_{t, \mathbf{x}_{t},z}\left[ \Vert z- \epsilon_{\theta}(x_t, t) \Vert^{2} \right] \\ &=\mathbb{E}_{t, \mathbf{x}_{0},z}\left[ \Vert z - \epsilon_{\theta}(\sqrt{\bar{\alpha}_{t}}x_{0} + \sqrt{1 - \bar{\alpha}_{t}}z, t) \Vert^{2} \right] \end{aligned} Lsimple=Et,xt,z[zϵθ(xt,t)2]=Et,x0,z[zϵθ(αˉt x0+1αˉt z,t)2]
至此,我们的扩散过程与逆扩散过程可被公式完整表达(其中 z z z表示随机高斯采样):
正向
x t = α ˉ t x 0 + 1 − α ˉ t z   x_t = \sqrt{\bar{\alpha}_t}x_0 + \sqrt{1 - \bar{\alpha}_t}z \ xt=αˉt x0+1αˉt z 
逆向:
x t − 1 = 1 α t ( x t − 1 − α t 1 − α t ˉ ϵ θ ( x t , t ) ) + β t z   x_{t-1} = \frac{1}{\sqrt{\alpha_{t}}}(x_t - \frac{1 - \alpha_t}{\sqrt{1 - \bar{\alpha_t}}}\epsilon_{\theta}(x_t, t)) + \sqrt{\beta_t} z \ xt1=αt 1(xt1αtˉ 1αtϵθ(xt,t))+βt z 

代码

https://colab.research.google.com/drive/179Se6GXKB30RQnVt7uqvS-vKsBQnRAee

参考链接

https://t.bilibili.com/700526762586538024?spm_id_from=333.999.0.0
https://zhuanlan.zhihu.com/p/586362713

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
条件潜在扩散模型(Conditional Latent Diffusion Model,CLDM)是一种基于概率图模型的社交网络信息传播模型,它可以用来预测在给定条件下某个节点会不会参与信息传播。 CLDM 基于传统的潜在扩散模型(Latent Diffusion Model,LDM),并加入了条件因素。在 CLDM 中,每个节点都有一个潜在状态,表示它是否会参与信息传播。条件因素可以是节点的属性(如性别、年龄、职业等),也可以是网络结构(如节点之间的关系、社区结构等)。通过考虑这些条件因素,CLDM 可以更准确地预测信息传播的结果。 CLDM 的核心思想是,节点的潜在状态受到两个因素的影响:一是节点自身的属性,二是它邻居节点的状态。具体来说,节点的潜在状态可以通过以下方式计算得到: $$ p(z_i=1|\boldsymbol{x}_i,\boldsymbol{z}_{\mathcal{N}_i})=\sigma\left(\alpha+\beta_1x_{i,1}+\cdots+\beta_mx_{i,m}+\sum_{j\in\mathcal{N}_i}w_{ij}z_j\right) $$ 其中,$z_i$ 表示节点 $i$ 的潜在状态,$\boldsymbol{x}_i$ 是节点 $i$ 的属性向量,$\boldsymbol{z}_{\mathcal{N}_i}$ 是节点 $i$ 的邻居节点的潜在状态向量,$\alpha$ 是一个常数项,$\beta_1,\cdots,\beta_m$ 是节点属性的系数,$w_{ij}$ 是节点 $i$ 和节点 $j$ 之间的权重。$\sigma(\cdot)$ 是 sigmoid 函数,用来将值映射到 $[0,1]$ 范围内。 CLDM 中的参数可以通过极大似然估计来学习,具体来说,就是最大化观测到的信息传播结果的概率。CLDM 可以用于预测某个节点在给定条件下是否会参与信息传播,也可以用于预测整个社交网络的信息传播结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值