欢迎光临散文网 会员登陆 & 注册

AIGC: Non-Gaussian Denoising Diffusion Models 笔记

2023-08-14 18:05 作者:刹那-Ksana-  | 我要投稿

DDPM

众所周知,DDPM 是一个基于马尔可夫链 q(x_%7B1%3AT%7D%7Cx_0)%3D%5Cprod_%7Bt-1%7D%5ETq(x_t%7Cx_%7Bt-1%7D) (这个联合概率分布之前笔记里面也出现过,x_%7B1%3AT%7D 的意思是 x_1%2Cx_2%2C...%2Cx_T),在原图像上逐渐添加高斯噪声 %5Csqrt%7B%5Cbeta_t%7D%5Cepsilon_%7Bt-1%7D%2C%20%5Cepsilon_%7Bt-1%7D%5Csim%20%5Cmathcal%7BN%7D(0%2CI) 的模型(每一步的 %5Cbeta_t 需要足够小)。

所以,x_t%3D%5Csqrt%7B1-%5Cbeta_t%7Dx_%7Bt-1%7D%2B%5Csqrt%7B%5Cbeta_t%7D%5Cepsilon_t

高斯混合分布

高斯混合分布(Gaussian Mixture),就像它的名字所说,是多个高斯分布混合在一起。

显然,我们的加噪过程中,添加的噪声未必要是高斯分布,所以在这里,论文里面讨论了噪声高斯混合分布的情况(而高斯分布则变成了高斯混合分布的一个特例)。这里我们依旧以 %5Cepsilon_t 代表高斯噪声,而高斯混合分布情况下,加噪过程有x_t%3D%5Csqrt%7B1-%5Cbeta_t%7Dx_%7Bt-1%7D%2B%5Csqrt%7B%5Cbeta_t%7D(%5Csum_%7Bi%3D0%7D%5EC%20z_i%20%5Cepsilon_t%5Ei)

这里,论文特别讨论了当 C%3D2 时的情况,即:

x_t%20%3D%20%5Csqrt%7B1%20-%20%5Cbeta_t%7D%20x_%7Bt-1%7D%20%2B%20%5Csqrt%7B%5Cbeta_t%7D(b%20%5Cepsilon%5E1_t%20%2B%20(1-b)%5Cepsilon%5E2_t)%2C%5C%5C%20%5Cepsilon%5E1_t%20%5Csim%20N(m%5E1_t%2C%20%7B%5Cphi_t%7D%5E2)%2C%20%5Cepsilon%5E1_t%20%5Csim%20N(m%5E2_t%2C%20%7B%5Cphi_t%7D%5E2)%2C%20b%20%5Csim%20%5Cmathcal%20Bernoulli(p)

这里我们令 X_t%20%3D%20b%20%5Cepsilon%5E1_t%20%2B%20(1-b)%5Cepsilon%5E2_t (即公式里面的噪音部分,去掉 %5Csqrt%7B%5Cbeta_t%7D), 并且我们希望这个噪音具有一些"高斯"特性,即 E(X_t)%3D0%2CV(X_t)%3D1.

我们知道,针对高斯分布有 E(X)%3D%5Cmu%2C%5C%20Var(X)%3D%5Csigma%5E2,以及,针对伯努利分布有 E(X)%3Dp%2C%5C%20Var(X)%3Dp(1-p)

所以,三个待定系数 m_t%5E1%2C%20m_t%5E2 和 %5Cphi_t,我们根据 E(X_t)%3D0%2CV(X_t)%3D1,可以有如下的等式:

m_t%5E1%20%3D%20%5Csqrt%7B%5Cfrac%7B1-%7B%5Cphi_t%7D%5E2%7D%7Bp(1-p)%20%2B%20%5Cfrac%7Bp%5E3%7D%7B1-p%7D%20%2B%202p%5E2%7D%7D

m_t%5E2%20%3D%20-%5Cfrac%7Bp%7D%7B1-p%7Dm_t%5E1

