扩散模型的数学理解

前置知识:

1)标准高斯分布的乘法:

若z~N(0, I),则 n*z~N(0, n^2 * I)。因为期望为0,乘以n后还是为0,但方差为1,乘以n后还要加上平方,所以说是n^2 * I。

2)带下标的数学期望符号,表示在求期望的过程中被加权,比如:
3)概率公式中的逗号、分号、竖线:

分号的优先级最大,竖线的优先级高于逗号。一个函数公式中,分号前表示的是这个式子用来预测分布的随机变量,分号后面表示所需的相关参数。比如P(X; θ)表示X的分布,并且X的分布与参数θ相关。P(A|B,C)表示在B,C的条件下,发生A的概率。

4)梯度的概念&导数与微分基础的回顾

首先回顾极限、连续、导数、偏导、微分、偏微分、全微分这些基础概念。

高阶和低阶是相对而言的:一般都是说A是B的高阶或低阶无穷小量。令,如果L=0,则称当x→x0时,f(x)为g(x)的高阶无穷小量,或称g(x)为f(x)的低阶无穷小量。

极限存在的条件:x0的去心邻域有定义,左极限=右极限。

连续的条件:左极限=有极限=函数值。连续了之后再判断可导。

导数:一个函数在某一点的导数描述了这个函数在这一点附近的变化率。导数的本质是通过极限的概念对函数进行局部的线性逼近定义:设有定义域和取值都在实数域中的函数 y=f(x)。若f(x)在点的某个邻域内有定义,则当自变量x在 处取得增量Δx(点 +Δx 仍在该邻域内)时,相应地y 取得增量 Δy=f(+Δx)−f();如果 Δy / Δx 当 Δx→0 时的极限存在,则称函数 y=f(x) 在点 处可导,并称这个极限为函数 y=f(x)在点处的导数,记为f'():

方向导数指的是多元函数在某一个方向上的导数,偏导数为坐标轴方向上的方向导数。其他方向的方向导数都可以看作是偏导数的合成。

微分的定义如下:设函数 y=f(x)在点 的某邻域上有定义,若对于任意 ,都成立 ,其中A是只与点有关的常数(线性逼近函数的斜率),如果(也被称为误差函数)是较 Δx 高阶的无穷小(即),则称函数在该点可微。其中 AΔx 叫做线性主部(主要部分,因为误差很小),记 dy=AΔx ,称为y 的微分。(核心思想是:对于一个函数,如果锚定一个点 ,在其比较小的邻域内,可以用一次(线性)函数逼近这个函数)

函数可微的内涵:事实上,用线性函数来逼近f(x),即可以对任何函数成立,因为有误差函数保证其精确性。但是如果误差函数太大,这样的逼近是没有意义的。因此,我们限制误差函数只能为一个高阶无穷小量,这就保证了在点附近用线性函数逼近原函数的有效性,或者说这才是有意义的逼近。由此可见,“误差函数为高阶无穷小量”是逼近的精髓,如若不然,逼近的意义不大。因此取微分的内涵就是用线性函数逼近函数,是一种具体的操作

导数是函数f(x)上增量Δy(全增量)与自变量增量Δx(也称,自变量的微分dx)比值的极限。函数的微分dy是用于逼近的线性函数(切线)上的线性增量。函数y=f(x)的微分又可记作(dy=AΔx,A是斜率,即f(x)的导数),从而有。即,函数的微分dy与自变量的微分dx之商等于该函数的导数,因此,导数也叫作“微商”。

偏导数写作(或),(或)分别称作函数f(x, y)对x, y的偏导。

偏微分写作, 分别叫做函数f(x, y)对x, y的偏微分。

全微分写作:函数f在点P(x, y)处的全增量为,其中o(ρ)为高阶无穷小的误差函数,意义就是用自变量增量Δx和Δy的线性函数来逼近函数的全增量Δz。其中称作函数f在点(x,y)处的全微分,记作 (或)。

一元函数中,可导和可微是等价的。多元函数中,可微比可导强得多。如果一个二元函数在某一点的偏导数存在,并不一定表示函数可微,因为偏导数仅仅刻画了坐标轴方向的变化状态,而没有给出其他方向的变化状态的任何信息。如果一个二元函数在某个点可微,那么这个二元函数在这个点的各个方向的导数均存在。如果一个二元函数在某个点的各个方向的导数均存在,但这个二元函数在这个点也不一定可微。

偏导函数连续→可微;但可微 推不出 偏导连续。
可微→函数连续;可微→函数可偏导;(因为函数连续,才能可偏导,继而才能可微)如下面这张图,函数在棱线处虽然连续,但是并不是在任意方向上都可导,自然也就不可微分。

了解完上面的基础概念之后,再来看梯度。

函数f(x, y)在点(x, y)处对每一个变量的偏导数构成的向量,称为梯度,用符号表示梯度的方向就是函数在某点处的方向导数取得最大值的方向,即,函数在该点处沿着梯度的方向变化最快,变化率为梯度的模。如果向量x有n个元,即(这里的x1, x2相当于y, z等多个自变量),则梯度算子的定义为:

