0
点赞
收藏
分享

微信扫一扫

另辟蹊径的生成算法!DDPM的铺垫知识

0 概述

我本来应该在学习Stable Diffusion的代码。但是因为其很大程度是依赖于DDPM的研究,所以现在沿着这棵树往上爬,必须要先干掉DDPM。

DDPM其中包含了很多的背景知识,比方说扩散模型和score matching。DDPM主要是提出了扩散模型通过一些参数化的手段,使其在形式上与score-based generative modeling的等效性

这里基于一篇论文:

  • 2015:Deep Unsupervised Learning using Nonequilibrium Thermodynamics

生成模型有5类:

  • sequence2sequence
  • GAN对抗生成
  • flow-based generative model
  • VAE生成模型
  • Diffusion model

0 前置条件

0.1 条件概率公式

那么如果满足马尔可夫假设的条件概率是什么样子的呢? 马尔可夫假设:当前状态仅仅与上一时刻的状态有关,与更早的状态无关 如果满足马尔可夫链关系A->B->C,那么:

同理

0.2 高斯分布和KL散度

单变量高斯分布的公式:

KL散度公式:

所以两个单变量的高斯分布的KL散度可以写作:

这个公式的第一个是常数项:

另辟蹊径的生成算法!DDPM的铺垫知识_2d_08

这个公式的第三项等于(因为高斯分布的方差定义)。

第二项其中关键在于下面公式的推导:

诀窍在于

总之,我们可以得到两个单变量高斯分布的KL散度为:

另辟蹊径的生成算法!DDPM的铺垫知识_2d_13

0.3 重参数技巧

VAE当中使用的,如果希望从高斯分布中进行采样,会造成采样过程不可微分;这时候,我们可以从标准分布当中采样出来z,然后利用的方式。这样子可以让采样过程保持可导。

1. VAE

1.1 单层VAE

另辟蹊径的生成算法!DDPM的铺垫知识_生成模型_17

上图是VAE的逻辑,虚线是训练时候的网络模块。将x映射到隐含变量z上,然后再通过z还原x。推理的时候采样z,然后直接从z到x实现生成过程。

简单推导一下VAE的原理:

根据jenson不等式定义,log为上凸函数,所以上公式可以写作:

我们生成图像的目的就是最大化似然,但是这是不可得的。但是我们可以最大化这个似然的下界,所以我们要最大化上面公式右边的东西。

右边的东西我们可以继续推导:

后面是KL散度的定义,所以可以下界可以写成:

第一项最大化的模型含义就是z生成的x足够真实,第二项需要最小化,物理含义就是要让的分布于相同,都是正态分布。(推导到这里实在是太美了,VAE不愧是GAN之下第一生成模型。)

1.2 多层VAE

经典VAE就是单层VAE,现在我们来看下多层的VAE模型。

另辟蹊径的生成算法!DDPM的铺垫知识_算法_26

同上,我们来做一个类似的推导:

如果服从马尔可夫假设,则:

如果服从马尔可夫假设,则:

所以最终下界可以表示为:

另辟蹊径的生成算法!DDPM的铺垫知识_生成模型_35

举报

相关推荐

0 条评论