影像生成模型的数学原理

张开发
2026/4/22 7:49:19 15 分钟阅读
影像生成模型的数学原理
1.z是生成一个feature特征2.Network相当于是一个函数G(z)x,通过输入z特征来生成x目标图注意:输入network中的z不一定是向量图片可以是任何形式因为最后都会通过encoder来提取特征输入到模型中。3.最后这个x预测值要与真实的图片real image)进行对比看二者之间的差距。注意feature是通过real image提取出来的然后通过提取出来的特征来预测原来的real image.测量model 预测出来的Image与实际的Image之间的差距Maximum Likelihood Estimation(极大似然估计这里的x是feature(特征θ是model Pθ(x)是特征经过model后生成出来的东西 Pdata(x)是real image中的图片1.从真实图中提取几张图片2.计算θmodel)可以生成出目标真实图的概率然后相乘看最后有多大概率就是对θ的评价。θ*就是那个生成原图相似度最高的那个network就是最优的model有点像SDG记录保存最好的那个model。一些对θ*的数学推导推导到KL散度1.原来的θ*的量级有点高所以将其下降量级到log。2.第一个等号log(ab)logalogb第二个约等号相加就是在算期望EExPdata的意思是从Pdata真实值中取出xPθ(x)是用θ去预测x最后取期望。3.前半部分期望的定义积分的形式后半部分完全与θmodel)无关对模型的性能评价是没有关系的只与拿到的原始数据有关而这一步的原因是为了合并两项loga-logbloga/b)4.这两项合并后就是KL散度在对预测的数据对的积分下用原始数据的概率乘以log下x经过模型的概率除以原始数据的概率KL散度就是评价真实值与预则值之间不一样的程度。5.所以从推导的形式上看极大似然估计是找出预测效果最好的那个modelKL散度的找出预测的图片与实际图片相近的那个model.VAE : 计算Pθ(x)逻辑也是与上面生成类影像的模型差不多。预测模型的公式就是这样相当于求期望x是feature问题在于这个Pθ(x|z)要看G(x)的表现如果预测出来的图片与真实的图片一样才会设置为1否则为0.这种过于严苛的设定会导致评价模型的指标经常为0所以要适当放宽要求。所以从01的函数分布转向求预测值G(x)与真实值x之间的距离(也就是期望。VAE的指标评价--用logP(x)[logP(x)是VAE评价指标的下限但可以通过提高其下限来提高VAE的总体水平]转化第一步是经过贝叶斯定理 【P(A|B)P(AB)/P(B)--在B发生的概率下发生A在发生B的概率下同时发生A和B】第二步是为了拆开loglogablogalogb)此时后面这一项是KL散度并且KL散度的大于0的所以说这里的下限就是这个期望而这个Eq(z|x)就是encoder本质就是为了提高这个lowe bound从而提高整体的logP(x)。DDPM计算Pθ(x)扩散模型的rever process就是将噪声图一次次去噪从而生成出与原图相近的预测图。在模的前面少一个负号。评价的方式与VAE类似就是计算预测值与真实值之间的距离也就是期望。这里的x1:xT就是指x1到xT之间的所有图片而这个公式就是马尔可夫链只看当下对未来的影响而不看过去对未来的影响。这里要明确P是反向传播[变清晰]从模糊xT-原图x0),q是前向处理[变模糊]从原图x0-模糊xT而DDPM评价指标的提高方式也是与VAE的一样都是通过提高其下限来提高整体的性能。同时DDPM的评价指标是在Forward Process中产生的也就是在从原图生成噪声的过程中。在计算前向的过程中主要计算的是q(x1:xT|x0)【意思是在x0原图的基础上去生成x1到xT】而这里是全连接的转化从x0到xT相当于是从x0到x1到x2.....到xT。而这里的每一步前向处理就是以一定的权重将清晰图与噪声图相加合成为一张模糊图。这里的两张图片标反了生成出来的是XT因为越往xT越模糊而理论上x0到xT就是一步步串行的生成。将每一步分解一下每一次的生成都是用不同的β同时每一个噪声图的正态分布N也是不同的。如此将1式的x1带入到2式的x1中就可以变成这样这样的好处在于可以只用一个噪声图就可以完成前面两步的工作。继续推导延续最后的XT就只是X0乘以一个参数加上噪声图乘以另一个参数。这里的所有β相乘可以直接用一个α来代替这样参数量也可以减少。这就是为什么理论上要多步完成但是实际操作则只需要一步就可以完成。DDPM的下限第一项的计算容易但是x1hi是需要netwoek(model)来预测的但只需要预测一次。第二项的KL散度x0是原图xT是噪声图一头一尾是已经定义好的了与要训练的network(model)无关所以可以无视。第三项是最重要的也是最难计算的因为Xt-1是需要network来训练的。而这一项的重点在于这个q(xt-1|xt,x0)理解一下q是前向传播加Noise的过程就是以一定比例将xt和高斯分布混合得到xt1),但是这里是从xt去推xt-1这本来应该是P反向传播的过程因为是从噪声图变成无噪声图的过程相当于去噪。而前向的过程中我们是这道这三项的关系的。所以如图就是要通过x0与xt通过贝叶斯公式回头计算出xt-1的关系。这里的前两项主要是通过条件概率的定义链式法则还有马尔可夫链的定义来转化的。而且这里的Xt-1,Xt,X0在使用链式法则的时候可以不管前后的关系也就是可以无视谁前谁后的问题可以解决Xt-1在Xt之前的问题。可以无视掉Xn往后的所有元素Xn-1--X0)。所以变成这个后就可以经过数学推导推出其distribution(xt-1),而这个分布的mean均值和Variance(方差)需要记住的是这里的Mean的αt-1,x0,βt都是已经设定好的了(fixed)是不需要训练的了。也就是与Xnetwork)无关。但是我们好回到这里的总目标我们是要计算q(xt-1|xt,x0)与P(xt-1|xt)这两个的KL散度。第一项已经确定mean与variance都不动。而第二项是反向传播去噪。这里的u均值是受t步长的影响的但是这个方差是不变的。所以总体来说这两个分布q和p之后p的Mean是会改变的其余的三项都是不变的。所以唯一能让KL散度下降的方式就是将P的均值项q的均值的方向靠近就可以让KL散度下降了。而让P的mean下降的方式就是优化Denoise因为Denoise是反向去噪的关键训练的对象。总体解释Sampling去噪过程的推导记住下面这个式子需要后续的推导。可以通过上面的式子可以求出X0(原图是多少用Xt.α等来表示。是噪声图的意思。在全面计算q(Xt-1|xt,x0)的分布时这个时候就是算出的Mean就是整一个去噪过程中每一步去噪过程的Mean。最后把转化出来的x0带入到这个分布的Mean中然后经过一些转化就可以得到最后的均值的表达式。。而这个式子中αβ都是手动一次次试出来的在Sampling(去噪)的过程中实际只有是需要network来训练predict的也就是说network只需要train噪声图即可这也与最出理论学习原理的时候一样。最后所推导出来的就是每一个去噪后图片的数学表达式一次次从Xt铜通过此公式推导到X0.

更多文章