Diffusion model 学习笔记(小白版)

· · 科技·工程

填坑中。。。未完待续

DDPM(Denoising Diffusion Probabilistic Models) 是一个参数化的马尔科夫链,是一个隐变量模型,使用变分推断(Variational Inference)训练,在有限的时间产生与数据匹配的样本。扩散过程是一个逐渐添加噪声的过程,该链的变换过程被学习以翻转扩散过程。

前向过程:加噪

给定真实图片 x_0\sim q(x) ,不断加噪声得到 x_1,x_2\dots,x_TT\to \infinx_T 趋于符合高斯分布(即正态分布)\mathcal{N}(0,1)的纯噪声。后一状态由前一状态加上符合高斯分布的噪声 z (采样得到)得到,符合 Markov chain,其数学过程为:

x_t=\sqrt a_t x_{t-1}+\sqrt{1-a_t}z_1\\ q(x_t|x_{t-1})=\mathcal{N}(x_t;\sqrt{1-\beta_t}x_{t-1},\beta_t)I)\\ q(x_{1:T}|x_0)=\prod_{t=1}^Tq(x_t|x_{t-1})\\ \beta_t=1-\alpha_t

其中 \beta 可以作为超参数设置为常数,或用重参数(reparameterzation)学习,随 t 逐渐变大。

任何时刻的分布都可以通过初始状态 x_0 得到

\begin{aligned} x_t&=\sqrt a_t x_{t-1}+\sqrt{1-a_t}z_1\quad(z_1\sim \mathcal{N}(0,I))\\&=\sqrt{\alpha_t}(\sqrt{\alpha_{t-1}}x_{t-2}+\sqrt{1-\alpha_{t-1}}z_2)+\sqrt{1-a_t}z_1\quad(z_2\sim \mathcal{N}(0,I))\\&=\sqrt{\alpha_{t}\alpha_{t-1}}x_{t-2}+\sqrt{\alpha_t(1-\alpha_{t-1})}z_2+\sqrt{1-a_t}z_1\\&=\sqrt{\alpha_{t}\alpha_{t-1}}x_{t-2}+\sqrt{1-\alpha_t\alpha_{t-1}}\overline z_2\quad(\overline z_2\sim \mathcal{N}(0,I))\\ &=\sqrt{\overline{\alpha_t}}x_0+\sqrt{1-\overline{\alpha_t}}\overline z_t\quad(\overline z_t\sim \mathcal{N}(0,I))\\ \overline{\alpha_t}&=\prod_{i=1}^t \alpha_i \end{aligned}\\

其中用到高斯分布的性质 \mathcal{N}(0,\sigma_1^2I)+\mathcal{N}(0,\sigma_2^2I)\sim\mathcal{N}(0,(\sigma_1^2+\sigma_2^2)I)。因此 x_t 满足

q(x_t|x_{0})=\mathcal{N}(x_t;\sqrt{\overline{\alpha_t}}x_0,(1-\overline{\alpha_t})I)

逆向过程:去噪生成

迭代,从 x_t 反求 x_{t-1},直到 x_0。如果我们知道 q(x_{t-1}|x_t),就可以还原出原图分布 x_0。但 q(x_{t-1}|x_t) 无法用解析解简单求得,因此用隐变量模型 p_\theta 近似 q

p_\theta(x_T)=\mathcal{N}(x_T;0,I)\\p_\theta(x_0):=\int p_{\theta}(x_{0:T})dx_{1:T}\\p(x_{0:T}):=p_\theta(x_T)\prod_{t=1}^Tp_\theta(x_{t-1}|x_t)\\p_\theta(x_{t-1}|x_t):=\mathcal{N}(x_{t-1};\mu_\theta(x_t,t),\sigma_\theta(x_t,t))

虽然 q(x_{t-1}|x_t) 无法得到,但如果知道 x_0