额,上面的公式不是特别重要。

现在我们可以让 %5Cphi_t%5E2 作为一个自由参数,%5Cmathcal%7BM%7D(%5Cphi_t%5E2) 来代表一个由两个高斯分布——均值如上,方差均为 %5Cphi_t%5E2 ,且权重相同 p%3D0.5——所组成的高斯混合模型。N_t%5Csim%20%5Cmathcal%7BM%7D(%5Cphi_t%5E2),且 %7B%5Calpha%7D_t%3D1-%5Cbeta_t%2C%5C%20%5Cbar%7B%5Calpha%7D%3D%5Cprod_%7Bi%3D1%7D%5ET%20%7B%5Calpha%7D_i,那么我们有:

x_t%20%3D%20%5Csqrt%7B%5Cbar%20%5Calpha_t%7D%20x_0%20%2B%20%5Csqrt%7B1%20-%20%5Cbar%5Calpha_t%7DN_t

这里,论文认为,类似于 DDPM,逆向过程也可以取类似的形式:

x_%7Bt-1%7D%20%3D%5Cfrac%7B1%7D%7B%5Csqrt%7B%5Cbar%5Calpha_t%7D%7D%20%20%5Cleft(%20%7Bx_t%20-%20%5Cfrac%7B1%20-%20%5Calpha_t%7D%7B%5Csqrt%7B1-%20%5Cbar%5Calpha_t%7D%7D%5Cvarepsilon_%5Ctheta(x_t%2C%20t)%7D%20%5Cright)%2B%20%5Csigma_t%20N_t

