EDM:阐明基于扩散生成模型的设计空间
扩散模型的理论密度、采样调度器的推导、训练动力学、以及噪音级别参数化确保了模型在一个坚实的理论基础。然而,这种方式往往模糊了设计空间,即一个模型由紧的耦合包构成。EDM作者们关注了“有型”的对象和训练与采样中的算法,很少关注统计过程,从而在整个系统的设计空间中对元件的连接方式和自由度有了更好的洞见。此外,还有如下贡献:
- 研究了基于扩散模型合成图片的采样过程。
- 研究了基于分数建模神经网络的训练。
注: 这里笔者只关注了扩散模型的设计空间。
在一个框架中表达扩散模型
若数据分布为$p_{data}(x)$,标准差为$\sigma_{data}$,以及对数据加入标准差为$\sigma$高斯噪音之后的mololified分布为$p(x;\sigma)$,那么$\sigma_{max}\gg\sigma_{data}$导致$p(x;\sigma_{max})$与纯高斯噪音无法区分。扩散模型的思想为随机采样一个噪音图片$x_0\sim\mathcal{N}(0,\sigma^2_{max}I)$,再以噪音级别为$\sigma_0=\sigma_{max}\gt\sigma_1\gt\cdots\gt\sigma_N=0$序列的去除噪音形成图片$x_i$。由此,$x_n$的分布与数据的分布一致。
Song等人呈现了一个随机微分方程(SDE),该方程可表达随着样本$x$随时间演化可得到期望分布$p$。基于这种方式可利用随机求解器,从而随机移除噪音和增加噪音。他们也给了对应的“概率流”常微分方程(PFODE),其随机源只有初始的噪音图片$x_0$。由于ODE提供了丰富的分析采样轨迹和离散化的设置,所以从分析ODE开始。

图1 在CIFAR-10中的去噪分数匹配
常微分方程形式
在随着时间前向或反向移动时,一个概率流常微分方程对数据连续的增加或移除噪音。为了确定ODE,需要先选择一个噪音调度$\sigma(t)$,例如:$\sigma(t)\propto\sqrt{t}$,这种设置与常数速度热扩散对应。
概率流常微分方程表示从时间$t_a$到$t_b$,样本由$x_a\sim p(x_a;\sigma(t_a))$变为$x_b\sim p(x_b;\sigma(t_b))$。那么,常微分方程应为
$$
\begin{aligned}
dx=-\dot{\sigma}(t)\sigma(t)\nabla_x logp(x;\sigma(t))dt
\end{aligned}\tag{1}
$$
式(1)中$\cdot$表示对时间的导数。$\nabla_x logp(x;\sigma)$为分数函数,表示在给定噪音级别下指向高密度数据区域的方向向量。
直觉上,该ODE的无穷小步使样本远离数据,其速率取决于噪音级别的变化速度。同样,反向步骤是使样本向数据分布前进。
去噪分数匹配
分数函数的显著特性是它不取决于潜在密度函数$p(x;\sigma)$的难以计算的正则化常量,因此很容易估计。确切的说,若$D(x;\sigma)$为去噪器函数,该函数最小化每个$\sigma$下独立的从$p_{data}$中采样出样本的去噪误差的$L_2$期望值,即
$$
\begin{aligned}
\mathbb{E}_{y\sim p_{data}}\mathbb{E}_{n\sim\mathcal{N}(0,\sigma^2I)}\Vert D(y+n;\sigma)-y\Vert_2^2,\\
then\quad\nabla_{x}logp(x;\sigma)=(D(x;\sigma)-x)/\sigma^2
\end{aligned}\tag{2,3}
$$
其中,$y$为训练数据中图片,$n$为噪音。
分数函数把信号$x$与噪音隔离开,图1描述了实践中理想$D$的行为。然后,基于式(1)可随着时间增加或去除噪音。扩散模型关键点是根据式(2)可利用神经网络$D_{\theta}(x;\sigma)$参数化$D(x;\sigma)$。
注:$D_{\theta}$可能包含辅助的预处理和后处理步骤,例如:缩放$x$到合适的动力学范围。
表1 不同模型家族采用的特定设计选择

时间依赖的信号缩放
一些方法引入了辅助的缩放调度$s(t)$,即$x=s(t)\hat{x}$。这种缩放改变了依赖于时间的概率流密度,因此也改变ODE的解轨迹。式(1)的ODE一般形式为
$$
\begin{aligned}
dx=[\frac{\dot{s}(t)}{s(t)}x-s(t)^2\dot{\sigma}(t)\sigma(t)\nabla_xlogp(\frac{x}{s(t)};\sigma(t))]dt
\end{aligned}\tag{4}
$$
注:在估计分数函数时,作者们确切的取消了$x$的缩放,从而使$p(x;\sigma)$与$s(t)$独立。
离散化方法
ODE的解可通过把式(4)替换为式(3),定义基于点的梯度,解为数值积分,即在离散时间间隔内执行有限步。这种方式需要选择积分方法和离散采样时间$\{t_0,t_1,\cdots,t_N\}$。其中,数值积分可为Euler或Runge-Kutta变体。许多之前的工作选择Euler作为数值积分器,而作者们表明一个二阶的求解器可提供更好的计算平衡。
Putting it together
表1描述了早期方法的三个变体在新框架下的阐述。这些方法被广泛的应用,且实现了SOTA结果,且它们的推导来自不同的理论基础。与之前的Papers不同,新框架移除了方向和迭代。该框架的主要目的是把扩散模型拆解成独立的元件,从而改变一个元件不需要改变其它元件。
版权: 本篇博文采用《CC BY-NC-ND 4.0》,转载必须注明作者和本文链接