论文阅读笔记:Denoising Diffusion Implicit Models (4)

0、快速访问

论文阅读笔记:Denoising Diffusion Implicit Models (1)
论文阅读笔记:Denoising Diffusion Implicit Models (2)
论文阅读笔记:Denoising Diffusion Implicit Models (3)
论文阅读笔记:Denoising Diffusion Implicit Models (4)
论文阅读笔记:Denoising Diffusion Implicit Models (5)

5、接上文论文阅读笔记:Denoising Diffusion Implicit Models (3)

由前向加噪过程,可以推知 q σ ( x t − 2 ∣ x t − 1 , x 0 ) = N ( x t − 2 ∣ 1 − α t − 2 − σ t − 1 2 1 − α t − 1 ⋅ x t − 1 + [ α t − 2 − α t − 1 ⋅ ( 1 − α t − 2 − σ t − 1 2 ) 1 − α t − 1 ] ⋅ x 0 , σ t − 1 2 I ) q_{\sigma}(x_{t-2}|x_{t-1},x_0)=N\bigg(x_{t-2}|\sqrt{\frac{1-\alpha_{t-2}-\sigma_{t-1}^2}{1-\alpha_{t-1}}}\cdot x_{t-1}+ \bigg[\sqrt{\alpha_{t-2}}- \frac{\sqrt{ \alpha_{t-1}\cdot (1-\alpha_{t-2}-\sigma_{t-1}^2} )}{\sqrt{1-\alpha_{t-1}}} \bigg] \cdot x_0 ,\sigma_{t-1}^2 I\bigg) qσ(xt2xt1,x0)=N(xt21αt11αt2σt12 xt1+[αt2 1αt1 αt1(1αt2σt12 )]x0,σt12I)
接下来考虑,跳 2 2 2步时的采样过程,即在给定 x 0 x_0 x0 x t x_t xt时, x t − 2 x_{t-2} xt2时的采样过程,即 q σ ( x t − 2 ∣ x 0 , x t ) q_\sigma(x_{t-2}|x_0,x_t) qσ(xt2x0,xt)的分布。
首先,我们可以确定 q σ ( x t − 2 ∣ x 0 , x t ) q_\sigma(x_{t-2}|x_0,x_t) qσ(xt2x0,xt)是高斯分布,假设其均值和方差分别为 μ t − 2 \mu_{t-2} μt2 σ t − 2 2 \sigma_{t-2}^2 σt22。由于 q σ ( x t − 2 ∣ x 0 , x t ) q_\sigma(x_{t-2}|x_0,x_t) qσ(xt2x0,xt) q σ ( x t − 2 , x t − 1 ∣ x 0 , x t ) q_\sigma(x_{t-2},x_{t-1}|x_0,x_t) qσ(xt2,xt1x0,xt) 的边缘分布。

q σ ( x t − 2 ∣ x 0 , x t ) = ∫ q σ ( x t − 2 , x t − 1 ∣ x 0 , x t ) ⋅ d x t − 1 = ∫ q σ ( x t − 2 ∣ x 0 , x t − 1 ) ⋅ q σ ( x t − 1 ∣ x 0 , x t ) ⋅ d x t − 1 \begin{equation} \begin{split} q_\sigma(x_{t-2}|x_0,x_t)&= \int q_\sigma(x_{t-2},x_{t-1}|x_0,x_t) \cdot dx_{t-1} \\ &=\int q_\sigma(x_{t-2}|x_0,x_{t-1}) \cdot q_\sigma(x_{t-1}|x_0,x_{t}) \cdot dx_{t-1} \end{split} \end{equation} qσ(xt2x0,xt)=qσ(xt2,xt1x0,xt)dxt1=qσ(xt2x0,xt1)qσ(xt1x0,xt)dxt1