表示函数f(x)相对于变量x的梯度:

如果x表示一个单独的自变量,其实就是表示求f(x)对x的偏导。

函数f(x, y)在(a, b)点的梯度为:,其中为函数在(a, b)位置上分别在x轴、y轴方向上的偏导数。注意,梯度是一个向量。如果函数f(x, y)在定义域中的每一个点都是可微的(每一点的偏导数都存在),那么梯度便是一个向量值函数,即它把任意一个点(a, b)映射到一个向量。因此可以说,梯度决定了一个向量场。

如果函数f(x, y)可微,那么梯度函数的定义域将是函数f(x, y) 的全域,也就是说在函数f(x, y)的每一点处,我们都可以根据梯度的方向对其进行优化,使其下降至局部最优。这也是为什么机器学习问题中常常需要函数是可微的,这一点是非常重要的,因为可微了之后就可以通过偏导求出梯度,就可以用梯度下降法优化。梯度下降法中,梯度确定了方向(反方向),学习率确定了下降步幅的大小,直到下降到梯度的模趋向于0。

梯度下降的挑战:

  • 局部最小值

  • 鞍点

参考:https://www.cnblogs.com/wghou09/p/12002660.htmlhttps://www.cnblogs.com/shine-lee/p/11715033.html

5)重参数化技巧

将参数的分布重写为一个含有噪声ε的分布,噪声独立于原先的参数。比如说想从正态分布中抽样,我们可以先抽取ε∼N(0,1),再通过换元完成。

6)Fubini定理:TODO
7)变分下限(VLB):TODO
8)Jensen不等式:TODO
9)能量模型(Energy-Based Models,EBMs):

能量模型(Energy-based model)是一种以自监督方式执行的生成式模型。除此之外,生成式模型还包括自回归模型流模型变分自编码器生成对抗网络扩散模型等。

EBMs最早来源于玻尔兹曼机(Boltzmann Machines)。玻尔兹曼机基于能量的方式对概率进行建模,主要的目的就是为了方便对概率进行建模:对于一个给定的数据集,如果不知道其潜在的分布形式,那是非常难学习的,似然函数都写不出来。比如如果知道是高斯分布或者多项分布,那可以用最大化似然函数来学出需要学习的对应参数,但是如果分布的可能形式都不知道,这个方法就行不通。而统计力学的结论表明,任何概率分布都可以转变成基于能量的模型,所以利用基于能量的模型的这个形式,是一种学习概率分布的通法。

在一个复杂系统里你要表示一个变量 x∈X 的概率 P(x),用玻尔兹曼(吉布斯)分布的形式如下:

基于以上方式(框架)对概率进行建模的方法,就叫做能量模型。E(x)表示状态x的能量,Z叫做配分函数,用于归一化。可以看出,能量E(x)越小,对应状态的概率P(x)越大。在EBMs的框架内,不同的方法的区别就是,能量函数E(x)(Energy Function)的不同。如果能量函数被表示为似然函数,那么求最大似然就相当于求最小能量。以下是EBMs的几种方法:

  • 玻尔兹曼机(Boltzmann Machines,BMs)的能量函数为:,其中x是表示单元状态,U表示参数矩阵,b表示偏差项,这里面包含的假设是单元状态单元之间的相互关系都是线性的。

如果在BMs中假如隐变量,那么模型的表达能力将会大大增强,可以逼近非常复杂的概率分布。模型结果如下。能量函数为:。对于玻尔兹曼机而言,训练任一连接两个单元的权重参数,只需用到对应的这两个单元的数据,而与其他单元的数据无关。即玻尔兹曼机的训练规则是局部的(local)。

  • 受限波尔兹曼机(Restricted Boltzmann Machines,RBMs):RBMs是在隐变量BMs的基础上进一步施加约束,具体是在RBM中不存在可见单元与可见单元的链接,也不存在隐含单元与隐含单元的链接,整个RBM网络结构是一个如下所示的两层神经网络,上面是隐藏层(hidden layer),下面是可见层(visible layer)。隐藏层和可见层之间是全连接的,这点和DNN类似, 隐藏层神经元之间是独立的,可见层神经元之间也是独立的。连接权重可以用矩阵W表示。和DNN的区别是,RBM不区分前向和反向,可见层的状态可以作用于隐藏层,而隐藏层的状态也可以作用于可见层。

RBM的联合概率分布为:,能量函数为:,其中a和b是偏置系数。学习RBM的任务是求出模型参数的值,通常用对比散度(Contrastive Divergence,CD)算法来求解。

  • 深度玻尔兹曼机(Deep Boltzmann Machines,DBMs):即深层的RBM,就是在RBM中加入更多的隐藏层,如下。

能量函数通常写作 ,用于衡量x,y 的 compatibility,也可以理解为x,y 是否匹配,匹配度越高能量越小。

训练EBM的初衷就是找一个合适的能量函数(Energy Function),使得其能够对输入的X 输出最匹配的 Y 。给定参数 W ,我们将这一类能量函数写作:

