论文阅读:Improved Denoising Diffusion Probabilistic Models

您所在的位置:网站首页 impoved怎么读 论文阅读:Improved Denoising Diffusion Probabilistic Models

论文阅读:Improved Denoising Diffusion Probabilistic Models

2024-01-20 12:28| 来源: 网络整理| 查看: 265

本文是对ddpm简单的修改,但是能提高ddpm的性能

论文下载地址:https://proceedings.mlr.press/v139/nichol21a.html

我们发现反向过程中可学习的方差允许一个数量级的采样,样本质量的差异可以忽略不计,这对于模型的实际部署很厉害。 关于变分下界的优化

使用简单的重参数化技巧学习优化变分下界。反向过程的方差使用简单的重参数化技巧和一个混合的目标vlb函数。

这样的变化导致少的采样步数,但是发生了很小的质量改变

在实际训练中,关于 μ ( x t , t ) \mu(x_t,t) μ(xt​,t)的参数化的方式

使用网络预测 x 0 x_0 x0​,然后使用公式 μ ˉ ( x t , x 0 ) : = a ˉ t − 1 β t 1 − α ˉ t + α t ( 1 − α ˉ t − 1 ) 1 − α ˉ t x t \bar{\mu } (x_t,x_0):=\frac{\sqrt{\bar{a}_{t-1}}\beta_t}{1-\bar{\alpha} _t} +\frac{\sqrt{\alpha _t}(1-\bar{\alpha }_{t-1} ) }{1-\bar{\alpha } _t}x_t μˉ​(xt​,x0​):=1−αˉt​aˉt−1​ ​βt​​+1−αˉt​αt​ ​(1−αˉt−1​)​xt​可以得到均值。

也可以使用网络预测 ε \varepsilon ε,然后使用

x t = α ˉ t x 0 + ( 1 − α ˉ t ) I x_t=\sqrt{\bar{\alpha}}_tx_0+(\sqrt{1-\bar{\alpha}}_t)I xt​=αˉ ​t​x0​+(1−αˉ ​t​)I

μ ˉ ( x t , x 0 ) : = a ˉ t − 1 β t 1 − α ˉ t + α t ( 1 − α ˉ t − 1 ) 1 − α ˉ t x t \bar{\mu } (x_t,x_0):=\frac{\sqrt{\bar{a}_{t-1}}\beta_t}{1-\bar{\alpha} _t} +\frac{\sqrt{\alpha _t}(1-\bar{\alpha }_{t-1} ) }{1-\bar{\alpha } _t}x_t μˉ​(xt​,x0​):=1−αˉt​aˉt−1​ ​βt​​+1−αˉt​αt​ ​(1−αˉt−1​)​xt​去生成均值 μ ˉ ( x t , x 0 ) \bar{\mu } (x_t,x_0) μˉ​(xt​,x0​)

目前这种方法是最好的,尤其是结合重新加权的损失函数

L simple  = E t , x 0 , ϵ [ ∥ ϵ − ϵ θ ( x t , t ) ∥ 2 ] L_{\text {simple }}=E_{t, x_{0}, \epsilon}\left[\left\|\epsilon-\epsilon_{\theta}\left(x_{t}, t\right)\right\|^{2}\right] Lsimple ​=Et,x0​,ϵ​[∥ϵ−ϵθ​(xt​,t)∥2]

原本的lvb损失 L v l b : = L 0 + L 1 + … + L T − 1 + L T L_{\mathrm{vlb}} :=L_{0}+L_{1}+\ldots+L_{T-1}+L_{T} Lvlb​:=L0​+L1​+…+LT−1​+LT​ L 0 : = − log ⁡ p θ ( x 0 ∣ x 1 ) L_{0} :=-\log p_{\theta}\left(x_{0} \mid x_{1}\right) L0​:=−logpθ​(x0​∣x1​)

L t − 1 : = D K L ( q ( x t − 1 ∣ x t , x 0 ) ∣ ∣ p θ ( x t − 1 ∣ x t ) ) L_{t-1}:=D_{K L}(q\left(x_{t-1} \mid x_{t}, x_{0}\right)|| p_{\theta}(x_{t-1}|x_{t})) Lt−1​:=DKL​(q(xt−1​∣xt​,x0​)∣∣pθ​(xt−1​∣xt​)) L T : = D K L ( q ( x T ∣ x 0 ) ∥ p ( x T ) ) L_{T} :=D_{K L}\left(q\left(x_{T} \mid x_{0}\right) \| p\left(x_{T}\right)\right) LT​:=DKL​(q(xT​∣x0​)∥p(xT​))

对数似然的改进

为研究不同流形上的作用,在image net64*64 上训练固定的模型结构使用固定的超参数。

不同的实验设置对比 方法ho(2020)our损失函数及参数设置 L s i m p l e L_{simple} Lsimple​ & σ 2 = β t \sigma^2=\beta_t σ2=βt​ & T = 10000 T=10000 T=10000 L h y b r i d = L simple  + λ L v l b , λ = 0.001 L_{\mathrm{hybrid}}=L_{\text {simple }}+\lambda L_{\mathrm{vlb}},\lambda = 0.001 Lhybrid​=Lsimple ​+λLvlb​,λ=0.001训练轮数200kT10004000数据集image_net64*64实验结果3.993.77 学习 Σ θ ( x t , t ) \Sigma_{\theta}\left(x_{t}, t\right) Σθ​(xt​,t)

