AIGC拾遗:Score-based Model

前言

本文尝试总结score-based model的模型构建,训练目标的选择,以及采样生成方式。并且采用这一视角处理前向扩散的马尔可夫过程,给出了另一种看待扩散模型的视角。

模型构建

假设数据分布为\(p(x)\),我们试图通过神经网络的输出\(q(x|\theta)\)拟合\(p(x)\),即

\[\begin{align} p(x) &\sim q(x|\theta)=\frac{1}{Z_{\theta}}\exp(-f(x, \theta)) \tag{1}\label{1}\\ &\Leftrightarrow ~~~\log{p(x)} \sim \log{q(x|\theta)}=-f(x, \theta) - \log{Z_{\theta}} \tag{2}\label{2}\\ &\Leftrightarrow ~~~\nabla_{x}\log{p(x)} \sim \nabla_{x}\log{q(x|\theta)}=s(x, \theta) \tag{3}\label{3}\\ \end{align} \]

其中,\(f(x, \theta)\)为未归一化的概率密度函数;\(Z_{\theta}\)为归一化因子,满足\(Z_{\theta}=\int{\exp(-f(x, \theta))dx}\)\(\nabla_{x}\log{p(x)}\)称作\(p(x)\)的得分函数(score function)。我们可以采用上述不同的公式,制定不同的优化目标。

对于式\eqref{1},优化目标可以设置为最小化\(p(x)\)\(q(x|\theta)\)的KL散度,即\(\min{KL(p(x)\|q(x|\theta))}\);对于式\eqref{2},优化目标可以设置为\(\max{\mathbb{E}_{x\sim p(x)}[\log{q(x|\theta)}]}\),等价于最小化\(p(x)\)\(q(x|\theta)\)的KL散度;对于式\eqref{3},优化目标可以设置为最小化\(p(x)\)\(q(x|\theta)\)的Fisher散度,即\(\min{\mathbb{E}_{x\sim p(x)}[\|\nabla_{x}\log{p(x)}-s(x, \theta)\|^{2}]}\)。对比上述三种优化目标,我们发现,最小化\(p(x)\)\(q(x|\theta)\)的Fisher散度时,绕开了对于\(Z_{\theta}\)的计算,而计算\(Z_{\theta}\)时,由于存在积分问题往往比较困难。因此,基于得分的模型(score-based model),采用神经网络\(s(x, \theta)\)近似数据分布的得分函数\(\nabla_{x}\log{p(x)}\)

训练目标

\[\min{\mathbb{E}_{x \sim p(x)}[\|\nabla_{x}\log{p(x)} - \nabla_{x}\log{q(x|\theta)}\|^2]}=\min{\mathbb{E}_{x \sim p(x)}[\|\nabla_{x}\log{p(x)} - s(x, \theta)\|^{2}]} \tag{4}\label{4} \]

正如上一节所说,基于得分的模型采用的训练目标为式\eqref{4}。然而,实际应用中,\(\nabla_{x}\log{p(x)}\)几乎无法得到。因此,直接利用式\eqref{4}不现实。考虑到全概率公式\(p(x)=\int{p(x|z)p(z)dz}=\mathbb{E}_{z\sim p(z)}[p(x|z)]\),可得

\[\begin{align} \nabla_{x}\log{p(x)} &=\frac{\nabla_{x}p(x)}{p(x)}=\frac{\nabla_{x}\int{p(x|z)p(z)dz}}{p(x)}=\frac{\int{p(z)\nabla_{x}p(x|z)dz}}{p(x)} \notag\\ &=\frac{\int{p(z)p(x|z)\nabla_{x}\log{p(x|z)}dz}}{p(x)}=\int{p(z|x)\nabla_{x}\log{p(x|z)}dz} \notag\\ &=\mathbb{E}_{z \sim p(z|x)}[\nabla_{x}\log{p(x|z)}] \notag\\ \end{align} \]

代入式\eqref{4}可得,

\[\begin{align} \min{\mathbb{E}_{x \sim p(x)}[\|\nabla_{x}\log{p(x)} - s(x, \theta)\|^{2}]} &= \min{\mathbb{E}_{x\sim p(x)}[\|\mathbb{E}_{z \sim p(z|x)}[\nabla_{x}\log{p(x|z)}]-s(x, \theta)\|^{2}]} \notag\\ &= \min{\mathbb{E}_{x\sim p(x)}[\|\mathbb{E}_{z \sim p(z|x)}[\nabla_{x}\log{p(x|z)}-s(x, \theta)]\|^{2}]} \notag\\ &\leq \min{\mathbb{E}_{x\sim p(x)}\mathbb{E}_{z \sim p(z|x)}[\|\nabla_{x}\log{p(x|z)}-s(x, \theta)\|^{2}]} \notag\\ &= \min{\mathbb{E}_{x,z \sim p(x,z)}[\|\nabla_{x}\log{p(x|z)}-s(x, \theta)\|^{2}]} \notag\\ &= \min{\mathbb{E}_{z \sim p(z), x \sim p(x|z)}[\|\nabla_{x}\log{p(x|z)}-s(x, \theta)\|^{2}]} \tag{5}\label{5} \end{align} \]