参考:https://zhuanlan.zhihu.com/p/34201655https://www.cnblogs.com/pinard/p/6530523.html综述:基于能量的模型

10)分数函数(Score Function,SF):

最大似然估计(MLE)中的似然函数为:L(θ)=p(x; θ)。当似然函数L(θ)关于参数θ可导时,常常通过求导方法来获得似然函数L(θ)极大值对应的参数值θ。为了求导方便,常常对似然函数取对数,即对数似然函数为:L'(θ)=log p(x; θ),这个函数L'(θ)与似然函数L(θ)在同一点达到最大。

对似然函数L'(θ)求关于θ的一阶导数,就是Score function,记为:。因此极大似然估计,就是求,因为这时的θ,可以使L'(θ)达到最大,同等于使似然函数L(θ)达到最大。

SF 之所以在机器学习中非常有用,是因为具有非常好的性质:

  • 与 MLE 有着密不可分的关系;

  • SF 的期望等于 0;

Score Function 的应用:变分推断和强化学习

TODO: 一篇很好的串讲:Score-based Generative Models总结

参考:Score Function Trick及其在机器学习中的应用

12)采样到底是什么?

知道了一个变量的分布,要生成一批样本服从这个分布,这个过程就叫采样。采样本质上是对随机现象的模拟,根据给定的概率分布,来模拟产生一个对应的随机事件。采样可以让人们对随机事件及其产生过程有更直观的认识。

例子:吉布斯采样是MCMC的一个特例,吉布斯采样的牛逼之处在于只需要知道条件概率的分布,便可以通过采样得到联合概率分布的样本。

采样的作用:

  • 采样也是一种信息降维,可以起到简化问题的作用。

  • 采样也可以用于生成。例如VAE,它是在 AE 的基础上对隐变量z施加限制,使得z符合一个标准正态分布,这样就可以对隐变量进行采样,生成的结果可以是类似于输入样本,但是不完全一样的数据。

  • 很多模型由于结构复杂、含有隐变量等原因,导致对应的求解公式比较复杂,没有显式解析解,难以进行精确求解或推理。在这种情况下,可以利用采样方法进行随机模拟,从而对这些复杂模型进行近似求解或推理。这一般会转化为某些函数在特定分布下的积分或期望,或者是求某些随机变量或参数在给定数据下的后验分布。例如,在隐狄利克雷模型和深度玻尔兹曼机的求解过程中,由于含有隐变量,直接计算比较困难,此时可以用吉布斯采样对隐变量的分布进行采样。如果对于贝叶斯模型,还可以将隐变量和参数变量放在一起,对它们的联合分布进行采样。注意,不同于一些确定性法近似求解方法(如变分贝叶斯方法、期望传播等),基于采样的随机模拟方法是数值型的近似求解方法。参考:采样的作用

11)雅可比矩阵

向量值函数:(有n个自变量,m个因变量)

多个变量(x1, ..., xn)的向量值函数f(x)(分量函数为f1, ..., fm)的雅可比矩阵是其梯度矩阵的转置,即雅可比矩阵是其所有一阶偏导数的矩阵,如下:

可以看出,雅可比矩阵是一个m×n矩阵,由于矩阵描述了向量空间中的运动——变换,因此雅可比矩阵看作是将点(x1, ..., xn)转化到点(y1, ..., ym),或者说是从一个n维的欧式空间转换到m维的欧氏空间的变换。

当m=1时,函数的雅可比矩阵就是梯度矩阵。


正向过程

前向扩散过程,相当于在每一time step都往上一个图像的状态加入一个高斯噪声μ~N(, ),这样当T→+∞时,就会变成完全的高斯噪声。这个过程中,每一个状态只与前一个状态有关,因此整个前向扩散过程可以看作是一个马尔可夫过程,描述如下:

q是从得到的过程,它可以描述为一个概率函数N,它的参数为(均值),(方差),I是单位矩阵。都是矩阵,因为往图像中加入高斯噪声μ~N(, ),其实实质上是为的每一个像素值都添加相同的噪声分布μ,然后在每一个像素点上从这个分布上采样一个值进行相加,所以要乘以变为矩阵形式对应每一个像素点处的均值,对应的则是每一个像素点处的方差(相同)。

直观上理解,当T→+∞时,每一个像素点都会变成一个标准高斯分布,有高斯混合模型可知,那整个图像也相当于趋近于标准高斯分布。(这个理解待考证)

在GLIDE的code中,方差 βt 随着t增大是递增的,且是由0.0001 到0.02线性插值。至于均值为什么会选择,这是为了当T→+∞时,稳定收敛到标准正态分布,其中的细节参考:由浅入深了解Diffusion Model的Eq. (3)&(4)。

逆向过程

TODO

训练过程

TODO

参考:

[1] https://zhuanlan.zhihu.com/p/525106459

[2] What are Diffusion Models?

猜你喜欢

转载自blog.csdn.net/DUDUDUTU/article/details/129764584