Diffusion Model (扩散生成模型)的基本原理详解(三)Stochastic Differential Equation(SDE)
本篇是《Diffusion Model (扩散生成模型)的基本原理详解(二)Score-Based Generative Modeling(SGM)》的续写,继续介绍有关diffusion的另一个相关模型,同理,参考文献和详细内容与上一篇相同,读者可自行查阅,本篇为Diffusion入门基础介绍的完结篇,本篇来着重介绍Stochastic Differential Equation(SDE)的部分。本文的理论大部分来源于Song Yang et al的SDE原文,链接请点击。
本篇内容需要具有前置知识《随机过程》的学习。
3、Stochastic Differential Equation(SDE)
我们注意到,不论是DDPM,还是SGM而言,它们都存在一个共同的特性:加噪链和去噪过程都是离散化的,即他们按照时间步 1 ~ T 1~T 1~T被打散,我们已经强调过,当然时间 T T T 需要足够大,才可以保证我们最终加噪后的样本趋近于标准正态分布(如果不懂的请看第一节介绍)。事实上,这是一个随机的过程,SDE的思想是想将这个离散的随机控制过程连续化,那么就要涉及随机微分方程(随机控制)的理论和原理了。Song Yang et al.详细的对这个过程进行了可视化的描述(从图中我们可以看出想要通过一个连续的过程来描述该问题)。
3.1、Forward Brownian motion SDE(正时序加噪布朗运动随机微分方程)
首先给出该正时序随机微分方程的公式,其中 f ( x , t ) f(x,t) f(x,t)称为 x ( t ) x(t) x(t)的漂移系数, g ( t ) g(t) g(t)称为 x ( t ) x(t) x(t)的扩散系数。 w w w为正时序标准布朗运动。
d x = f ( x , t ) d t + g ( t ) d w dx=f(x,t)dt+g(t)dw dx=f(x,t)dt+g(t)dw
下面我们来证明不管是DDPM还是SGM,他们都是作为SDE的离散化版本。
3.1.1、DDPM与Forward Brownian motion SDE等价性
我们已经从(一)中知道,针对DDPM而言,一个长度链为 N N N的加噪过程为:
x i = 1 − β i x i − 1 + β i z i − 1 x_i=\sqrt{1-\beta_i}x_{i-1}+\sqrt{\beta_i}z_{i-1} xi=1−βi xi−1+βi zi−1
令 β i ^ = β i N \hat{\beta_i}=\frac{\beta_i}{N} βi^=Nβi,令 β ( i N ) = β i ^ \beta(\frac{i}{N})=\hat{\beta_i} β(Ni)=βi^, x ( i N ) = x i x(\frac{i}{N})=x_i x(Ni)=xi, z ( i N ) = z i z(\frac{i}{N})=z_i z(Ni)=zi
则上式可被改写为:
x ( i N ) = 1 − 1 N β ( i N ) x ( i − 1 N ) + 1 N β ( i N ) z ( i − 1 N ) x(\frac{i}{N})=\sqrt{1-\frac{1}{N}\beta(\frac{i}{N})}x(\frac{i-1}{N})+\sqrt{\frac{1}{N}\beta(\frac{i}{N})}z(\frac{i-1}{N}) x(Ni)=1−N1β(Ni) x(Ni−1)+N1β(Ni) z(Ni−1)
若将 i N \frac{i}{N} Ni视为一个离散小步长,那么我们可以认为这等价于:
x ( t i ) = 1 − △ t β ( t i ) x ( t i − 1 ) + △ t β ( t i ) z ( t i − 1 ) x( t_i)=\sqrt{1-\bigtriangleup t\beta( t_i)}x( t_{i-1})+\sqrt{\bigtriangleup t\beta( t_i)}z( t_{i-1}) x(ti)=1−△tβ(ti) x(ti−1)+△tβ(ti) z(ti−1)
将其连续化: t i − 1 + △ t = t i t_{i-1}+\bigtriangleup t=t_i ti−1+△t=ti
x ( t + △ t ) = 1 − △ t β ( t + △ t ) x ( t ) + △ t β ( t + △ t ) z ( t ) x(t+\bigtriangleup t)=\sqrt{1-\bigtriangleup t\beta(t+\bigtriangleup t)}x(t)+\sqrt{\bigtriangleup t\beta(t+\bigtriangleup t)}z( t) x(t+△t)=1−△tβ(t+△t) x(t)+△tβ(t+△t) z(t)
将其Taylor近似进行展开
x ( t + △ t ) ≈ [ 1 − 1 2 △ t β ( t + △ t ) ] x ( t ) + △ t β ( t + △ t ) z ( t ) —— [ D D P M ] x(t+\bigtriangleup t)\approx[1-\frac{1}{2}\bigtriangleup t\beta(t+\bigtriangleup t)]x(t)+\sqrt{\bigtriangleup t\beta(t+\bigtriangleup t)}z( t)——[DDPM] x(t+△t)≈[1−21△tβ(t+△t)]x(t)+△tβ(t+△t) z(t)——[DDPM]
x ( t + △ t ) − x ( t ) ≈ − 1 2 △ t β ( t ) x ( t ) + △ t β ( t ) z ( t ) —— [ D D P M ] x(t+\bigtriangleup t)-x(t)\approx-\frac{1}{2}\bigtriangleup t\beta(t)x(t)+\sqrt{\bigtriangleup t\beta(t)}z(t)——[DDPM] x(t+△t)−x(t)≈−21△tβ(t)x(t)+△tβ(t) z(t)——[DDPM]
而这即:
d x = − 1 2 β ( t ) x ( t ) d t + β ( t ) d w —— [ S D E ] ≈ [ D D P M ] dx=-\frac{1}{2}\beta(t)x(t)dt+\sqrt{\beta(t)}dw——[SDE]\approx[DDPM] dx=−21β(t)x(t)dt+β(t) dw——[SDE]≈[DDPM]
3.1.2、SGM与Forward Brownian motion SDE等价性
我们已经从(二)中知道,针对SGM而言,一个长度链为 N N N的加噪过程为:
x i ~ N ( x 0 , σ i 2 I ) , x i − 1 ~ N ( x 0 , σ i − 1 2 I ) x_i~N(x_0,\sigma_i^2I),x_{i-1}~N(x_0,\sigma_{i-1}^2I) xi~N(x0,σi2I),xi−1~N(x0,σi−12I)
x i x_i xi可以视为从 x i − 1 x_{i-1} xi−1处加上了一个独立的 N ( 0 , ( σ i 2 − σ i − 1 2 ) I ) N(0,(\sigma_i^2-\sigma_{i-1}^2)I) N(0,(σi2−σi−12)I)来获得。
即
x i = x i − 1 + ( σ i 2 − σ i − 1 2 ) z i − 1 x_i=x_{i-1}+\sqrt{(\sigma_i^2-\sigma_{i-1}^2)}z_{i-1} xi=xi−1+(σi2−σi−12) zi−1
令 x ( i N ) = x i , σ ( i N ) = σ i , z ( i N ) = z i , x i = x i − 1 + △ t x(\frac{i}{N})=x_i,\sigma(\frac{i}{N})=\sigma_i,z(\frac{i}{N})=z_i,x_i=x_{i-1}+\bigtriangleup t x(Ni)=xi,σ(Ni)=σi,z(Ni)=zi,xi=xi−1+△t
上式变成了:
x ( t + △ t ) = x ( t ) + ( σ 2 ( t + △ t ) − σ 2 ( t ) ) z t x(t+\bigtriangleup t)=x(t)+\sqrt{(\sigma^2(t+\bigtriangleup t)-\sigma^2(t))}z_{t} x(t+△t)=x(t)+(σ2(t+△t)−σ2(t)) zt
x ( t + △ t ) − x ( t ) = ( σ 2 ( t + △ t ) − σ 2 ( t ) ) △ t △ t z t t —— [ S G M ] x(t+\bigtriangleup t)-x(t)=\sqrt{\frac{(\sigma^2(t+\bigtriangleup t)-\sigma^2(t))}{\bigtriangleup t}\bigtriangleup t}z_{t}t——[SGM] x(t+△t)−x(t)=△t(σ2(t+△t)−σ2(t))△t ztt——[SGM]
x ( t + △ t ) − x ( t ) ≈ d ( σ 2 ( t ) ) d t △ t z t —— [ S G M ] x(t+\bigtriangleup t)-x(t)\approx\sqrt{\frac{d(\sigma^2(t))}{dt}\bigtriangleup t}z_t——[SGM] x(t+△t)−x(t)≈dtd(σ2(t))△t zt——[SGM]
而这即:
d x = d ( σ 2 ( t ) ) d t d w —— [ S D E ] ≈ [ S G M ] dx=\sqrt{\frac{d(\sigma^2(t))}{dt}}dw——[SDE]\approx[SGM] dx=dtd(σ2(t)) dw——[SDE]≈[SGM]
3.1.3、新性能SDE
由于上述讨论我们已经知道了如下的等价性:
d x = − 1 2 β ( t ) x ( t ) d t + β ( t ) d w —— [ S D E ] ≈ [ D D P M ] dx=-\frac{1}{2}\beta(t)x(t)dt+\sqrt{\beta(t)}dw——[SDE]\approx[DDPM] dx=−21β(t)x(t)dt+β(t) dw——[SDE]≈[DDPM]
d x = d ( σ 2 ( t ) ) d t d w —— [ S D E ] ≈ [ S G M ] dx=\sqrt{\frac{d(\sigma^2(t))}{dt}}dw——[SDE]\approx[SGM] dx=dtd(σ2(t)) dw——[SDE]≈[SGM]
Song等人提出了一种表现性能更好的SDE方法作为代替:
d x = − 1 2 β ( t ) x ( t ) d t + β ( t ) ( 1 − 2 e − 2 ∫ o t β ( s ) d s ) d w —— [ N S D E ] dx=-\frac{1}{2}\beta(t)x(t)dt+\sqrt{\beta(t)(1-2e^{-2\int_o^t\beta(s)ds})}dw——[NSDE] dx=−21β(t)x(t)dt+β(t)(1−2e−2∫otβ(s)ds) dw——[NSDE]
通过3.1.2和3.1.1的简要证明,我们给出了SDE与DDPM/SGM在加噪链的等价性,说明了DDPM与SGM在加噪过程是一种离散化的SDE过程。SDE则为上述二者的连续加噪推广综合考虑二者的缺陷和有点,作者提出了一种NSDE方法。
3.2、Reverse Brownian motion SDE(逆时序去噪布朗运动随机微分方程)
3.2.1、Reverse Brownian motion SDE
正向加噪过程的逆过程被Anderson指出仍然也是一个随机微分方程。Song等人给出了这一部分的详细说明,公式如下,其中 f ( x , t ) f(x,t) f(x,t)称为 x ( t ) x(t) x(t)的漂移系数, g ( t ) g(t) g(t)称为 x ( t ) x(t) x(t)的扩散系数。 w ^ \hat{w} w^为逆时序标准布朗运动, p t ( x ) p_t(x) pt(x)为 x ( t ) x(t) x(t)分布密度函数。
d x = [ f ( x , t ) − g 2 ( t ) ∇ x l o g ( p t ( x ) ) ] d t + g ( t ) d w ^ dx=[f(x,t)-g^2(t)\nabla_xlog(p_t(x))]dt+g(t)d\hat{w} dx=[f(x,t)−g2(t)∇xlog(pt(x))]dt+g(t)dw^
3.2.2、Probability Flow ODE(概率流常微分方程)与SDE的轨迹等价性。
Song等人证明了对于任何逆时序去噪声布朗运动随机微分方程的过程而言,存在着相应的确定性概率流常微分方程,相应的公式如下,由于证明比较复杂繁琐,限于长度限制,这里较难写下,笔者这里直接给出结论,详细证明请看原文的附录,需要利用随机过程和概率论的知识。
d x = [ f ( x , t ) − 1 2 g 2 ( t ) ∇ x l o g ( p t ( x ) ) ] d t dx=[f(x,t)-\frac{1}{2}g^2(t)\nabla_xlog(p_t(x))]dt dx=[f(x,t)−21g2(t)∇xlog(pt(x))]dt
该ODE公式与SDE公式具有相同的边缘密度 p t ( x ) p_t(x) pt(x)。
3.3、 SDE训练
不论是3.2.1中的SDE还是3.2.2中的ODE,这都说明了,在任意时间 t t t时刻,一旦我们已经知道了它的Stevin得分(见第二节) ∇ x l o g ( p t ( x ) ) \nabla_xlog(p_t(x)) ∇xlog(pt(x)),那么我们可以该逆向随机微分方程采用相应的数值方法根据时间逆向生成样本数据,相比于SGM而言,它可以采用几种办法:
①采用Langevin Monte Carlo迭代更新+采样(SGM,SDE均适用)(不懂请见第二讲)
②Numerical SDE solvers(数值SDE求解)(仅适用SDE)
③Numerical ODE solvers(数值ODE求解)(仅适用SDE)
3.3.1、SDE训练方法
读到这里,读者们应该已经意识到了SDE和SGM的区别在于一个处理的是连续型,一个处理的是离散型,SDE为SGM和DDPM的推广,更一般的模型,我们意识到,若能够训练一个网络,给予任意时间 T T T(注意,不同于SGM,此时间可以不为整数),若能够很好的估计 ∇ x l o g ( p t ( x ) ) \nabla_xlog(p_t(x)) ∇xlog(pt(x)),那么便可以采用反向SDE求解或反向ODE求解来数值模拟生成,因此目标仍旧要学习一个网络 s θ ( x t , t ) s_\theta(x_t,t) sθ(xt,t)。
L o s s = E t ∈ [ 0 , T ] , x 0 , x t [ ∣ ∣ s θ ( x t , t ) − ∇ x l o g ( p 0 ~ t ( x t ∣ x 0 ) ) ∣ ∣ 2 ] Loss=E_{t\in[0,T],x_0,x_t}[||s_\theta(x_t,t)-\nabla_xlog(p_{0~t}(x_t|x_0))||^2] Loss=Et∈[0,T],x0,xt[∣∣sθ(xt,t)−∇xlog(p0~t(xt∣x0))∣∣2]其中 p 0 ~ t ( x t ∣ x 0 ) ) p_{0~t}(x_t|x_0)) p0~t(xt∣x0))的获取通过对Forward Brownian motion SDE求解获得, t t t从 [ 0 , T ] [0,T] [0,T]中进行均匀采样,并不要求为整数。
训练好该网络后,SDE便可通过利用 s θ ( x t , t ) s_\theta(x_t,t) sθ(xt,t)来代替进行反向的采样过程,在每个时间t时刻,向前进行逆向生成的过程满足如下 ( 1 ) (1) (1)或者 ( 2 ) (2) (2)进行生成:
d x = [ f ( x , t ) − 1 2 g 2 ( t ) s θ ( x t , t ) ] d t —— ( 1 ) dx=[f(x,t)-\frac{1}{2}g^2(t)s_\theta(x_t,t)]dt——(1) dx=[f(x,t)−21g2(t)sθ(xt,t)]dt——(1)
d x = [ f ( x , t ) − g 2 ( t ) s θ ( x t , t ) ] d t + g ( t ) d w ^ —— ( 2 ) dx=[f(x,t)-g^2(t)s_\theta(x_t,t)]dt+g(t)d\hat{w}——(2) dx=[f(x,t)−g2(t)sθ(xt,t)]dt+g(t)dw^——(2)
其中如何采样的办法可以采用3.3提到的①②③进行。
4、Diffusion-Summary
到这里为止,笔者已经介绍了目前Diffusion的基础三个模型。完全足够读者进行Diffusion的入门学习,后续深入内容请读者根据兴趣自行选择原文阅读。
总结一下,笔者对Diffusion的基础进行了(一)(二)(三)的介绍,其中(二)(三)为相关的Score-Function方法。(一)为类似端对端的DDPM直接预测法,希望这些内容可以为初学Diffusion的读者们提供更多的启示。当然笔者介绍的远不及原文详细。若想更好的理解内容,建议直接阅读这三篇文章。笔者均给予了链接,目前Diffusion的研究现状基于这三个基础模型的数据部分,算法部分,高效采样办法和更新参数方法,参数-损失加权法,和一些其他部分等进行改进,但主体思想基本是基本与这三模型相同的。看完(一)~(三)的内容,希望各位对Diffusion有了基础的理解和兴趣,并希望能够启发大家未来的研究和应用。
所有公式均为手打,并且笔者并不是专门研究Diffusion的学者,这些内容仅代表笔者自行的学习笔记和理解,当然很可能会出现一些小错误或者推导不严谨的地方。若发现错误或不严谨之处,笔者非常欢迎大家进行多多指正和批评。笔者希望与大家进行一起探索ML更多的发展现状和前景,同时笔者也在实时跟进目前ML和RL的发展现状和新型研究成果,后续若有时间,笔者将更新这三模型的代码部分,谢谢大家!
Diffusion Model (扩散生成模型)的基本原理详解(三)Stochastic Differential Equation(SDE)相关推荐
- Diffusion Model (扩散生成模型)的基本原理详解(一)Denoising Diffusion Probabilistic Models(DDPM)
本章开始笔者来陆续的介绍最近爆火的Diffusion Model的近期发展. 本篇的学习内容与图片均来自于对文章Diffusion Models: A Comprehensive Survey of ...
- 由浅入深理解latent diffusion/stable diffusion(2):扩散生成模型的工作原理
Diffusion Models专栏文章汇总:入门与实战 前言: 关于如何使用stable diffusion的文章已经够多了,但是由浅入深探索stable diffusion models背后原理, ...
- ICLR 2023 | 扩散生成模型新方法:极度简化,一步生成
©作者 | 刘星超 单位 | 德州大学奥斯汀分校 研究方向 | 生成式模型 Diffusion Generative Models(扩散式生成模型)已经在各种生成式建模任务中大放异彩,但是,其复杂的数 ...
- 2022 ICLR | Geodiff:分子构象几何扩散生成模型
2022 ICLR | Geodiff:分子构象几何扩散生成模型 温馨提示,扩散模型公式比较复杂,若没有基础可以先参考blog或者deep_thoughts老师的视频 本文是由蒙特利尔学习算法研究所唐 ...
- 神经网络学习小记录58——Keras GhostNet模型的复现详解
神经网络学习小记录58--Keras GhostNet模型的复现详解 学习前言 什么是GhostNet模型 源码下载 GhostNet模型的实现思路 1.Ghost Module 2.Ghost Bo ...
- 生成对抗网络入门详解及TensorFlow源码实现--深度学习笔记
生成对抗网络入门详解及TensorFlow源码实现–深度学习笔记 一.生成对抗网络(GANs) 生成对抗网络是一种生成模型(Generative Model),其背后最基本的思想就是从训练库里获取很多 ...
- [深度学习概念]·实例分割模型Mask R-CNN详解
实例分割模型Mask R-CNN详解 基础深度学习的目标检测技术演进解析 本文转载地址 Mask R-CNN是ICCV 2017的best paper,彰显了机器学习计算机视觉领域在2017年的最新成 ...
- 神经网络学习小记录68——Tensorflow2版 Vision Transformer(VIT)模型的复现详解
神经网络学习小记录68--Tensorflow2版 Vision Transformer(VIT)模型的复现详解 学习前言 什么是Vision Transformer(VIT) 代码下载 Vision ...
- LDA主题模型(算法详解)
LDA主题模型(算法详解) http://blog.csdn.net/weixin_41090915/article/details/79058768?%3E 一.LDA主题模型简介 LDA(Late ...
最新文章
- 通过IDoc来实现公司间STO场景中外向交货单过账后自动触发内向交货单的功能 - Part I
- centos7 安装mysql php,Centos7安装mysql与php的方法
- JavaScript学习笔记之数组(二)
- springboot环境搭建及入门必知
- swift UI专项训练20 WebView浏览器
- 转载 vue的基础使用
- 指北针邮件工具 v1.5.6.1
- SAP License:SAP学习笔记
- Ubuntu安装minicom串口工具
- 【数学建模】第一讲-层次分析法
- java db4o 教程_面向Java开发人员db4o指南:数组和集合 (1)
- java kdj macd_很好用的KDJ与MACD结合指标
- 阿里CEO张勇:“亲亲节”预示未来年轻人生活方式
- 长差分:LongDifference及AcemogluAER论文推介
- jmeter持续时间设置
- JavaScript -- jQuery网页开发案例笔记
- 随身WIFI如何刷面具?我是真想教会你……
- Python玩具(一)
- TLE星历以及轨道计算方法
- android 字体变细,android 字体设置为中等粗细
热门文章
- 解决无法从公司 Maven 私服下载依赖的问题
- 【FPGA】vivado2019安装卡在optimize disk usage怎么办
- 数模查资料会用到的网站
- MySQL中的max_connections和max_user_connections 及 MySQL服务器最大连接数的合理设置
- html表单及其属性
- 抖音seo企业号,矩阵同步分发,抖音搜索框SEO优化系统搭建。
- ubuntu14.04下推荐的工具及插件
- 习题:输入abc的值求一元二次方程的解
- 【苹果CMS技术教程】苹果CMSV10伪静态基础认识和设置教程
- 了解一下winsock