扩散模型

机器学习中，扩散模型或扩散概率模型是一类潜变量模型，是用变分估计训练的马尔可夫链。扩散模型的目标是通过对数据点在潜空间中的扩散方式进行建模，来学习数据集的潜结构。计算机视觉中，这意味着通过学习逆扩散过程训练神经网络，使其能对叠加了高斯噪声的图像进行去噪。计算机视觉中使用通用扩散模型框架的3个例子是去噪扩散概率模型、噪声条件得分网络和随机微分方程。 扩散模型是在2015年提出的，其动机来自非平衡态热力学。 扩散模型可以应用于各种任务，如图像去噪、图像修复、超分辨率成像、图像生成等等。例如，一个图像生成模型，经过对自然图像的扩散过程的反转训练之后，可从一张完全随机的噪声图像开始逐步生成新的自然图像。比较近的例子有2022年4月13日OpenAI公布的文生图模型DALL-E。它将扩散模型用于模型的先验解释器和产生最终图像的解码器。 考虑图像生成问题。令 x {\displaystyle x} 代表一张图，令 p ( x ) {\displaystyle p(x)} 为在所有可能图像上的機率分布。若有 p ( x ) {\displaystyle p(x)} 本身，便可以肯定地说给定的一张图的機率有多大。但这在一般情况下是难以解决的。 大多数时候，我们并不想知道某个图像的绝对機率，相反，我们通常只想知道某个图像与它的周围相比，機率有多大：一张猫的图像与它的小变体相比，機率哪个大？如果图像里有一根、两根或三根胡须，或者加入了一些高斯噪声，機率会更大吗？ 因此，我们实际上对 p ( x ) {\displaystyle p(x)} 本身不感兴趣，而对 ∇ x ln ⁡ p ( x ) {\displaystyle \nabla _{x}\ln p(x)} 感兴趣。这有两个效果： 其一，我们不再需要标准化 p ( x ) {\displaystyle p(x)} ，而是可以用任何 p ~ ( x ) = C p ( x ) {\displaystyle {\tilde {p}}(x)=Cp(x)} ，其中 C = ∫ p ~ ( x ) d x > 0 {\displaystyle C=\int {\tilde {p}}(x)dx>0} 是任意常数，我们不需要去关心它。 其二，我们正在比较 p ( x ) {\displaystyle p(x)} 的邻居 p ( x + d x ) {\displaystyle p(x+dx)} ，通过 p ( x ) p ( x + d x ) = e − ⟨ ∇ x ln ⁡ p , d x ⟩ {\displaystyle {\frac {p(x)}{p(x+dx)}}=e^{-\langle \nabla _{x}\ln p,dx\rangle }} 令分数函数为 s ( x ) := ∇ x ln ⁡ p ( x ) {\displaystyle s(x):=\nabla _{x}\ln p(x)} ，然后考虑我们能对 s ( x ) {\displaystyle s(x)} 做什么。 实际上， s ( x ) {\displaystyle s(x)} 允许我们用随机梯度朗之万动力学从 p ( x ) {\displaystyle p(x)} 中取样，这本质上是马尔可夫链蒙特卡洛的无限小版本。 分数函数可通过加噪-去噪学习。 假设我们希望不是从整个图像的分布中取样，而是以图像描述为条件取样。我们不想从一般的图像中取样，而是从符合描述“红眼睛的黑猫”的图片中取样。一般来说，我们想从分布 p ( x | y ) {\displaystyle p(x|y)} 中取样，其中 x {\displaystyle x} 的范围是图像， y {\displaystyle y} 的范围是图像的类别（对y而言，“红眼黑猫”的描述过于精细，“猫”又过于模糊）。 从噪声信道模型的角度来看，我们可以将这一过程理解如下：为生成可描述为 y {\displaystyle y} 的图像 x {\displaystyle x} ，我们设想请求者脑海中真有一张图像 x {\displaystyle x} ，但它经过多次加噪，出来的是毫无意义可言的乱码，也就是 y {\displaystyle y} 。这样一来图像生成只不过是推断出请求者心中的 x {\displaystyle x} 是什么。 换句话说，有条件的图像生成只是“从文本语言翻译成图像语言”。之后，像在噪声信道模型中一样，我们可以用贝叶斯定理得到 p ( x | y ) ∝ p ( y | x ) p ( x ) {\displaystyle p(x|y)\propto p(y|x)p(x)} 也就是说，如果我们有一个包含所有图像空间的好模型，以及一个图像到类别的好翻译器，我们就能“免费”得到一个类别到图像的翻译器，也就是文本到图像生成模型。 SGLD使用 ∇ x ln ⁡ p ( x | y ) = ∇ x ln ⁡ p ( y | x ) + ∇ x ln ⁡ p ( x ) {\displaystyle \nabla _{x}\ln p(x|y)=\nabla _{x}\ln p(y|x)+\nabla _{x}\ln p(x)} 其中 ∇ x ln ⁡ p ( x ) {\displaystyle \nabla _{x}\ln p(x)} 是分数函数，如上所述进行训练，用可微图像分类器便可以找到 ∇ x ln ⁡ p ( y | x ) {\displaystyle \nabla _{x}\ln p(y|x)} 。 分类器引导的扩散模型会从 p ( x | y ) {\displaystyle p(x|y)} 中取样，它集中在最大后验概率 arg ⁡ max x p ( x | y ) {\displaystyle \arg \max _{x}p(x|y)} 周围。如果我们想迫使模型向最大似然估计 arg ⁡ max x p ( y | x ) {\displaystyle \arg \max _{x}p(y|x)} 的方向移动，可以用 p β ( x | y ) ∝ p ( y | x ) β p ( x ) {\displaystyle p_{\beta }(x|y)\propto p(y|x)^{\beta }p(x)} 其中 β > 0 {\displaystyle \beta >0} 可解释为逆温度，在扩散模型研究中常称其为制导尺度（guidance scale）。较高的 β {\displaystyle \beta } 会迫使模型在更靠近 arg ⁡ max x p ( y | x ) {\displaystyle \arg \max _{x}p(y|x)} 的分布中采样。这通常会提高生成图像的品質。 这可以简单地通过SGLD实现，即 ∇ x ln ⁡ p β ( x | y ) = β ∇ x ln ⁡ p ( y | x ) + ∇ x ln ⁡ p ( x ) {\displaystyle \nabla _{x}\ln p_{\beta }(x|y)=\beta \nabla _{x}\ln p(y|x)+\nabla _{x}\ln p(x)} 如果我们没有分类器 p ( y | x ) {\displaystyle p(y|x)} ，我们仍可以从图像模型本身提取一个： ∇ x ln ⁡ p β ( x | y ) = ( 1 − β ) ∇ x ln ⁡ p ( x ) + β ∇ x ln ⁡ p ( x | y ) {\displaystyle \nabla _{x}\ln p_{\beta }(x|y)=(1-\beta )\nabla _{x}\ln p(x)+\beta \nabla _{x}\ln p(x|y)} 这样的模型通常要在训练时提供 ( x , y ) {\displaystyle (x,y)} 和 ( x , N o n e ) {\displaystyle (x,None)} ，这样才能让它同时为 ∇ x ln ⁡ p ( x | y ) {\displaystyle \nabla _{x}\ln p(x|y)} 和 ∇ x ln ⁡ p ( x ) {\displaystyle \nabla _{x}\ln p(x)} 建模。 这是GLIDE、DALL-E和Google Imagen等系统的重要组成部分。 扩散过程 马尔可夫链 变分贝叶斯方法 变分自编码器 Guidance: a cheat code for diffusion models （页面存档备份，存于互联网档案馆）. Good overview up to 2022. Ho, Jonathan; Jain, Ajay; Abbeel, Pieter. Denoising Diffusion Probabilistic Models. 2020-06-19. arXiv:2006.11239 .  Song, Yang; Sohl-Dickstein, Jascha; Kingma, Diederik P.; Kumar, Abhishek; Ermon, Stefano; Poole, Ben. Score-Based Generative Modeling through Stochastic Differential Equations. 2021-02-10. arXiv:2011.13456  [cs.LG].  Gu, Shuyang; Chen, Dong; Bao, Jianmin; Wen, Fang; Zhang, Bo; Chen, Dongdong; Yuan, Lu; Guo, Baining. Vector Quantized Diffusion Model for Text-to-Image Synthesis. 2021. arXiv:2111.14822  [cs.CV].  Croitoru, Florinel-Alin; Hondru, Vlad; Ionescu, Radu Tudor; Shah, Mubarak. Diffusion models in vision: A survey. 2022. arXiv:2209.04747  [cs.CV].  Sohl-Dickstein, Jascha; Weiss, Eric; Maheswaranathan, Niru; Ganguli, Surya. Deep Unsupervised Learning using Nonequilibrium Thermodynamics (PDF). Proceedings of the 32nd International Conference on Machine Learning (PMLR). 2015-06-01, 37: 2256–2265 [2023-02-24]. （原始内容存档 (PDF)于2023-04-05） （英语）.  Ramesh, Aditya; Dhariwal, Prafulla; Nichol, Alex; Chu, Casey; Chen, Mark. Hierarchical Text-Conditional Image Generation with CLIP Latents. 2022. arXiv:2204.06125  [cs.CV].  Dhariwal, Prafulla; Nichol, Alex. Diffusion Models Beat GANs on Image Synthesis. 2021-06-01. arXiv:2105.05233  [cs.LG].  Ho, Jonathan; Salimans, Tim. Classifier-Free Diffusion Guidance. 2022-07-25. arXiv:2207.12598  [cs.LG].  Nichol, Alex; Dhariwal, Prafulla; Ramesh, Aditya; Shyam, Pranav; Mishkin, Pamela; McGrew, Bob; Sutskever, Ilya; Chen, Mark. GLIDE: Towards Photorealistic Image Generation and Editing with Text-Guided Diffusion Models. 2022-03-08. arXiv:2112.10741  [cs.CV].  Ramesh, Aditya; Dhariwal, Prafulla; Nichol, Alex; Chu, Casey; Chen, Mark. Hierarchical Text-Conditional Image Generation with CLIP Latents. 2022-04-12. arXiv:2204.06125  [cs.CV].  Saharia, Chitwan; Chan, William; Saxena, Saurabh; Li, Lala; Whang, Jay; Denton, Emily; Ghasemipour, Seyed Kamyar Seyed; Ayan, Burcu Karagol; Mahdavi, S. Sara; Lopes, Rapha Gontijo; Salimans, Tim; Ho, Jonathan; Fleet, David J.; Norouzi, Mohammad. Photorealistic Text-to-Image Diffusion Models with Deep Language Understanding. 2022-05-23. arXiv:2205.11487  [cs.CV].