\begin{aligned} q(x_{t-1}|x_t,x_0)&=q(x_t|x_{t-1},x_0)\frac{q(x_{t-1}|x_0)}{q(x_t|x_0)}\\ &\propto \exp(-\frac12(\frac{(x_t-\sqrt{\alpha_t}x_{t-1})^2}{\beta_t}+\frac{(x_{t-1}-\sqrt{\overline{\alpha_{t-1}}}x_0)^2}{1-\overline{\alpha_{t-1}}}-\frac{(x_t-\sqrt{\overline{\alpha_t}}x_0)^2}{1-\overline{\alpha_t}}))\\ &=\mathcal{N}(x_{t-1};\tilde\mu(x_t,t_0),\tilde\beta_tI)\\ \tilde\mu(x_t,x_0)&=\frac{\sqrt{\alpha_t}(1-\overline{\alpha}_{t-1})}{1-\overline{\alpha}_{t}}x_t+\frac{\sqrt{\overline\alpha_{t-1}}\beta_t}{1-\overline\alpha_t}x_0\\\tilde\beta_t&:=\frac{1-\overline{\alpha}_{t-1}}{1-\overline{\alpha}_t}\\ x_0&=\frac{1}{\sqrt{\overline{\alpha_t}}}(x_t-\sqrt{1-\overline{\alpha_t}}\overline z_t)\\ \mu_t&=\frac{1}{\sqrt{\alpha_t}}(x_t-\frac{\beta_t}{\sqrt{1-\overline{\alpha_t}}}\overline z_t) \end{aligned} $$ \mu_\theta(x_t,t)=\frac{1}{\sqrt{\alpha_t}}(x_t-\frac{\beta_t}{\sqrt{1-\overline{\alpha_t}}}z_\theta(x_t,t))\\ $$ 根据 $x_{t-1}\sim p_\theta(x_{t-1}|x_t)$ 采样即计算 $$ x_{t-1}=\frac{1}{\sqrt{\alpha_t}}(x_t-\frac{\beta_t}{\sqrt{1-\overline{\alpha_t}}}z_\theta(x_t,t))+\sigma_\theta(x_t,t)z\quad z\sim\mathcal N(0,1) $$ ## 困惑 * 很多不动的名词待查 * >"a certain parameterization of diffusion models reveals an equivalence with denoising score matching over multiple noise levels during training and with annealed Langevin dynamics during sampling." 等价性两端的名词待查 * > We find that the majority of our models’ lossless codelengths are consumed to describe imperceptible image details (Section 4.3). We present a more refined analysis of this phenomenon in the language of lossy compression. * Variational Inference 变分推断 推断:利用已知变量 $x$ 的观测值预测未知变量 $z$ 的后验分布 变分推断: 用一个近似分布来代替复杂的后验分布,将后验推断问题巧妙地转化为优化问题进行求解 * Reparameterization重参数技巧 * stochastic gradient descent 随机梯度下降 * KL divergence * Langevin dynamics * FID score:评估生成图像质量的指标 * lossy compression。还不理解diffusion model 与 data compression 的关系 * lossless codelength * 文中 $L$ 的定义(为什么这么定义?) * Diffusion model 相对与其他方法的优势是什么? 定义简单、训练高效? * 我的理解:后向过程通过使用前向过程训练得到的模型,用纯高斯噪声生成图像。 那么生成的目标是某张与原图相似的图吗? * > $\sigma_\theta(x_t,t)=\sigma_t^2I$,$\sigma_t^2=\beta_t$或 $\sigma_t^2=\tilde\beta_t=\frac{1-\overline{\alpha}_{t-1}}{1-\overline{\alpha}_t}\beta_t$, 为什么可以这样取不用学习?仅仅是实验结果吗? * > 反向过程的 expressiveness 一定程度上由 $p_\theta(x_{t-1}|x_t)$ 中的高斯条件保证,因为前向、反向过程在 $\beta$ 很小时有相同的函数形式。 没读懂 * 3.3部分在干什么?variational bound的可导性如何推出? * 3.4目标函数的化简部分提到的"weight"是加权的意思吗?没看懂14式和12式的关系 * > treating the variational bound terms $L_1 +· · ·+L_T$ as rate and $L_0$ as distortion 为什么可以这样理解 $L$?这里的rate应该如何翻译? * > The distortion decreases steeply in the low-rate region of the rate-distortion plot, indicating that the majority of the bits are indeed allocated to imperceptible distortions. 这一推断如何做出? * diffusion model 似乎是把图像当成一个向量处理,那么是不是也可以用同样的方法处理音乐等其他对象?