上式中的\(\leq\)部分,由Jesen不等式\(\|\mathbb{E}[f(x)]\|^{2} \leq \mathbb{E}[\|f(x)\|^{2}]\)得出。式\eqref{5}表明,条件得分匹配是得分匹配的上界。同时,式\(\eqref{5}\)与式\(\eqref{4}\)相比,\(\nabla_{x}\log{p(x|z)}\)更加容易计算,因此,在训练时应用更加方便。事实上

\[\mathbb{E}_{z \sim p(z), x \sim p(x|z)}[\|\nabla_{x}\log{p(x|z)}-s(x, \theta)\|^{2}] = \mathbb{E}_{x \sim p(x)}[\mathbb{E}_{z\sim p(z|x)}[\|\nabla_{x}\log{p(x|z)}-s(x, \theta)\|^{2}]] \]

\[\begin{align} \mathbb{E}_{z\sim p(z|x)}[\|\nabla_{x}\log{p(x|z)}-s(x, \theta)\|^{2}] &= \mathbb{E}_{z\sim p(z|x)}[\|\nabla_{x}\log{p(x|z)}\|^{2}+\|s(x, \theta)\|^{2}-2s(x, \theta) \cdot\nabla_{x}\log{p(x|z)}] \notag\\ &= \mathbb{E}_{z\sim p(z|x)}[\|\nabla_{x}\log{p(x|z)}\|^{2}]+\|s(x, \theta)\|^{2}-2s(x, \theta) \cdot\mathbb{E}_{z\sim p(z|x)}[\nabla_{x}\log{p(x|z)}] \notag\\ &=\mathbb{E}_{z\sim p(z|x)}[\|\nabla_{x}\log{p(x|z)}\|^{2}]+\|s(x, \theta)\|^{2}-2s(x, \theta) \cdot\nabla_{x}\log{p(x)} \notag\\ \end{align} \]

\[\mathbb{E}_{x \sim p(x)}[\|\nabla_{x}\log{p(x)} - s(x, \theta)\|^{2}]=\mathbb{E}_{x \sim p(x)}[\|\nabla_{x}\log{p(x)}\|^{2} + \|s(x, \theta)\|^{2} - 2s(x, \theta) \cdot\nabla_{x}\log{p(x)}] \]

因此,条件得分匹配与得分匹配公式只相差一个与参数\(\theta\)无关的常数\(\mathbb{E}_{x \sim p(x)}[\mathbb{E}_{z\sim p(z|x)}[\|\nabla_{x}\log{p(x|z)}\|^{2}] - \|\nabla_{x}\log{p(x)}\|^{2}]\),式\eqref{5}不仅仅是式\eqref{4}的一个上界,并且二者在训练时完全等价。

得分匹配与扩散

我们将\eqref{5}中的隐变量\(z\)设置为\(x_{0}\),将\(x\)设置为\(x_{t}\),同时将时间\(t\)并入网络的输入中,上述目标改写为

\[\min{\mathbb{E}_{x_{0} \sim p(x_{0}), x_{t} \sim p(x_{t}|x_{0})}[\|\nabla_{x_{t}}\log{p(x_{t}|x_{0})}-s(x_{t}, t, \theta)\|^{2}]} \tag{6}\label{6} \]

其中,\(s(x_{t}, t, \theta)\)用于拟合\(\nabla_{x_{t}}\log{p(x_{t})}\)。保持前向扩散的加噪公式不变,即

\[x_{t}=\bar{\alpha}_{t}x_{0}+\bar{\beta}_{t}\bar{\epsilon}_{t} ~~~~ \Leftrightarrow ~~~ p(x_{t}|x_{0}) \sim \mathcal{N}(x_{t}; \bar{\alpha}_{t}x_{0}, \bar{\beta}_{t}^{2}I) \]

\[\nabla_{x_{t}}\log{p(x_{t}|x_{0})}=-\frac{x_{t}-\bar{\alpha}_{t}x_{0}}{\bar{\beta}_{t}^{2}}=-\frac{\bar{\epsilon}_{t}}{\bar{\beta}_{t}} \]

带入式\eqref{6}可得最终的训练目标为

\[\min {\mathbb{E}_{x_{0} \sim p(x_{0}), \epsilon \sim \mathcal{N}(0, I)}[\|-\frac{\epsilon}{\bar{\beta}_{t}} - s(x_{t}, t, \theta)\|^{2}]} \]

朗之万采样

当网络训练完毕后,即可通过\(s(x_{t}, t, \theta)\)近似\(\nabla_{x_{t}}\log{p(x_{t})}\),此时,可以通过朗之万动力学进行采样。

\[x_{t-1} = x_{t} + \epsilon\nabla_{x_{t}}\log{p(x_{t})} + \sqrt{2\epsilon}z_{t}, ~~~ z_{t} \sim \mathcal{N}(0, I) \]

后记

本文回顾了score-based model的模型构建,即采用神经网络\(s(x, \theta)\)拟合分布的得分函数\(\nabla_{x}\log{p(x)}\)。推导了条件得分匹配与得分匹配之间的关系,并给出了训练时采用的训练目标。给出了在得分匹配视角下处理前向扩散过程的方法,并采用朗之万采样公式进行反向采样生成。

参考文献

  1. https://yang-song.net/blog/2021/score/
  2. https://spaces.ac.cn/archives/9509
posted @ 2025-04-13 21:06  久逺61  阅读(86)  评论(0)    收藏  举报