Diffusion Model理解

Diffusion Model理解

整体理解

从右向左是正向过程,\(q(x_t|x_{t-1})\) 是加噪声的过程,可以直接获知,\(q(x_{t-1}|x_t)\) 是我们想要做的建楼操作,需要通过训练模型\(p_\theta(x_{t-1}|x_t)\) 来估计


Weng, Lilian. (Jul 2021). What are diffusion models? Lil’Log.文章中截图

ELBO

隐变量模型

间接的方式描述观测数据的分布,\(\mathbf{z}\)表示隐变量,原始数据分布用联合分布的边缘分布表示


udlbook 17.1 Latent variable models

Evidence Lower Bound

为什么需要ELBO呢?


From Understanding Diffusion Models: A Unified Perspective

有时候最大化观测数据的最大似然函数比较困难,就推导出观测数据对数似然函数(evidence)的下界 Evidence Lower Bound (ELBO) ,最大化这个下届,就相当于最大化对数似然函数。

推导ELBO的两种方式

方式一:根据詹森不等式


Equations in Understanding Diffusion Models: A Unified Perspective

方式二:根据\(D_{KL}\ge0\)的性质


Equations in Understanding Diffusion Models: A Unified Perspective

前向过程

前向过程是马尔科夫链


forward process from Denoising Diffusion Probabilistic Models

因为前向过程是马氏链,才有公式 (2) 左边的式子成立,理解如下

image-20240102142836569

前向过程中有一个简单的推导,就是给定初始图像\(x_0\),推导出任意时刻\(t\)的加噪声的图像\(x_t\)

image-20240102192256379

反向过程

反向过程也是马尔科夫链


reverse process from Denoising Diffusion Probabilistic Models

因为逆向过程是马氏链才有公式(1)左边的式子成立,理解如下

image-20240102111856061

目标函数推导

理论上的反向过程


from Lil'Log

自己的推导和理解

image-20240103094225577

目标函数推导


Equations from Understanding Diffusion Models: A Unified Perspective

以下为之前的理解


但这边为什么求对数似然函数的期望,还不理解,从公式上有两点

  1. 求期望并不会影响最小化负对数似然函数
  2. \(\Epsilon_{x1:T}\)转换为\(\Epsilon_{x0:T}\)

image-20240103083031591

基本思想是:最大似然法(最小化负对数似然函数),上面推导出来了负对数似然函数的上界,最小化它的上界的效果相当于最小化负对数似然函数

在Lil’Log中有一个不理解的地方,就是下面这两个KL散度是如何得到的?KL散度不应该是有积分或求和的形式吗?

image-20240103082859975

KL散度的定义

image-20240103083430911

而且Lil’Log中这部分的推导感觉有点前后矛盾

image-20240103084711237

可以先忽略这一点,继续往下理解


以上为之前的理解

观察可以发现,公式中\(L_T, L_0\)都是确定的,因此只需要优化\(L_{T-1}...L_2\)即可,而观察又可以发现\(L_{T-1}...L_2\)就是理论上反向过程和模型估计反向过程分布的KL散度,我们之前又已经推导出了理论上的反向过程表达,因此目标函数就可以写出来了

image-20240103085307956

忽略常数,简化目标函数:

image-20240103085338998

此时就可以理解到,和李宏毅老师的讲解一致,”训练模型去估计这张图像在t时刻被加入的噪声“。\(\epsilon_t\)是图像在前向过程中t时刻被加上的随机噪声,\(\epsilon_\theta\)就是我们的模型,需要训练这个模型去估计加入的随机噪声,这是训练(training)过程。当模型训练好之后,就具有了从加了噪声的图像中去除这一步噪声的能力,一步步逐渐从纯噪声中把噪声去除,即得到了生成的图像,这也就是推理(inference)过程。

算法如下

image-20240103090102099

论文:arXiv:2006.11239

  1. Weng, Lilian. (Jul 2021). What are diffusion models? Lil’Log.

    https://lilianweng.github.io/posts/2021-07-11-diffusion-models/.

  2. Understanding Diffusion Models: A Unified Perspective

    Calvin Luo, arXiv:2208.11970

  3. Understanding Deep Learning

    Simon J.D. Prince, http://udlbook.com

posted @ 2024-01-03 09:41  dctwan  阅读(76)  评论(0编辑  收藏  举报