引言

在前面的博客中,我们讨论了生成模型VAE和GAN,近年来,新的生成模型——扩散模型受到越来越多的关注,因此值得好好去研究一番。扩散模型(Diffusion Models)最早由 [2] 于2015年提出,但直到2020年论文 [3] 发表之后才得到关注,本文详细梳理了 [3] 中的公式推导部分,帮助大家更好理解其中的数学原理。


数学模型

如下图所示(引自[1]),扩散模型医学图像生成 扩散效应理论模型_人工智能 是原始数据,扩散模型医学图像生成 扩散效应理论模型_生成模型_02 是扩散模型,每扩散一次,都会在前一期数据的基础上添加部分噪声,当 扩散模型医学图像生成 扩散效应理论模型_扩散模型医学图像生成_03扩散模型医学图像生成 扩散效应理论模型_生成模型_04 完全被噪声淹没,成为各向同性的高斯分布 扩散模型医学图像生成 扩散效应理论模型_生成模型_05扩散模型医学图像生成 扩散效应理论模型_概率论_06 是生成模型,使用参数为 扩散模型医学图像生成 扩散效应理论模型_机器学习_07 的网络来近似,将噪声恢复成有效信息,整个模型满足马尔可夫链条件。

扩散模型医学图像生成 扩散效应理论模型_概率论_08

目标函数

本文采用自顶向下的形式进行讲解,首先说明最终关注的目标函数,然后针对其中的细节分别深入。直观来说,我们的目标是让近似分布 扩散模型医学图像生成 扩散效应理论模型_人工智能_09 尽可能接近数据的真实分布 扩散模型医学图像生成 扩散效应理论模型_机器学习_10,所以目标函数可以用交叉熵来表示:扩散模型医学图像生成 扩散效应理论模型_机器学习_11 可以得到:扩散模型医学图像生成 扩散效应理论模型_机器学习_12 不等式右边的项就是对数似然下界,记为 扩散模型医学图像生成 扩散效应理论模型_概率论_13,只要让其越大,不等式左边的项也就越大,交叉熵也就越小。

马克洛夫链假设

为了让 扩散模型医学图像生成 扩散效应理论模型_概率论_13 便于优化,需要补充一些知识。前面提到,模型满足马克洛夫链条件(Markov Chain),即当前状态 扩散模型医学图像生成 扩散效应理论模型_扩散模型医学图像生成_15 仅与上一状态 扩散模型医学图像生成 扩散效应理论模型_机器学习_16 有关,假设马克洛夫关系为 扩散模型医学图像生成 扩散效应理论模型_人工智能_17,可以得到性质:扩散模型医学图像生成 扩散效应理论模型_机器学习_18 利用公式(1),可以得到:扩散模型医学图像生成 扩散效应理论模型_机器学习_19 将公式(2)代入 扩散模型医学图像生成 扩散效应理论模型_概率论_13,可以得到:扩散模型医学图像生成 扩散效应理论模型_机器学习_21 将公式(3)的最后一行化成 KL 散度的形式:扩散模型医学图像生成 扩散效应理论模型_生成模型_22 公式(4)第一项对应 VAE 中的正则化损失 扩散模型医学图像生成 扩散效应理论模型_扩散模型医学图像生成_23,第三项对应于重建损失 扩散模型医学图像生成 扩散效应理论模型_机器学习_24,第二项是多个 KL 散度的和,每个度量 扩散模型医学图像生成 扩散效应理论模型_人工智能_25 后验分布和 扩散模型医学图像生成 扩散效应理论模型_生成模型_02 已知 扩散模型医学图像生成 扩散效应理论模型_人工智能

重参数化

利用重参数化技巧可以让公式(4)中的 扩散模型医学图像生成 扩散效应理论模型_扩散模型医学图像生成_15 可解,进一步简化 扩散模型医学图像生成 扩散效应理论模型_概率论_13。给定真实数据 扩散模型医学图像生成 扩散效应理论模型_机器学习_30,扩散过程的每一步可以表示为:扩散模型医学图像生成 扩散效应理论模型_扩散模型医学图像生成_31 其中 扩散模型医学图像生成 扩散效应理论模型_生成模型_32 是一个超参数。利用重参数化技巧,可以使用 扩散模型医学图像生成 扩散效应理论模型_人工智能 直接计算任意时间点 t 上的 扩散模型医学图像生成 扩散效应理论模型_扩散模型医学图像生成_15,不需要一步步迭代。假设 扩散模型医学图像生成 扩散效应理论模型_概率论_35扩散模型医学图像生成 扩散效应理论模型_生成模型_36 其中 扩散模型医学图像生成 扩散效应理论模型_概率论_37,从而得到 扩散模型医学图像生成 扩散效应理论模型_概率论_38。进一步,可以计算 扩散模型医学图像生成 扩散效应理论模型_机器学习_39 的解析式:扩散模型医学图像生成 扩散效应理论模型_人工智能_40 我们知道,扩散模型医学图像生成 扩散效应理论模型_生成模型_41 可以化成 扩散模型医学图像生成 扩散效应理论模型_机器学习_42,那么对于指数项是 扩散模型医学图像生成 扩散效应理论模型_生成模型_41 这种格式的高斯分布,扩散模型医学图像生成 扩散效应理论模型_生成模型_44。设 扩散模型医学图像生成 扩散效应理论模型_生成模型_45,代入公式(7)有:扩散模型医学图像生成 扩散效应理论模型_概率论_46 根据公式(6),将 扩散模型医学图像生成 扩散效应理论模型_人工智能_47 代入公式(8),可以进一步化简 扩散模型医学图像生成 扩散效应理论模型_机器学习_48扩散模型医学图像生成 扩散效应理论模型_机器学习_49

高斯分布的 KL 散度

重参数化技巧使能够解析计算 扩散模型医学图像生成 扩散效应理论模型_扩散模型医学图像生成_15扩散模型医学图像生成 扩散效应理论模型_机器学习_39,除此之外,当前分布为高斯分布时,KL 散度的计算也能得到简化,考虑一维高斯分布 扩散模型医学图像生成 扩散效应理论模型_生成模型_52,它们的 KL 散度为(同理可以扩展到多维高斯分布):扩散模型医学图像生成 扩散效应理论模型_扩散模型医学图像生成_53

优化目标函数

公式(4)中的第一项是常数,第三项可以看作是第二项 扩散模型医学图像生成 扩散效应理论模型_扩散模型医学图像生成_54 时的结果,所以我们主要考虑第二项。设 扩散模型医学图像生成 扩散效应理论模型_人工智能_55,根据公式(10),第二项可以化简为:扩散模型医学图像生成 扩散效应理论模型_概率论_56 将公式(9)代入公式(11)可以得到:扩散模型医学图像生成 扩散效应理论模型_生成模型_57 [3]作者进行了参数化 扩散模型医学图像生成 扩散效应理论模型_概率论_58,相当于网络拟合的是每个时间点的噪声(为什么选择这样参数化我还没明白),同时代入公式(6),公式(12)进一步化简为:扩散模型医学图像生成 扩散效应理论模型_概率论_59 [3]作者发现,将前面的系数丢掉,训练更加稳定,因此得到最终的损失:扩散模型医学图像生成 扩散效应理论模型_扩散模型医学图像生成_60

参考

[1] Understanding Diffusion Models: A Unified Perspective [2] Deep Unsupervised Learning using Nonequilibrium Thermodynamics [3] Denoising Diffusion Probabilistic Models [4] What are Diffusion Models? [5] Probabilistic Diffusion Model概率扩散模型理论