网上学编程的有哪些比较好的网站,外贸门户网站建设,网站 icp备案,庆阳网站设计 贝壳下拉探索三种生成模型#xff1a;基于DDPMs、NCSNs和SDEs方法的Diffusion 去噪扩散概率模型#xff08;DDPMs#xff09;正向过程反向过程 噪声条件得分网络#xff08;NCSNs#xff09;正向过程初始化训练 NCSNs生成样本 反向过程 随机微分方程#xff08;SDEs#xff09;原… 探索三种生成模型基于DDPMs、NCSNs和SDEs方法的Diffusion 去噪扩散概率模型DDPMs正向过程反向过程 噪声条件得分网络NCSNs正向过程初始化训练 NCSNs生成样本 反向过程 随机微分方程SDEs原理背景正向过程反向过程模型训练与采样采样方法方法可行性解释  去噪扩散模型代表了计算机视觉领域的一个新兴主题取得了在生成建模方面的显著成果。该模型分为正向扩散阶段和反向扩散阶段。在正向扩散阶段逐步添加高斯噪声逐渐扰动输入数据在反向扩散阶段模型通过学习逆转扩散过程逐步恢复原始输入数据。尽管计算负担较大但由于生成样本的质量和多样性扩散模型受到广泛赞赏。 在计算机视觉中扩散模型已应用于多个任务包括图像生成、图像超分辨率、图像修复、图像编辑、图像翻译等。此外扩散模型学到的潜在表示在判别任务中也被发现是有用的例如图像分割、分类和异常检测。 回顾扩散模型的文章可将扩散模型分为三个主要子类 去噪扩散概率模型DDPMs噪声条件得分网络NCSNs随机微分方程SDEs DDPMs使用潜在变量估计概率分布类似于变分自动编码器。 NCSNs基于训练共享神经网络来估计扰动数据分布的分数函数。 SDEs通过建模正向和反向SDEs实现高效的生成策略。 
扩散模型在生成建模任务中取得了显著成果同时也面临一些限制。未来的研究方向包括进一步探索应用领域、改进计算效率以及提高生成模型的可解释性。 去噪扩散概率模型DDPMs 
正向过程 
在DDPMs中用 p ( x 0 ) p(x_0) p(x0) 表示原始、未经破坏的训练数据图像的概率密度。 概率密度函数描述了在图像空间中每个可能图像的相对概率分布。换句话说 p ( x 0 ) p(x_0) p(x0) 表示了在训练数据集中每个图像出现的概率。 在DDPMsDenoising Diffusion Probabilistic Models中 p ( x 0 ) p(x_0) p(x0) 是指模型训练时的初始状态即未经过任何噪声破坏的原始图像。这个初始状态用于在训练过程中生成具有多样性和质量的图像。模型通过逐步添加高斯噪声来训练从而逼近或捕捉了训练数据的分布使其具有一定的鲁棒性和生成能力。 因此 p ( x 0 ) p(x_0) p(x0) 在这里表示模型训练的起点是学习过程中要模拟的原始图像的概率分布。通过模拟这个概率分布并在训练中引入逐渐增加的高斯噪声。 给定一个初始状态的训练样本 x 0 ∼ p ( x 0 ) x_0 ∼ p(x_0) x0∼p(x0)通过下面的公式马尔可夫过程获得噪声版本  x 1 、 x 2 . . .  x T x_1、x_2 ...x_T x1、x2...xT p ( x t ∣ x t − 1 )  N ( x t ; 1 − β t ⋅ x t 1 , β t ⋅ I )  ∀ t ∈ [ 1 , . . . , T ] p(x_t|x_{t-1})  N(x_t;\sqrt {1-\beta_t} ·x_{t_1},\beta_t ·I) ∀_t \in [1,...,T] p(xt∣xt−1)N(xt;1−βt   ⋅xt1,βt⋅I)∀t∈[1,...,T] 公式解释: 其中 p ( x t ∣ x t − 1 ) p(x_t|x_{t-1}) p(xt∣xt−1) 表示在给定前一步 ( x t − 1 x_{t-1} xt−1) 的条件下当前步 ( x t x_t xt) 的分布 T T T是扩散步骤的数量 β 1 , . . . , β T ∈ [ 0 , 1 ) β_1, . . . , β_T ∈ [0, 1) β1,...,βT∈[0,1) 是代表扩散步骤中方差变化的超参数 I I I是与输入图像 x 0 x_0 x0具有相同尺寸的单位矩阵而 N ( x ; µ , σ ) N(x; µ, σ) N(x;µ,σ)表示均值为 µ µ µ和协方差为 σ σ σ的正态分布产生 x x x。 这个过程可以理解为  x t − 1 x_{t-1} xt−1 分布的基础上选择一定的均值和方差在图像  x t − 1 x_{t-1} xt−1 状态下中增加一些正态分布抽样下的噪声。 p ( x t ∣ x t − 1 )  N ( x t ; 1 − β t ⋅ x t 1 , β t ⋅ I )  ∀ t ∈ [ 1 , . . . , T ] p(x_t|x_{t-1})  N(x_t;\sqrt {1-\beta_t} ·x_{t_1},\beta_t ·I) ∀_t \in [1,...,T] p(xt∣xt−1)N(xt;1−βt   ⋅xt1,βt⋅I)∀t∈[1,...,T] 
上述这个递归公式如果在每一步增加的噪声都是经过均匀的正态分布抽样的话可以将式子转化为如下 p ( x t ∣ x 0 )  N ( x t ; β ^ t ⋅ x 0 , ( 1 − β ^ t ) ⋅ I ) p(x_t|x_0)  N(x_t;\sqrt {\hat \beta_t} ·x_0,(1- \hat \beta_t )·I) p(xt∣x0)N(xt;β^t   ⋅x0,(1−β^t)⋅I) 公式解释 其中 β ^ t  ∏ i  1 t α i \hat \beta_t∏_{i1}^tα_i β^t∏i1tαi且 α t  1 − β t α_t1−β_t αt1−βt基本上式子表示了如果有原始图像 x 0 x_0 x0并固定方差调度 β t β_t βt则可以通过单一步骤对任何噪声版本 x t x_t xt进行采样。 前面我们已经知道了如何求在给定前一步 ( x t − 1 x_{t-1} xt−1) 的条件下当前步 ( x t x_t xt) 的分布现在要求出本身的图像 x t x_t xt的分布。 
这里会用到一个技巧叫重新参数化技巧通过这个技巧我们可以从一个标准正态分布  N ( 0 , I ) N(0, I) N(0,I) 中采样样本并通过线性变换和平移操作得到原始正态分布  N ( µ , σ 2 ⋅ I ) N(µ, σ² \cdot I) N(µ,σ2⋅I) 中的样本。 
这里的标准正态分布  N ( 0 , I ) N(0, I) N(0,I) 对应的是  z t z_t zt即噪声的分布。原始正态分布  N ( µ , σ 2 ⋅ I ) N(µ, σ² \cdot I) N(µ,σ2⋅I) 对应的是生成的图像  x t x_t xt。 
先回顾一下标准正态分布的样本  z ∼ N ( 0 , I ) z \sim N(0, I) z∼N(0,I) 的采样过程我们从均值为 0方差为 1 的正态分布中生成一个随机数  z z z。然后通过乘以标准差  σ σ σ 并加上均值  µ µ µ我们可以得到原始正态分布  N ( µ , σ 2 ⋅ I ) N(µ, σ² \cdot I) N(µ,σ2⋅I) 中的样本  x x x。这个操作就是重新参数化技巧的基本思想。即  x  z σ  u x  zσu xzσu  其中 u u u就是左边红框的部分 σ σ σ就是右边红框的部分。将它们带入到下面  x  z σ  u x  zσu xzσu 得  x t  β ^ t ⋅ x 0  ( 1 − β ^ t ) ⋅ z t x_t  \sqrt{\hat \beta_t}·x_0 \sqrt{(1-\hat \beta _t)}·z_t xtβ^t   ⋅x0(1−β^t)   ⋅zt β t β_t βt的属性为 ( β t ) t  1 T (\beta_t)_{t1}^T (βt)t1T表示方差调度参数根据论文描述 ( β t ) t  1 T (\beta_t)_{t1}^T (βt)t1T介于 β 1  1 0 − 4 和 β T  2 ⋅ 1 0 − 2 \beta_110^{-4}和\beta_T  2·10^{-2} β110−4和βT2⋅10−2之间其中 T  1000。 
反向过程 
DDPMs的反向过程主要涉及如何根据给定的初始样本 x T ∼ N ( 0 , I ) x_T ∼ N(0,I) xT∼N(0,I)按照逆向步骤 p ( x t − 1 ∣ x t )  N ( x t − 1 ; μ ( x t , t ) , ∑ ( x t , t ) ) p(x_{t-1}|x_t)  N(x_{t-1};μ(x_t ,t),\sum(x_t,t)) p(xt−1∣xt)N(xt−1;μ(xt,t),∑(xt,t))生成新的样本。 
首先描述一下整个反向生成过程 
输入 T - 扩散步骤的数量。   σ 1 , . . . , σ T σ_1,...,σ_T σ1,...,σT - 反向转换的标准差。  
输出 x 0 x_0 x0 - 生成的图像样本。  
计算过程 3.1 从标准正态分布中抽取样本 x T ∼ N ( 0 , I ) x_T∼N(0,I) xT∼N(0,I)。  3.2 从 T T T步开始逆向迭代直到第 1 步   如果  t  1 t1 t1抽取  z ∼ N ( 0 , I ) z∼N(0,I) z∼N(0,I)。    否则令  z  0 z0 z0。    计算均值  μ θ μ_θ μθ μ θ  1 α t ( x t − 1 − α t 1 − β ^ t ⋅ z θ ( x t , t ) ) μ_θ\sqrt{\frac{1}{α_t}}(x_t-\sqrt{\frac{1-α_t}{1-\hat \beta_t}}·z_θ(x_t,t)) μθαt1   (xt−1−β^t1−αt   ⋅zθ(xt,t))    生成样本 x t − 1 x_{t−1} xt−1 x t − 1  μ θ  σ t ⋅ z x_{t-1}  μ_θσ_t ·z xt−1μθσt⋅z    
这个过程通过使用逆向迭代和生成式来产生一个新的样本 x 0 x_0 x0 它是从 T T T步开始逆向推断过程中生成的最终样本。  
噪声条件得分网络NCSNs 
噪声条件得分网络将数据密度 p ( x ) p(x) p(x)改为相对输入的对数密度的梯度 ∇ x l o g p ( x ) ∇_xlogp(x) ∇xlogp(x)。这些梯度给出的方向被 Langevin 动力学算法定义为用于从随机样本  ( x 0 ) (x_0) (x0) 移动到高密度区域的样本  ( x N ) (x_N) (xN)的方向。 Langevin 动力学是一种受物理学启发的迭代方法可用于数据采样。在物理学中该方法用于确定分子系统中粒子的轨迹允许粒子与其他分子之间发生相互作用。粒子的轨迹受系统的阻力力和由分子之间的快速相互作用引起的随机力的影响。 在算法这里我们可以将对数密度的梯度视为一种力将随机样本通过数据空间拖向高数据密度 p ( x ) p(x) p(x) 的区域。 
另外用 ω i ω_i ωi表示物理学中的随机力 γ γ γ值表示这两种力的影响因为它代表粒子所处环境的摩擦系数。 
从采样的角度看 γ γ γ控制更新的幅度。 通过训练 NCSNs 模型我们可以有效地估计给定噪声尺度下的得分。在采样过程中通过 Annealed Langevin dynamics 过程模拟粒子在势能场中的运动从而生成样本。整个框架通过对不同噪声水平下的数据建模使得模型更具鲁棒性能够处理数据中的不同特征和模式。 Langevin 动力学的迭代目标函数更新如下 x i  x i − 1  γ 2 ∇ x l o g p ( x )  γ ⋅ w i x_i  x_{i-1}\frac{γ}{2}∇_xlogp(x)\sqrt{γ}·w_i xixi−12γ∇xlogp(x)γ   ⋅wi 其中 i ∈ [ 1 , . . . , N ] i \in [1,...,N] i∈[1,...,N] γ γ γ控制更新在得分方向的幅度 x 0 x_0 x0 从先验分布中采样噪声 w i ∼ N ( 0 , I ) w_i ∼N(0,I) wi∼N(0,I)解决了陷入局部最小值的问题该方法递归地应用于 N → ∞ N→∞ N→∞步 
因此生成模型可以使用上述方法从 p ( x ) p(x) p(x)中采样先通过神经网络 s θ ( x ) s_θ(x) sθ(x)估计得分 ∇ x l o g p x ( x ) ∇_xlogpx(x) ∇xlogpx(x)。 
该网络可以通过分数匹配进行训练就需要优化损失函数  L s m  E x ∼ p ( x ) ∣ ∣ s θ ( x ) − ∇ x l o g p x ( x ) ∣ ∣ 2 2 L_{sm}  E_{x∼p(x)}||s_θ(x) -∇_xlog px(x) ||_2^2 LsmEx∼p(x)∣∣sθ(x)−∇xlogpx(x)∣∣22 
正向过程 
初始化 
给定一个高斯噪声尺度序列 σ 1  σ 2  …  σ T σ_1 σ_2…σ_T σ1σ2…σT使得 p σ 1 ( x ) ≈ p ( x 0 ) p_{σ_1}(x)≈p(x _0) pσ1(x)≈p(x0)和 p σ T ( x ) ≈ N ( 0 , I ) p_{σ_T(x)}≈N(0,I) pσT(x)≈N(0,I) 
训练 NCSNs 
可以使用去噪分数匹配训练一个 NCSN  s θ ( x , σ t ) s_θ(x,σ_t) sθ(x,σt)使得 s θ ( x , σ t ) ≈ ∇ x l o g ( p σ t ( x ) ) s_θ(x,σ_t )≈∇_xlog(p_{σ_t}(x)) sθ(x,σt)≈∇xlog(pσt(x))对于所有 t ∈ [ 1 , . . . , T ] t∈[1,...,T] t∈[1,...,T]。可以推导 ∇ x l o g ( p σ t ( x ) ) ∇_xlog(p_{σ_t}(x)) ∇xlog(pσt(x)) 如下 ∇ x t l o g p σ t ( x t ∣ x )  − x t − x σ t 2 ∇_x^tlogp_{σ_t}(x_t|x)-\frac{x_t-x}{σ_t^2} ∇xtlogpσt(xt∣x)−σt2xt−x 
鉴于  p σ t ( x t ∣ x )  N ( x t ; x , σ t 2 ⋅ I )  1 σ t ⋅ 2 π e x p ( − 1 2 ⋅ ( x t − x σ t ) 2 ) p_{σ_t}(x_t|x)N(x_t;x,σ_t^2·I)\frac{1}{σ_t·\sqrt{2π}}exp(-\frac{1}{2}·(\frac{x_t-x}{σ_t})^2) pσt(xt∣x)N(xt;x,σt2⋅I)σt⋅2π   1exp(−21⋅(σtxt−x)2) 
将$ ∇ x l o g ( p σ t ( x ) ) ∇_xlog(p_{σ_t}(x)) ∇xlog(pσt(x))带入到损失函数进行替换得到如下  其中 λ ( σ t λ(σ_t λ(σt 是权重函数 p σ t p_{σ_t} pσt是给定噪声尺度 σ t σ_t σt 下的噪声分布。 
生成样本 
在推断时采用 Annealed Langevin dynamics 过程生成样本。 
反向过程 
初始化 使用白噪声生成初始样本 x 0 T ∼ N ( 0 , I ) x_0^T∼N(0,I) x0T∼N(0,I)。迭代更新从  t  T tT tT到  t  1 t1 t1进行迭代每一步包含 N N N次更新。对于每次更新  i  1 , … , N i1,…,N i1,…,N进行以下步骤 2.1 从标准正态分布 N ( 0 , I ) N(0,I) N(0,I) 中采样噪声项 ω ω ω即 ω ∼ N ( 0 , I ) ω∼N(0,I) ω∼N(0,I)  2.2 使用已训练的 NCSNs 模型 s θ ( x i − 1 t , σ t ) s_θ (x_{i−1}^t ,σ_t) sθ(xi−1t,σt) 估计得分。  2.3 根据 Langevin dynamics 更新规则计算下一步样本 x i t  x i t  x i − 1 t  γ t 2 s θ ( x i − 1 t , σ t )  γ t ω x_i^tx_i^tx_{i-1}^t \frac{γ_t}{2}s_θ(x_{i-1}^t,σ_t)\sqrt{γ_t}ω xitxitxi−1t2γtsθ(xi−1t,σt)γt   ω  2.4 保留每一步更新后的样本 x i t x_i^t xit。  
返回结果 返回 x 0 T − 1 x_0^{T−1} x0T−1 即最后一步的样本。 
最后通过一段文字来解释为什么可以用Langevin 动力学来实现NCSNs 当我们试图从一个概率分布中采样样本时尤其是高维空间中的复杂分布这个过程可能非常具有挑战性。Langevin 动力学是一种仿照物理学中粒子在势能场中运动的方式的采样方法这里的 “势能场” 实际上是指我们想要从中采样的概率分布。 想象一下你是一颗微小的颗粒漂浮在这个概率分布所定义的空间中。在物理学中Langevin 动力学通常用于描述微粒在液体或气体中的运动受到来自环境的阻力和随机碰撞的影响。类似地在采样过程中我们将你想象成这个微粒而概率分布中的梯度得分则是指导你朝向高概率区域的力。 Langevin 动力学就像是你在一个由数据密度定义的山谷中滚动。梯度给出了你应该滚动的方向而随机噪声则模拟了环境的不确定性和波动性。这种动力学确保了你不仅能够向概率分布的高密度区域移动而且由于随机性有时你也能够跳出局部最小值。 换句话说通过仿效物理学中微粒在势场中的运动方式Langevin 动力学提供了一种直观而生动的方式使我们能够在概率分布中游走从而采样到我们感兴趣的样本。在这个过程中我们借助神经网络NCSNs来模拟概率分布的梯度使得我们能够更有效地引导采样过程特别是在处理不同噪声水平和复杂数据模式时。 随机微分方程SDEs 
原理背景 
随机微分方程SDEs方法类似于前述方法如DDPMs和NCSNs旨在通过将数据分布逐渐转化为噪声来进行采样。这种方法的独特之处在于它将扩散过程视为连续的从而成为随机微分方程的解。具体而言该方法在生成过程中使用了正向扩散SDE和逆向扩散SDE。正向扩散过程模拟了从初始数据分布 p ( x 0 ) p(x_0) p(x0)逐渐过渡到噪声的过程。 
正向过程 
正向扩散过程的SDE表达式为  ∂ t ∂ x  f ( x , t )  σ ( t ) ⋅ ω t \frac{∂t}{∂x}f(x,t)σ(t)⋅ω_t ∂x∂tf(x,t)σ(t)⋅ωt  其中 ω t ω_t ωt是高斯噪声 f f f是计算漂移系数的函数 σ σ σ是计算扩散系数的时间相关函数。这个过程的目标是通过设计漂移系数逐渐减小数据 x 0 x_0 x0同时通过扩散系数控制添加的高斯噪声的程度。 
反向过程 
与正向过程对应的逆向SDE表示为  ∂ t ∂ x  f ( x , t ) − σ ( t ) 2 ⋅ ∇ x l o g p t ( x ) ⋅ ∂ t  σ ( t ) ⋅ ∂ ω \frac{∂t}{∂x} f(x,t)− \frac{σ(t)}{2} ⋅∇xlogp_t (x)⋅∂tσ(t)⋅∂ω ∂x∂tf(x,t)−2σ(t)⋅∇xlogpt(x)⋅∂tσ(t)⋅∂ω 
反向过程的关键在于逐步去除导致数据破坏的漂移项。这是通过减去 σ ( t ) 2 ⋅ ∇ x l o g p t ( x ) \frac{σ(t)}{2}·∇x log p_t(x) 2σ(t)⋅∇xlogpt(x)来实现的。 
模型训练与采样 
为了实现这一过程Song等人的生成模型利用神经网络估计得分函数通过数值SDE求解器从 p ( x 0 ) p(x_0) p(x0)生成样本。神经网络 s θ ( x , t ) s_θ(x, t) sθ(x,t)接收扰动数据和时间步长作为输入并生成对得分函数的估计。 
训练时使用了连续情况下的目标函数  其中λ是权重函数 t ∼ U ( [ 0 , T ] ) t ∼ U([0, T]) t∼U([0,T])。 
采样方法 
采样过程采用Euler-Maruyama采样方法通过数值方法求解逆向SDE。在实践中数值求解器通常不适用于连续公式因此使用了Euler-Maruyama方法通过固定微小负步长 Δ t \Delta t Δt执行采样过程。采样过程中的布朗运动由 Δ ω ^  ∣ Δ t ∣ ⋅ z \Delta \hat{ω}  \sqrt{|\Delta t|} · z Δω^∣Δt∣   ⋅z给出其中 z ∼ N ( 0 , I ) z ∼ N(0, I) z∼N(0,I)。 
方法可行性解释 
该方法的可行性在于通过对数据密度的漂移和扩散过程的连续建模成功地将数据逐渐转化为噪声。神经网络的引入提高了模型的表达能力使其能够学习和逼近复杂的分布。采样过程中的数值方法确保了实际可行性并通过改进的采样技术进一步提高了样本的质量。整体而言该方法通过巧妙的数学建模和神经网络的结合成功地实现了高质量样本的生成。