(这里,%5Csigma_t%5E2%3D%5Cbeta_t

有关上面这个式子,论文没有给出任何证明。原 DDPM 的逆向过程是从贝叶斯定理 q(x_%7Bt-1%7D%7Cx_t%2Cx_0)%3Dq(x_t%7Cx_%7Bt-1%7D%2Cx_0)%5Cfrac%7Bq(x_%7Bt-1%7D%7Cx_0)%7D%7Bq(x_t%7Cx_0)%7D 推导出来的。这里我因为懒和菜没有去尝试推导,就假定论文里面的是对的了。

接下来就简单了,我们利用一个神经网络去模拟噪音 N_t, 其余的和 DDPM 的步骤一样。

Denoising Diffusion Gamma Models

不用多说,Denoising Diffusion Gamma Models(2110.05948)是噪音服从 Gamma 分布时候的情况,即:

%20x_t%20%3D%20%5Csqrt%7B1%20-%20%5Cbeta_t%7D%20x_%7Bt-1%7D%20%2B%20(g_t%20-%20%5Cmathbb%7BE%7D(g_t))

其中,g_t%5Csim%20%5CGamma(k_t%2C%20%5Ctheta_t)%2C%5C%20%5Ctheta_t%20%3D%20%5Csqrt%7B%5Cbar%20%5Calpha_t%7D%5Ctheta_0%2C%5C%20k_t%3D%5Cdfrac%7B%5Cbeta_t%7D%7B%5Calpha_t%7B%5Ctheta_0%7D%5E2%7D%5Ctheta_0%2C%5Cbeta_t 是两个超参数(Hyperparameters)。

显然这里有,E(X-E(X))%3D0 所以 %5Cmathbb%7BE%7D(g_t%20-%20%5Cmathbb%7BE%7D(g_t))%3D0;并且,%5Cmathbb%7BE%7D(g_t) 是一个常数,所以 V(g_t%20-%20%5Cmathbb%7BE%7D(g_t))%20%3D%20Var(g_t)%3D%20k_t%7B%5Ctheta_t%7D%5E2%20%3D%20%5Cbeta_t

Gamma 分布的概率密度函数为 %5Cfrac%7B1%7D%7B%5CGamma(k)%5Ctheta%5Ek%7Dx%5E%7Bk-1%7De%5E%7B-x%2F%20%5Ctheta%7D, k 被称作 shape,%5Ctheta 被称作 scale. 

如果多个独立的随机变量 X_i 服从 Gamma 分布 %5CGamma(k_i%2C%5Ctheta),即,这些 Gamma 分布含有相同的 scale %5Ctheta 和不同的 shape k_i, 相加后的随机变量服从 Gamma 分布 %5CGamma(%5Csum_%5Cnolimits%20i%20k_i%2C%5Ctheta) . 这个性质可以用来推导出从 x_0 到 x_t 的公式:

x_t%20%3D%20%5Csqrt%7B%5Cbar%20%5Calpha_t%7D%20x_0%20%2B%20(%5Cbar%20g_t%20-%20%5Cbar%20k_t%5Ctheta_t)%2C%20%5C%20%5Cbar%20g_t%20%5Csim%20%5CGamma(%5Cbar%20k_t%2C%20%5Ctheta_t)%2C%5C%20%5Cbar%20k_t%20%3D%20%5Csum_%7Bi%3D1%7D%5Et%20k_i

推导上述公式,论文里面用的是数学归纳法(假定 x_t 成立,推得 x_%7Bt%2B1%7D 成立),由于不是特别重要,所以不搬过来了,见论文附录。

和上面高斯混合分布不同,这里论文给出了详细的反向过程推导,方法依旧是贝叶斯定理 q(x_%7Bt-1%7D%7Cx_t%2Cx_0)%3Dq(x_t%7Cx_%7Bt-1%7D%2Cx_0)%5Cfrac%7Bq(x_%7Bt-1%7D%7Cx_0)%7D%7Bq(x_t%7Cx_0)%7D,这里三个概率分布都服从 Gamma 分布。由于公式过于复杂,我没仔细看,所以选择略过。

从推导出来的 q(x_%7Bt-1%7D%7Cx_t%2Cx_0) 可以计算变分下界的 loss L_%7BVLB%7D,这里有关的计算流程过于复杂,大概一半左右都没看懂,等着哪天哪个大神出来解释。

总之,最终的结论是,最小化 L_%7BVLB%7D 即等同于最小化的 loss %5Cmathcal%7BL%7D%3D%7C%20%5Cfrac%7B%5Cbar%7Bg%7D_t-%5Cbar%7Bk%7D_t%5Ctheta_t%7D%7B%5Csqrt%7B1-%5Cbar%7B%5Calpha%7D_t%7D%7D-%5Cepsilon_%5Ctheta%20(x_t%2Ct)%20%7C.

DDGM 训练过程和推理过程

所以为什么要用 Gamma 分布作为噪音呢,其实还是为了加速。论文认为比起高斯分布只有一个自由度(Degree of Freedom),即方差, Gamma 分布具有两个自由度,可以调整起来更灵活。对此,论文里面做的实验是,在 DDPM 的环境下,针对 t-50 步时的噪音 %5Chat%7B%5Cepsilon%7D%20%3D%5Cfrac%7B%5Csqrt%7B%5Cbar%20%5Calpha_t%7Dx_0%20-%20x_t%7D%7B%5Csqrt%7B1%20-%20%7C%5Cbar%20%5Calpha_t%7C%7D%7D,分别用高斯分布和 gamma 分布去贴合它,当然 gamma 分布可以调整的更加灵活,自然 gamma 分布可以贴合得更好。

左侧是利用高斯分布贴合,右侧是用gamma分布贴合

(但是问题是 DDPM 我们添加的是高斯噪声,DDGM 我们添加的是 gamma 噪音,这里是不是有点拿着苹果去比橘子了?)

总觉得有些怪怪的。有些高斯分布下成立的东西,拿到 Gamma 分布以后为什么也成立,这一部分论文好像缺少一些解释,网上也找不到任何文章讲解的。说不定哪天,高斯分布的扩散模型走到头了,人们回过头来发现,诶,居然还有这么一篇论文,然后都来研究它了呢?

完。

AIGC: Non-Gaussian Denoising Diffusion Models 笔记的评论 (共 条)

分享到微博请遵守国家法律