在无限步长的扩散的过程条件下,方差的作用远没有均值对实验结果的影响大。或者说,方差几乎不发挥作用。

实验中,我们发现扩散过程前几步对整个扩散过程很重要。于是,通过使用更好的 Σ θ ( x t , t ) \Sigma_{\theta}\left(x_{t}, t\right) Σθ​(xt​,t)可以很大程度上提高对数释然。

合理的 Σ θ ( x t , t ) \Sigma_{\theta}\left(x_{t}, t\right) Σθ​(xt​,t)的范围很小,对于神经网络去寻找一个合理的 Σ θ ( x t , t ) \Sigma_{\theta}\left(x_{t}, t\right) Σθ​(xt​,t)不是容易的,

我们发现更好的参数化 Σ θ ( x t , t ) \Sigma_{\theta}\left(x_{t}, t\right) Σθ​(xt​,t)是差值 β ˉ t \bar{\beta}_t βˉ​t​和 β t \beta_t βt​在对数域。我们的模型输出 v v v,每个维度包含一个分量,然后将这个输出转换为如下方差: Σ θ ( x t , t ) = exp ⁡ ( v log ⁡ β t + ( 1 − v ) log ⁡ β ~ t ) \Sigma_{\theta}\left(x_{t}, t\right)=\exp \left(v \log \beta_{t}+(1-v) \log \tilde{\beta}_{t}\right) Σθ​(xt​,t)=exp(vlogβt​+(1−v)logβ~​t​)

t r i c k {\color{Red}trick } trick stop- gradient

改善噪声机制

线性噪声机制对于高分辨率图像很好,在分辨率小的图像上结果次优。ddpm中的前向加噪过程对采样过程没有太大的贡献。

原本的加噪机制:

q ( x 1 , … , x T ∣ x 0 ) : = ∏ t = 1 T q ( x t ∣ x t − 1 ) q(x_{1}, \dots, x_{T} | x_{0}) :=\prod_{t=1}^{T} q\left(x_{t} \mid x_{t-1}\right) q(x1​,…,xT​∣x0​):=∏t=1T​q(xt​∣xt−1​)

q ( x t ∣ x t − 1 ) : = N ( x t ; 1 − β t x t − 1 , β t I ) q(x_{t}| x_{t-1}):=\mathcal{N}\left(x_{t} ; \sqrt{1-\beta_{t}} x_{t-1}, \beta_{t} \mathbf{I}\right) q(xt​∣xt−1​):=N(xt​;1−βt​ ​xt−1​,βt​I)

对任何时刻的加噪样本:

q ( x t ∣ x 0 ) = N ( x t ; α ˉ t x 0 , ( 1 − α ˉ t ) I ) x t = α ˉ t x 0 + 1 − α ˉ t ϵ \begin{aligned} q\left(x_{t} \mid x_{0}\right) &=\mathcal{N}\left(x_{t} ; \sqrt{\bar{\alpha}_{t}} x_{0},\left(1-\bar{\alpha}_{t}\right) \mathbf{I}\right) \\ x_{t} &=\sqrt{\bar{\alpha}_{t}} x_{0}+\sqrt{1-\bar{\alpha}_{t}} \epsilon \end{aligned} q(xt​∣x0​)xt​​=N(xt​;αˉt​ ​x0​,(1−αˉt​)I)=αˉt​ ​x0​+1−αˉt​ ​ϵ​

加噪机制的改进:

α ˉ t = f ( t ) f ( 0 ) , f ( t ) = cos ⁡ ( t / T + s 1 + s ⋅ π 2 ) 2 \bar{\alpha}_{t}=\frac{f(t)}{f(0)}, \quad f(t)=\cos \left(\frac{t / T+s}{1+s} \cdot \frac{\pi}{2}\right)^{2} αˉt​=f(0)f(t)​,f(t)=cos(1+st/T+s​⋅2π​)2 其中: β t = 1 − α ˉ t α ˉ t − 1 \beta_{t}=1-\frac{\bar{\alpha}_{t}}{\bar{\alpha}_{t-1}} βt​=1−αˉt−1​αˉt​​

为了防止开始时 β t , t = 0 \beta_t,t=0 βt​,t=0太小,使得网络在预测噪声的时候很困难。我们让 β 0 \sqrt{\beta_0} β0​ ​=1/127.5=0.008。在实际中使用 c o s 2 cos^2 cos2不同的 L v l b L_{vlb} Lvlb​有不同边际。采样t均匀的会引起没必要的噪声在 L v l b L_{vlb} Lvlb​中。我们使用重要性采样: L v l b = E t ∼ p t [ L t p t ] , where  p t ∝ E [ L t 2 ]  and  ∑ p t = 1 L_{\mathrm{vlb}}=E_{t \sim p_{t}}\left[\frac{L_{t}}{p_{t}}\right] \text {, where } p_{t} \propto \sqrt{E\left[L_{t}^{2}\right]} \text { and } \sum p_{t}=1 Lvlb​=Et∼pt​​[pt​Lt​​], where pt​∝E[Lt2​] ​ and ∑pt​=1,由于 E [ L t 2 ] E\left[L_{t}^{2}\right] E[Lt2​]是未知的,可能在整个训练过程中发生变化。于是,我们的每个损失保持10个值的历史,并在训练期间动态更新。训练开始,我们均匀的采样十个样本, t ∈ [ 0 , T − 1 ] t \in[0, T-1] t∈[0,T−1]。 总结 损失函数的改进噪声机制使用cos


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3