因此
μ t − 2 = E ( q σ ( x t − 2 ∣ x 0 , x t ) ) = ∫ x t − 2 ⋅ q σ ( x t − 2 ∣ x 0 , x t ) ⋅ d x t − 2 = ∫ x t − 2 ⋅ ( ∫ q σ ( x t − 2 , ∣ x 0 , x t − 1 ) ⋅ q σ ( x t − 1 ∣ x 0 , x t ) ⋅ d x t − 1 ) ⋅ d x t − 2 = ∫ ∫ x t − 2 ⋅ q σ ( x t − 2 , ∣ x 0 , x t − 1 ) ⋅ q σ ( x t − 1 ∣ x 0 , x t ) ⋅ d x t − 1 ⋅ d x t − 2 = ∫ ( ∫ x t − 2 ⋅ q σ ( x t − 2 ∣ x 0 , x t − 1 ) ⋅ d x t − 2 ) ⋅ q σ ( x t − 1 ∣ x 0 , x t ) ⋅ d x t − 1 = ∫ ( E ( q σ ( x t − 2 , ∣ x 0 , x t − 1 ) ) ⋅ q σ ( x t − 1 ∣ x 0 , x t ) ⋅ d x t − 1 = ∫ ( 1 − α t − 2 − σ t − 1 2 1 − α t − 1 ⋅ x t − 1 + [ α t − 2 − α t − 1 ⋅ ( 1 − α t − 2 − σ t − 1 2 ) 1 − α t − 1 ] ⋅ x 0 ) ⋅ q σ ( x t − 1 ∣ x 0 , x t ) ⋅ d x t − 1 = ∫ ( 1 − α t − 2 − σ t − 1 2 1 − α t − 1 ⋅ x t − 1 ) ⋅ q σ ( x t − 1 ∣ x 0 , x t ) ⋅ d x t − 1 + ∫ ( α t − 2 − α t − 1 ⋅ ( 1 − α t − 2 − σ t − 1 2 ) 1 − α t − 1 ) ⋅ x 0 ⋅ q σ ( x t − 1 ∣ x 0 , x t ) ⋅ d x t − 1 = 1 − α t − 2 − σ t − 1 2 1 − α t − 1 ⋅ ∫ x t − 1 ⋅ q σ ( x t − 1 ∣ x 0 , x t ) ⋅ d x t − 1 + ( α t − 2 − α t − 1 ⋅ ( 1 − α t − 2 − σ t − 1 2 ) 1 − α t − 1 ) ⋅ x 0 ∫ q σ ( x t − 1 ∣ x 0 , x t ) ⋅ d x t − 1 ⏟ = 1 = 1 − α t − 2 − σ t − 1 2 1 − α t − 1 ⋅ E ( q σ ( x t − 1 ∣ x 0 , x t ) ) + ( α t − 2 − α t − 1 ⋅ ( 1 − α t − 2 − σ t − 1 2 ) 1 − α t − 1 ) ⋅ x 0 = 1 − α t − 2 − σ t − 1 2 1 − α t − 1 ⋅ ( 1 − α t − 1 − σ t 2 1 − α t ⋅ x t + [ α t − 1 − α t ⋅ ( 1 − α t − 1 − σ t 2 ) 1 − α t ] ⋅ x 0 ) + ( α t − 2 − α t − 1 ⋅ ( 1 − α t − 2 − σ t − 1 2 ) 1 − α t − 1 ) ⋅ x 0 = 1 − α t − 2 − σ t − 1 2 1 − α t − 1 ⋅ 1 − α t − 1 − σ t 2 1 − α t ⋅ x t + 1 − α t − 2 − σ t − 1 2 1 − α t − 1 ⋅ α t − 1 ⋅ x 0 − 1 − α t − 2 − σ t − 1 2 1 − α t − 1 ⋅ α t ⋅ ( 1 − α t − 1 − σ t 2 ) 1 − α t ⋅ x 0 + α t − 2 ⋅ x 0 − α t − 1 ⋅ ( 1 − α t − 2 − σ t − 1 2 ) 1 − α t − 1 ⋅ x 0 = 1 − α t − 2 − σ t − 1 2 1 − α t − 1 ⋅ 1 − α t − 1 − σ t 2 1 − α t ⋅ x t − 1 − α t − 2 − σ t − 1 2 1 − α t − 1 ⋅ α t ⋅ ( 1 − α t − 1 − σ t 2 ) 1 − α t ⋅ x 0 + α t − 2 ⋅ x 0 ⏟ x 0 = x t − 1 − α t ⋅ z t α t = 1 − α t − 2 − σ t − 1 2 1 − α t − 1 ⋅ 1 − α t − 1 − σ t 2 1 − α t ⋅ x t − 1 − α t − 2 − σ t − 1 2 1 − α t − 1 ⋅ α t ⋅ ( 1 − α t − 1 − σ t 2 ) 1 − α t ⋅ x t − 1 − α t ⋅ z t α t + α t − 2 ⋅ x t − 1 − α t ⋅ z t α t = 1 − α t − 2 − σ t − 1 2 1 − α t − 1 ⋅ 1 − α t − 1 − σ t 2 1 − α t ⋅ x t − 1 − α t − 2 − σ t − 1 2 1 − α t − 1 ⋅ α t ⋅ ( 1 − α t − 1 − σ t 2 ) 1 − α t ⋅ x t α t + 1 − α t − 2 − σ t − 1 2 1 − α t − 1 ⋅ α t ⋅ ( 1 − α t − 1 − σ t 2 ) 1 − α t ⋅ 1 − α t ⋅ z t α t + α t − 2 ⋅ x t − 1 − α t ⋅ z t α t = 1 − α t − 2 − σ t − 1 2 1 − α t − 1 ⋅ α t ⋅ ⋅ ( 1 − α t − 1 − σ t 2 ) 1 − α t ⋅ 1 − α t ⋅ z t α t + α t − 2 ⋅ x t − 1 − α t ⋅ z t α t = α t − 2 ⋅ x t − 1 − α t ⋅ z t α t ⏟ = x 0 + 1 − α t − 2 − σ t − 1 2 1 − α t − 1 ⋅ 1 − α t − 1 − σ t 2 ⋅ z t = = = = = = 令所有的 σ = 0 α t − 2 ⋅ x t − 1 − α t ⋅ z t α t + 1 − α t − 2 ⋅ z t \begin{equation} \begin{split} \mu_{t-2}&=E\big(q_\sigma(x_{t-2}|x_0,x_t)\big) \\ &=\int x_{t-2} \cdot q_\sigma(x_{t-2}|x_0,x_t)\cdot dx_{t-2} \\ &=\int x_{t-2} \cdot \bigg(\int q_\sigma(x_{t-2},|x_0,x_{t-1}) \cdot q_\sigma(x_{t-1}|x_0,x_{t}) \cdot dx_{t-1} \bigg) \cdot dx_{t-2} \\ &=\int \int x_{t-2} \cdot q_\sigma(x_{t-2},|x_0,x_{t-1}) \cdot q_\sigma(x_{t-1}|x_0,x_{t}) \cdot dx_{t-1} \cdot dx_{t-2} \\ &=\int \bigg( \int x_{t-2} \cdot q_\sigma(x_{t-2}|x_0,x_{t-1}) \cdot dx_{t-2} \bigg)\cdot q_\sigma(x_{t-1}|x_0,x_{t}) \cdot dx_{t-1} \\ &=\int \bigg(E(q_\sigma(x_{t-2},|x_0,x_{t-1}) \bigg)\cdot q_\sigma(x_{t-1}|x_0,x_{t}) \cdot dx_{t-1} \\ &=\int \bigg(\sqrt{\frac{1-\alpha_{t-2}-\sigma_{t-1}^2}{1-\alpha_{t-1}}}\cdot x_{t-1}+ \bigg[\sqrt{\alpha_{t-2}}- \frac{\sqrt{ \alpha_{t-1}\cdot (1-\alpha_{t-2}-\sigma_{t-1}^2} )}{\sqrt{1-\alpha_{t-1}}} \bigg] \cdot x_0 \bigg)\cdot q_\sigma(x_{t-1}|x_0,x_{t}) \cdot dx_{t-1} \\ &=\int \bigg(\sqrt{\frac{1-\alpha_{t-2}-\sigma_{t-1}^2}{1-\alpha_{t-1}}}\cdot x_{t-1} \bigg)\cdot q_\sigma(x_{t-1}|x_0,x_{t}) \cdot dx_{t-1} + \int \bigg(\sqrt{\alpha_{t-2}}- \frac{\sqrt{ \alpha_{t-1}\cdot (1-\alpha_{t-2}-\sigma_{t-1}^2} )}{\sqrt{1-\alpha_{t-1}}} \bigg) \cdot x_0 \cdot q_\sigma(x_{t-1}|x_0,x_{t}) \cdot dx_{t-1}\\ &=\sqrt{\frac{1-\alpha_{t-2}-\sigma_{t-1}^2}{1-\alpha_{t-1}}}\cdot \int x_{t-1}\cdot q_\sigma(x_{t-1}|x_0,x_{t}) \cdot dx_{t-1} +\bigg(\sqrt{\alpha_{t-2}}- \frac{\sqrt{ \alpha_{t-1}\cdot (1-\alpha_{t-2}-\sigma_{t-1}^2} )}{\sqrt{1-\alpha_{t-1}}} \bigg) \cdot x_0 \underbrace{ \int q_\sigma(x_{t-1}|x_0,x_{t}) \cdot dx_{t-1}}_{=1}\\ &=\sqrt{\frac{1-\alpha_{t-2}-\sigma_{t-1}^2}{1-\alpha_{t-1}}}\cdot E\bigg(q_\sigma(x_{t-1}|x_0,x_{t})\bigg) +\bigg(\sqrt{\alpha_{t-2}}- \frac{\sqrt{ \alpha_{t-1}\cdot (1-\alpha_{t-2}-\sigma_{t-1}^2} )}{\sqrt{1-\alpha_{t-1}}} \bigg) \cdot x_0 \\ &=\sqrt{\frac{1-\alpha_{t-2}-\sigma_{t-1}^2}{1-\alpha_{t-1}}}\cdot \bigg(\sqrt{\frac{1-\alpha_{t-1}-\sigma_t^2}{1-\alpha_{t}}}\cdot x_t+ \bigg[\sqrt{\alpha_{t-1}}- \frac{\sqrt{ \alpha_t\cdot (1-\alpha_{t-1}-\sigma_t^2} )}{\sqrt{1-\alpha_t}} \bigg] \cdot x_0 \bigg) +\bigg(\sqrt{\alpha_{t-2}}- \frac{\sqrt{ \alpha_{t-1}\cdot (1-\alpha_{t-2}-\sigma_{t-1}^2} )}{\sqrt{1-\alpha_{t-1}}} \bigg) \cdot x_0 \\ &=\sqrt{\frac{1-\alpha_{t-2}-\sigma_{t-1}^2}{1-\alpha_{t-1}}}\cdot \sqrt{\frac{1-\alpha_{t-1}-\sigma_t^2}{1-\alpha_{t}}}\cdot x_t + \bcancel{\sqrt{\frac{1-\alpha_{t-2}-\sigma_{t-1}^2}{1-\alpha_{t-1}}} \cdot \sqrt{\alpha_{t-1}}\cdot x_0} -\sqrt{\frac{1-\alpha_{t-2}-\sigma_{t-1}^2}{1-\alpha_{t-1}}}\cdot \frac{\sqrt{ \alpha_t\cdot (1-\alpha_{t-1}-\sigma_t^2} )}{\sqrt{1-\alpha_t}} \cdot x_0 + \sqrt{\alpha_{t-2}} \cdot x_0 - \bcancel{\frac{\sqrt{ \alpha_{t-1}\cdot (1-\alpha_{t-2}-\sigma_{t-1}^2} )}{\sqrt{1-\alpha_{t-1}}} \cdot x_0}\\ &=\sqrt{\frac{1-\alpha_{t-2}-\sigma_{t-1}^2}{1-\alpha_{t-1}}}\cdot \sqrt{\frac{1-\alpha_{t-1}-\sigma_t^2}{1-\alpha_{t}}}\cdot x_t -\sqrt{\frac{1-\alpha_{t-2}-\sigma_{t-1}^2}{1-\alpha_{t-1}}}\cdot \frac{\sqrt{ \alpha_t\cdot (1-\alpha_{t-1}-\sigma_t^2} )}{\sqrt{1-\alpha_t}} \cdot x_0 + \sqrt{\alpha_{t-2}} \cdot \underbrace{x_0}_{x_0=\frac{x_t-{\sqrt{1-\alpha_t}\cdot z_t}}{\sqrt{\alpha_t}}} \\ &=\sqrt{\frac{1-\alpha_{t-2}-\sigma_{t-1}^2}{1-\alpha_{t-1}}}\cdot \sqrt{\frac{1-\alpha_{t-1}-\sigma_t^2}{1-\alpha_{t}}}\cdot x_t -\sqrt{\frac{1-\alpha_{t-2}-\sigma_{t-1}^2}{1-\alpha_{t-1}}}\cdot \frac{\sqrt{ \alpha_t\cdot (1-\alpha_{t-1}-\sigma_t^2} )}{\sqrt{1-\alpha_t}} \cdot \frac{x_t-{\sqrt{1-\alpha_t}\cdot z_t}}{\sqrt{\alpha_t}} + \sqrt{\alpha_{t-2}} \cdot \frac{x_t-{\sqrt{1-\alpha_t}\cdot z_t}}{\sqrt{\alpha_t}} \\ &=\bcancel{\sqrt{\frac{1-\alpha_{t-2}-\sigma_{t-1}^2}{1-\alpha_{t-1}}}\cdot \sqrt{\frac{1-\alpha_{t-1}-\sigma_t^2}{1-\alpha_{t}}}\cdot x_t} -\bcancel{\sqrt{\frac{1-\alpha_{t-2}-\sigma_{t-1}^2}{1-\alpha_{t-1}}}\cdot \frac{\sqrt{ \alpha_t\cdot (1-\alpha_{t-1}-\sigma_t^2} )}{\sqrt{1-\alpha_t}} \cdot \frac{x_t}{\sqrt{\alpha_t}}} +\sqrt{\frac{1-\alpha_{t-2}-\sigma_{t-1}^2}{1-\alpha_{t-1}}}\cdot \frac{\sqrt{ \alpha_t\cdot (1-\alpha_{t-1}-\sigma_t^2} )}{\sqrt{1-\alpha_t}} \cdot \frac{{\sqrt{1-\alpha_t}\cdot z_t}}{\sqrt{\alpha_t}} + \sqrt{\alpha_{t-2}} \cdot \frac{x_t-{\sqrt{1-\alpha_t}\cdot z_t}}{\sqrt{\alpha_t}} \\ &=\sqrt{\frac{1-\alpha_{t-2}-\sigma_{t-1}^2}{1-\alpha_{t-1}}}\cdot \frac{\bcancel{\sqrt{\alpha_t}}\cdot \sqrt{ \cdot (1-\alpha_{t-1}-\sigma_t^2} )}{\bcancel{\sqrt{1-\alpha_t}}} \cdot \frac{{\bcancel{\sqrt{1-\alpha_t}}\cdot z_t}}{\bcancel{\sqrt{\alpha_t}}} + \sqrt{\alpha_{t-2}} \cdot \frac{x_t-{\sqrt{1-\alpha_t}\cdot z_t}}{\sqrt{\alpha_t}} \\ &=\sqrt{\alpha_{t-2}} \cdot \underbrace{ \frac{x_t-{\sqrt{1-\alpha_t}\cdot z_t}}{\sqrt{\alpha_t}}}_{=x_0}+ \sqrt{\frac{1-\alpha_{t-2}-\sigma_{t-1}^2}{1-\alpha_{t-1}}}\cdot \sqrt{ 1-\alpha_{t-1}-\sigma_t^2} \cdot z_t \\ &\stackrel{\mathrm{令所有的\sigma=0}}{======}\sqrt{\alpha_{t-2}} \cdot \frac{x_t-{\sqrt{1-\alpha_t}\cdot z_t}}{\sqrt{\alpha_t}} + \sqrt{1-\alpha_{t-2}}\cdot z_t \end{split} \end{equation} μt2=E(qσ(xt2x0,xt))=xt2qσ(xt2x0,xt)dxt2=xt2(qσ(xt2,x0,xt1)qσ(xt1x0,xt)dxt1)dxt2=∫∫xt2qσ(xt2,x0,xt1)qσ(xt1x0,xt)dxt1dxt2=(xt2qσ(xt2x0,xt1)dxt2)qσ(xt1x0,xt)dxt1=(E(qσ(xt2,x0,xt1))qσ(xt1x0,xt)dxt1=(1αt11αt2σt12 xt1+[αt2 1αt1 αt1(1αt2σt12 )]x0)qσ(xt1x0,xt)dxt1=(1αt11αt2σt12 xt1)qσ(xt1x0,xt)dxt1+(αt2 1αt1 αt1(1αt2σt12 ))x0qσ(xt1x0,xt)dxt1=1αt11αt2σt12 xt1qσ(xt1x0,xt)dxt1+(αt2 1αt1 αt1(1αt2σt12 ))x0=1 qσ(xt1x0,xt)dxt1=1αt11αt2σt12 E(qσ(xt1x0,xt))+(αt2 1αt1 αt1(1αt2σt12 ))x0=1αt11αt2σt12 (1αt1αt1σt2 xt+[αt1 1αt αt(1αt1σt2 )]x0)+(αt2 1αt1 αt1(1αt2σt12 ))x0=1αt11αt2σt12 1αt1αt1σt2 xt+1αt11αt2σt12 αt1 x0 1αt11αt2σt12 1αt αt(1αt1σt2 )x0+αt2 x01αt1 αt1(1αt2σt12 )x0 =1αt11αt2σt12 1αt1αt1σt2 xt1αt11αt2σt12 1αt αt(1αt1σt2 )x0+αt2 x0=αt xt1αt zt x0=1αt11αt2σt12 1αt1αt1σt2 xt1αt11αt2σt12 1αt αt(1αt1σt2 )αt xt1αt zt+αt2 αt xt1αt zt=1αt11αt2σt12 1αt1αt1σt2 xt 1αt11αt2σt12 1αt αt(1αt1σt2 )αt xt +1αt11αt2σt12 1αt αt(1αt1σt2 )αt 1αt zt+αt2 αt xt1αt zt=1αt11αt2σt12 1αt αt (1αt1σt2 )αt 1αt zt+αt2 αt xt1αt zt=αt2 =x0 αt xt1αt zt+1αt11αt2σt12 1αt1σt2 zt======令所有的σ=0αt2 αt xt1αt zt+1αt2 zt
论文中跳步过程如公式(2)所示,结果貌似与论文中公式略有不同。但是,公式中的 σ t \sigma_t σt是自定义的,因此如果我们令 σ t = 0 \sigma_t=0 σt=0,也就是 x t x_t xt的取值都是确定的,不存在方差了,那么就可以实现跳 2 2 2步了。这个只是均值,至于方差,既然已经令 σ t = 0 \sigma_t=0 σt=0了,那分布 q σ ( x t − 2 ∣ x 0 , x t ) q_\sigma(x_{t-2}|x_0,x_t) qσ(xt2x0,xt)的方差 σ t − 2 2 \sigma_{t-2}^2 σt22肯定等于 0 0 0了。跳 1 1 1步和跳 2 2 2步的分布如公式(3)所示。
跳 1 步时: x t − 1 = α t − 1 ⋅ x t − 1 − α t ⋅ z t α t + 1 − α t − 1 ⋅ z t 跳 2 步时: x t − 2 = α t − 2 ⋅ x t − 1 − α t ⋅ z t α t + 1 − α t − 2 ⋅ z t \begin{equation} \begin{split} 跳1步时:x_{t-1}&=\sqrt{\alpha_{t-1}} \cdot \frac{x_t-{\sqrt{1-\alpha_t}\cdot z_t}}{\sqrt{\alpha_t}} + \sqrt{1-\alpha_{t-1}}\cdot z_t\\ 跳2步时:x_{t-2}&=\sqrt{\alpha_{t-2}} \cdot \frac{x_t-{\sqrt{1-\alpha_t}\cdot z_t}}{\sqrt{\alpha_t}} + \sqrt{1-\alpha_{t-2}}\cdot z_t \end{split} \end{equation} 1步时:xt12步时:xt2=αt1 αt xt1αt zt+1αt1 zt=αt2 αt xt1αt zt+1αt2 zt
结合跳 1 1 1步和 2 2 2步,我们可以推知:跳 n n n步的公式就是 q σ ( x t − n ∣ x t , x 0 ) = α t − n ⋅ x t − 1 − α t ⋅ z t α t + 1 − α t − n ⋅ z t q_\sigma(x_{t-n}|x_t,x_0)=\sqrt{\alpha_{t-n}} \cdot \frac{x_t-{\sqrt{1-\alpha_t}\cdot z_t}}{\sqrt{\alpha_t}} + \sqrt{1-\alpha_{t-n}}\cdot z_t qσ(xtnxt,x0)=αtn αt xt1αt zt+1αtn zt,接下来用数学归纳法证明:

  1. 已经知道跳 1 1 1步时, q σ ( x t − 1 ∣ x t , x 0 ) q_{\sigma}(x_{t-1}|x_t,x_0) qσ(xt1xt,x0)的分布满足公式(·)
    x t − 1 = α t − 1 ⋅ x t − 1 − α t ⋅ z t α t + 1 − α t − 1 ⋅ z t \begin{equation} \begin{split} x_{t-1}&=\sqrt{\alpha_{t-1}} \cdot \frac{x_t-{\sqrt{1-\alpha_t}\cdot z_t}}{\sqrt{\alpha_t}} + \sqrt{1-\alpha_{t-1}}\cdot z_t\\ \end{split} \end{equation} xt1=αt1 αt xt1αt zt+1αt1 zt
  2. 假设跳 n n n步时, q σ ( x t − n ∣ x t , x 0 ) q_{\sigma}(x_{t-n}|x_t,x_0) qσ(xtnxt,x0)的分布满足公式(2)
    x t − n = α t − n ⋅ x t − 1 − α t ⋅ z t α t + 1 − α t − n ⋅ z t \begin{equation} \begin{split} x_{t-n}&=\sqrt{\alpha_{t-n}} \cdot \frac{x_t-{\sqrt{1-\alpha_t}\cdot z_t}}{\sqrt{\alpha_t}} + \sqrt{1-\alpha_{t-n}}\cdot z_t\\ \end{split} \end{equation} xtn=αtn αt xt1αt zt+1αtn zt
  3. 证明:当跳 n + 1 n+1 n+1步时,分布 q σ ( x t − n − 1 ∣ x t , x 0 ) q_{\sigma}(x_{t-n-1}|x_t,x_0) qσ(xtn1xt,x0)满足 x t − n − 1 = α t − n − 1 ⋅ x t − 1 − α t ⋅ z t α t + 1 − α t − n − 1 ⋅ z t x_{t-n-1}=\sqrt{\alpha_{t-n-1}} \cdot \frac{x_t-{\sqrt{1-\alpha_t}\cdot z_t}}{\sqrt{\alpha_t}} + \sqrt{1-\alpha_{t-n-1}}\cdot z_t xtn1=αtn1 αt xt1αt zt+1αtn1 zt
    由于 q σ ( x t − n − 1 ∣ x t , x 0 ) q_{\sigma}(x_{t-n-1}|x_t,x_0) qσ(xtn1xt,x0) q σ ( x t − n − 1 , x t − n ∣ x t , x 0 ) q_{\sigma}(x_{t-n-1},x_{t-n}|x_t,x_0) qσ(xtn1,xtnxt,x0)的边缘分布,因此有
    q σ ( x t − n − 1 ∣ x t , x 0 ) = ∫ q σ ( x t − n − 1 , x t − n ∣ x t , x 0 ) ⋅ d x t − n = ∫ q σ ( x t − n − 1 , ∣ x t − n , x 0 ) ⋅ q σ ( x t − n ∣ x t , x 0 ) ⋅ d x t − n \begin{equation} \begin{split} q_{\sigma}(x_{t-n-1}|x_t,x_0)&=\int q_{\sigma}(x_{t-n-1},x_{t-n}|x_t,x_0) \cdot dx_{t-n} \\ &=\int q_{\sigma}(x_{t-n-1},|x_{t-n},x_0) \cdot q_{\sigma}(x_{t-n}|x_t,x_0) \cdot dx_{t-n} \end{split} \end{equation} qσ(xtn1xt,x0)=qσ(xtn1,xtnxt,x0)dxtn=qσ(xtn1,xtn,x0)qσ(xtnxt,x0)dxtn
    q σ ( x t − n − 1 , ∣ x t − n , x 0 ) = N ( x t − n − 1 ∣ 1 − α t − n − 1 1 − α t − n ⋅ x t − n + [ α t − n − 1 − α t − n ⋅ ( 1 − α t − n − 1 ) 1 − α t − n ] ⋅ x 0 , 0 ) q_{\sigma}(x_{t-n-1},|x_{t-n},x_0)=N\bigg(x_{t-n-1}|\sqrt{\frac{1-\alpha_{t-n-1}}{1-\alpha_{t-n}}}\cdot x_{t-n}+ \bigg[\sqrt{\alpha_{t-n-1}}- \frac{\sqrt{ \alpha_{t-n}\cdot (1-\alpha_{t-n-1}} )}{\sqrt{1-\alpha_{t-n}}} \bigg] \cdot x_0, 0\bigg) qσ(xtn1,xtn,x0)=N(xtn11αtn1αtn1 xtn+[αtn1 1αtn αtn(1αtn1 )]x0,0)
    因此,分布 q σ ( x t − n − 1 ∣ x t , x 0 ) q_{\sigma}(x_{t-n-1}|x_t,x_0) qσ(xtn1xt,x0)的均值 μ t − n − 1 \mu_{t-n-1} μtn1如公式(4)所示。
    μ t − n − 1 = E ( q σ ( x t − n − 1 ∣ x t , x 0 ) ) = ∫ x t − n − 1 ⋅ q σ ( x t − n − 1 ∣ x t , x 0 ) ⋅ d x t − n − 1 = ∫ x t − n − 1 ⋅ ( ∫ q σ ( x t − n − 1 , ∣ x t − n , x 0 ) ⋅ q σ ( x t − n ∣ x t , x 0 ) ⋅ d x t − n ) ⋅ d x t − n − 1 = ∫ ∫ x t − n − 1 ⋅ q σ ( x t − n − 1 , ∣ x t − n , x 0 ) ⋅ q σ ( x t − n ∣ x t , x 0 ) ⋅ d x t − n ⋅ d x t − n − 1 = ∫ ( ∫ x t − n − 1 ⋅ q σ ( x t − n − 1 , ∣ x t − n , x 0 ) ⋅ d x t − n − 1 ) ⋅ q σ ( x t − n ∣ x t , x 0 ) ⋅ d x t − n = ∫ E ( q σ ( x t − n − 1 , ∣ x t − n , x 0 ) ) ⋅ q σ ( x t − n ∣ x t , x 0 ) ⋅ d x t − n = ∫ ( 1 − α t − n − 1 1 − α t − n ⋅ x t − n + [ α t − n − 1 − α t − n ⋅ ( 1 − α t − n − 1 ) 1 − α t − n ] ⋅ x 0 ) ⋅ q σ ( x t − n ∣ x t , x 0 ) ⋅ d x t − n = ∫ 1 − α t − n − 1 1 − α t − n ⋅ x t − n ⋅ q σ ( x t − n ∣ x t , x 0 ) ⋅ d x t − n + ∫ ( [ α t − n − 1 − α t − 1 ⋅ ( 1 − α t − n − 1 ) 1 − α t − n ] ⋅ x 0 ) ⋅ q σ ( x t − n ∣ x t , x 0 ) ⋅ d x t − n = 1 − α t − n − 1 1 − α t − n ⋅ ∫ q σ ( x t − n ∣ x t , x 0 ) ⋅ d x t − n + [ α t − n − 1 − α t − n ⋅ ( 1 − α t − n − 1 ) 1 − α t − n ] ⋅ x 0 = 1 − α t − n − 1 1 − α t − n ⋅ E ( q σ ( x t − n ∣ x t , x 0 ) ) + [ α t − n − 1 − α t − n ⋅ ( 1 − α t − n − 1 ) 1 − α t − n ] ⋅ x 0 ⏟ x 0 = x t − 1 − α t ⋅ z t α t = 1 − α t − n − 1 1 − α t − n ⋅ ( α t − n ⋅ x t − 1 − α t ⋅ z t α t + 1 − α t − n ⋅ z t ) + [ α t − n − 1 − α t − n ⋅ ( 1 − α t − n − 1 ) 1 − α t − n ] ⋅ x t − 1 − α t ⋅ z t α t = 1 − α t − n − 1 1 − α t − n ⋅ α t − n ⋅ x t − 1 − α t ⋅ z t α t + 1 − α t − n − 1 1 − α t − n ⋅ 1 − α t − n ⋅ z t + α t − n − 1 ⋅ x t − 1 − α t ⋅ z t α t − α t − n ⋅ ( 1 − α t − n − 1 ) 1 − α t − n ⋅ x t − 1 − α t ⋅ z t α t = α t − n − 1 ⋅ x t − 1 − α t ⋅ z t α t + 1 − α t − n − 1 ⋅ z t \begin{equation} \begin{split} \mu_{t-n-1}&=E\big(q_{\sigma}(x_{t-n-1}|x_t,x_0) \big)\\ &=\int x_{t-n-1}\cdot q_{\sigma}(x_{t-n-1}|x_t,x_0) \cdot dx_{t-n-1} \\ &=\int x_{t-n-1}\cdot \bigg(\int q_{\sigma}(x_{t-n-1},|x_{t-n},x_0) \cdot q_{\sigma}(x_{t-n}|x_t,x_0) \cdot dx_{t-n} \bigg) \cdot dx_{t-n-1} \\ &=\int \int x_{t-n-1}\cdot q_{\sigma}(x_{t-n-1},|x_{t-n},x_0) \cdot q_{\sigma}(x_{t-n}|x_t,x_0) \cdot dx_{t-n} \cdot dx_{t-n-1} \\ &=\int \bigg( \int x_{t-n-1}\cdot q_{\sigma}(x_{t-n-1},|x_{t-n},x_0) \cdot dx_{t-n-1}\bigg) \cdot q_{\sigma}(x_{t-n}|x_t,x_0) \cdot dx_{t-n} \\ &=\int E\big(q_{\sigma}(x_{t-n-1},|x_{t-n},x_0) \big) \cdot q_{\sigma}(x_{t-n}|x_t,x_0) \cdot dx_{t-n} \\ &=\int \bigg(\sqrt{\frac{1-\alpha_{t-n-1}}{1-\alpha_{t-n}}}\cdot x_{t-n}+ \bigg[\sqrt{\alpha_{t-n-1}}- \frac{\sqrt{ \alpha_{t-n}\cdot (1-\alpha_{t-n-1}} )}{\sqrt{1-\alpha_{t-n}}} \bigg] \cdot x_0 \bigg) \cdot q_{\sigma}(x_{t-n}|x_t,x_0) \cdot dx_{t-n} \\ &=\int \sqrt{\frac{1-\alpha_{t-n-1}}{1-\alpha_{t-n}}}\cdot x_{t-n} \cdot q_{\sigma}(x_{t-n}|x_t,x_0) \cdot dx_{t-n} + \int \bigg(\bigg[\sqrt{\alpha_{t-n-1}}- \frac{\sqrt{ \alpha_{t-1}\cdot (1-\alpha_{t-n-1}} )}{\sqrt{1-\alpha_{t-n}}} \bigg] \cdot x_0 \bigg) \cdot q_{\sigma}(x_{t-n}|x_t,x_0) \cdot dx_{t-n}\\ &=\sqrt{\frac{1-\alpha_{t-n-1}}{1-\alpha_{t-n}}}\cdot \int q_{\sigma}(x_{t-n}|x_t,x_0) \cdot dx_{t-n} + \bigg[\sqrt{\alpha_{t-n-1}}- \frac{\sqrt{ \alpha_{t-n}\cdot (1-\alpha_{t-n-1}} )}{\sqrt{1-\alpha_{t-n}}} \bigg] \cdot x_0 \\ &=\sqrt{\frac{1-\alpha_{t-n-1}}{1-\alpha_{t-n}}}\cdot E\bigg(q_{\sigma}(x_{t-n}|x_t,x_0) \bigg) + \bigg[\sqrt{\alpha_{t-n-1}}- \frac{\sqrt{ \alpha_{t-n}\cdot (1-\alpha_{t-n-1}} )}{\sqrt{1-\alpha_{t-n}}} \bigg] \cdot \underbrace{x_0}_{x_0=\frac{x_t-{\sqrt{1-\alpha_t}\cdot z_t}}{\sqrt{\alpha_t}}} \\ &=\sqrt{\frac{1-\alpha_{t-n-1}}{1-\alpha_{t-n}}}\cdot \bigg(\sqrt{\alpha_{t-n}} \cdot \frac{x_t-{\sqrt{1-\alpha_t}\cdot z_t}}{\sqrt{\alpha_t}} + \sqrt{1-\alpha_{t-n}}\cdot z_t \bigg) + \bigg[\sqrt{\alpha_{t-n-1}}- \frac{\sqrt{ \alpha_{t-n}\cdot (1-\alpha_{t-n-1}} )}{\sqrt{1-\alpha_{t-n}}} \bigg] \cdot \frac{x_t-{\sqrt{1-\alpha_t}\cdot z_t}}{\sqrt{\alpha_t}} \\ &=\bcancel{\sqrt{\frac{1-\alpha_{t-n-1}}{1-\alpha_{t-n}}}\cdot \sqrt{\alpha_{t-n}} \cdot \frac{x_t-{\sqrt{1-\alpha_t}\cdot z_t}}{\sqrt{\alpha_t}} }+\sqrt{\frac{1-\alpha_{t-n-1}}{\bcancel{1-\alpha_{t-n}}}}\cdot \bcancel{\sqrt{1-\alpha_{t-n}}}\cdot z_t + \sqrt{\alpha_{t-n-1}} \cdot \frac{x_t-{\sqrt{1-\alpha_t}\cdot z_t}}{\sqrt{\alpha_t}} - \bcancel{\frac{\sqrt{ \alpha_{t-n}\cdot (1-\alpha_{t-n-1}} )}{\sqrt{1-\alpha_{t-n}}} \cdot \frac{x_t-{\sqrt{1-\alpha_t}\cdot z_t}}{\sqrt{\alpha_t}}} \\ &=\sqrt{\alpha_{t-n-1}} \cdot \frac{x_t-{\sqrt{1-\alpha_t}\cdot z_t}}{\sqrt{\alpha_t}} + \sqrt{1-\alpha_{t-n-1}}\cdot z_t \end{split} \end{equation} μtn1=E(qσ(xtn1xt,x0))=xtn1qσ(xtn1xt,x0)dxtn1=xtn1(qσ(xtn1,xtn,x0)qσ(xtnxt,x0)dxtn)dxtn1=∫∫xtn1qσ(xtn1,xtn,x0)qσ(xtnxt,x0)dxtndxtn1=(xtn1qσ(xtn1,xtn,x0)dxtn1)qσ(xtnxt,x0)dxtn=E(qσ(xtn1,xtn,x0))qσ(xtnxt,x0)dxtn=(1αtn1αtn1 xtn+[αtn1 1αtn αtn(1αtn1 )]x0)qσ(xtnxt,x0)dxtn=1αtn1αtn1 xtnqσ(xtnxt,x0)dxtn+([αtn1 1αtn αt1(1αtn1 )]x0)qσ(xtnxt,x0)dxtn=1αtn1αtn1 qσ(xtnxt,x0)dxtn+[αtn1 1αtn αtn(1αtn1 )]x0=1αtn1αtn1 E(qσ(xtnxt,x0))+[αtn1 1αtn αtn(1αtn1 )]x0=αt xt1αt zt x0=1αtn1αtn1 (αtn αt xt1αt zt+1αtn zt)+[αtn1 1αtn αtn(1αtn1 )]αt xt1αt zt=1αtn1αtn1 αtn αt xt1αt zt +1αtn 1αtn1 1αtn zt+αtn1 αt xt1αt zt1αtn αtn(1αtn1 )αt xt1αt zt =αtn1 αt xt1αt zt+1αtn1 zt
    证毕。综上所述,跳 n n n步的公式为 q σ ( x t − n ∣ x t , x 0 ) = α t − n ⋅ x t − 1 − α t ⋅ z t α t + 1 − α t − n ⋅ z t q_\sigma(x_{t-n}|x_t,x_0)=\sqrt{\alpha_{t-n}} \cdot \frac{x_t-{\sqrt{1-\alpha_t}\cdot z_t}}{\sqrt{\alpha_t}} + \sqrt{1-\alpha_{t-n}}\cdot z_t qσ(xtnxt,x0)=αtn αt xt1αt zt+1αtn zt
    殊途同归,种采样方法就是先预测出 x 0 x_0 x0,然后使用 q σ ( x t ∣ x 0 ) q_\sigma(x_t|x_0) qσ(xtx0)来计算对应的 x t x_t xt
    基于DDIM的多数论文,例如暗图像增强方法LightenDiffusion等,也都是令 σ t = 0 \sigma_t=0 σt=0。论文和代码中使用的跳 n n n步的采样过程如公式(5)所示。
    x t − n = α t − n ⋅ x t − 1 − α t ⋅ z t α t ⏟ 预测出 z t , 进而计算出 x 0 + 1 − α t − n − σ t 2 ⋅ z t + σ t 2 ϵ t ⏟ 标准高斯分布 \begin{equation} \begin{split} x_{t-n}&=\sqrt{\alpha_{t-n}}\cdot \underbrace{\frac{x_t-{\sqrt{1-\alpha_t}\cdot z_t}}{\sqrt{\alpha_t}}}_{预测出z_t,进而计算出x_0}+\sqrt{1-\alpha_{t-n}-\sigma_t^2}\cdot z_t + \sigma_t^2 \underbrace{ \epsilon_t}_{标准高斯分布} \\ \end{split} \end{equation} xtn=αtn 预测出zt,进而计算出x0 αt xt1αt zt+1αtnσt2 zt+σt2标准高斯分布 ϵt
### DDIM概述 去噪扩散隐式模型(DDIM)是一种用于生成建模的技术,它通过引入一种新的采样方法来加速传统扩散模型的推理过程[^4]。DDIM不仅保持了高质量图像生成的能力,还显著提高了效率。 #### 工作原理 在标准的去噪扩散概率模型(DDPM)中,数据逐渐被噪声破坏的过程遵循马尔可夫链,在每一步都加入一定的随机性。然而对于DDIM而言,其核心特点在于允许更灵活地控制这个过程中添加的噪音量。具体来说,当条件满足时,随机项变为零,这意味着整个过程变得完全确定istic而非概率性的[^3]。因此,相比于传统的DDPM, DDIM能够在较少的时间步内完成相似质量的结果生成。 #### 数学表达 DDIM的核心概念可以通过一系列方程描述出来: - 设定初始分布\(q(\mathbf{x}_T)\),其中\(\mathbf{x}_T\)表示经过T次迭代后的含噪输入; \[ q(\mathbf{x}_{t}|\mathbf{x}_{t-1})=\sqrt{\alpha_t}\mathbf{x}_{t-1}+\sqrt{1-\alpha_t}\epsilon \] 这里,\(\alpha_t\)代表衰减因子而\(\epsilon\)则服从标准正态分布N(0,I). - 对于逆向过程,则定义为: \[ p_\theta (\mathbf{x}_{t-1} | \mathbf{x}_t)=\mathcal N (\mu_{\theta}, \Sigma ) \] 其中参数化的均值函数\(\mu _ {\ theta }\) 和协方差矩阵Σ决定了如何从加噪状态恢复原始信号. ```python import torch.nn as nn class DDIM(nn.Module): def __init__(self, beta_schedule='linear', timesteps=1000): super().__init__() self.timesteps = timesteps # Define the schedule of betas & alphas according to given scheme. if beta_schedule == 'linear': self.betas = ... self.alphas = ... def forward(self, x_T, eta=0): # eta controls randomness; set to zero for deterministic sampling """Sample from p(x_0|x_T).""" mu_theta = ... # Compute mean based on current state and model parameters sigma_squared = ... * eta ** 2 # Control variance by adjusting eta value return mu_theta + torch.sqrt(sigma_squared) * torch.randn_like(mu_theta) ``` 上述代码片段展示了简化版的DDIM实现框架,重点在于`forward()`函数内部逻辑——即如何利用给定时间戳下的信息以及eta超参调节最终输出结果中的不确定性程度[^1].
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值