简单基础入门理解Denoising Diffusion Probabilistic Model,DDPM扩散模型

Posted xiongxyowo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单基础入门理解Denoising Diffusion Probabilistic Model,DDPM扩散模型相关的知识,希望对你有一定的参考价值。

I. 作者的话

最近非常不巧的要研究什么diffusion…然而目前网上能找到的资料完全是设计给非常熟练数学的人看的(哪怕对于许多所谓的"入门教程",基本就是纯数学劝退教程),对于我这种高数概率论约等于挂科的人来说根本没法看。因此希望写一篇尽量通俗易懂,在尽量避免「概率论」的情况下,能把diffusion讲明白来的文章。

由于笔者数学并不是很好,且也只是刚刚接触diffusion模型,因此本文应「」适合于同样「数学较差」无法看懂网络上其他地方(例如X乎)教程的同学,「」适合对diffusion有关底层数学原理动机比较熟悉的。如果存在推理描述错误,以及对本文表述有疑问之类,欢迎一同在评论区中讨论。

© c s d n : x i o n g x y o w o \\copyright csdn: xiongxyowo ccsdn:xiongxyowo


II. 前置知识

如果后续推导中有不理解的数学定义,「回到」这里或许能找到解释。

数学符号

y ∝ x y \\propto x yx y y y正比于 x x x,即 y y y随着 x x x增大而线性增大。

条件概率

P ( A ∣ B ) P(A \\mid B) P(AB)表示事件 B B B已经发生的情况下,事件 A A A发生的可能性。
换在本文的语境下,就是变量 B B B已知的情况下,变量 A A A的取值分布。
P ( A ∣ B , C ) P(A \\mid B, C) P(AB,C)则是一种多元条件概率,表示在 B B B C C C同时发生的情况下, A A A发生的概率。
换在本文的语境下,就是变量 B B B C C C已知确定的情况下,变量 A A A的取值分布。

贝叶斯公式

P ( A ∣ B ) = P ( B ∣ A ) ∗ P ( A ) P ( B ) P(A \\mid B) = \\fracP(B \\mid A) * P(A)P(B) P(AB)=P(B)P(BA)P(A)

高斯分布的概率密度函数

给定均值为 μ \\mu μ,标准差为 σ \\sigma σ,方差为 σ 2 \\sigma^2 σ2的高斯分布 N ( μ , σ 2 ) \\mathcalN(\\mu, \\sigma^2) N(μ,σ2),其概率密度函数为: p ( x ) = 1 2 π σ e − 1 2 ( x − μ σ ) 2 p(x) = \\frac1\\sqrt 2\\pi \\sigma e^ - \\frac12(\\fracx - \\mu \\sigma )^2 p(x)=2π σ1e21(σxμ)2
很多时候,为了方便起见,也会写成 p ( x ) ∝ e − 1 2 ( x − μ σ ) 2 p(x) \\propto e^ - \\frac12(\\fracx - \\mu \\sigma )^2 p(x)e21(σxμ)2,也就是把前面乘的常数系数 1 2 π σ \\frac1\\sqrt 2\\pi \\sigma 2π σ1去掉了。
进一步的,为了推导方便起见,我们把 exp ⁡ ( − 1 2 ( x − μ σ ) 2 ) \\exp( - \\frac12(\\fracx - \\mu \\sigma )^2) exp(21(σxμ)2)展开,因此有 p ( x ) ∝ exp ⁡ ( − 1 2 ( 1 σ 2 x 2 − 2 μ σ 2 x + μ 2 σ 2 ) ) p(x) \\propto \\exp(-\\frac12\\left(\\frac1\\sigma^2 x^2-\\frac2 \\mu\\sigma^2 x+\\frac\\mu^2\\sigma^2\\right)) p(x)exp(21(σ21x2σ22μx+σ2μ2))

概率分布中分号的理解

如果对形如 q ( x t ∣ x t − 1 ) = N ( x t ; 1 − β t x t − 1 , β t I ) q\\left(\\mathbfx_t \\mid \\mathbfx_t-1\\right)=\\mathcalN\\left(\\mathbfx_t ; \\sqrt1-\\beta_t \\mathbfx_t-1, \\beta_t \\mathbfI\\right) q(xtxt1)=N(xt;1βt xt1,βtI)的式子感到疑惑,这篇文章提供了一种理解方法。
以上面提到的高斯分布为例,如果概率分布密度函数中的自变量不是默认的 x x x而是其他,那么应该在分布记号中显式的用分号表示实际的自变量。比如实际的自变量是 x 1 x_1 x1而非 x x x,那么高斯分布应记做 N ( x 1 ; μ , σ 2 ) \\mathcalN(x_1; \\mu, \\sigma^2) N(x1;μ,σ2)。默认不写分号的话, N ( μ , σ 2 ) \\mathcalN(\\mu, \\sigma^2) N(μ,σ2)等价于 N ( x ; μ , σ 2 ) \\mathcalN(x; \\mu, \\sigma^2) N(x;μ,σ2)

高斯分布的乘法与加法

对(标准)高斯分布 N ( 0 , 1 ) \\mathcalN(0, 1) N(0,1)做乘法,乘以 σ \\sigma σ,得到一个新的高斯分布, N ( 0 , σ 2 ) \\mathcalN(0, \\sigma^2) N(0,σ2)
对(标准)高斯分布 N ( 0 , 1 ) \\mathcalN(0, 1) N(0,1)做加法,加上 μ \\mu μ,得到一个新的高斯分布, N ( μ , 1 ) \\mathcalN(\\mu, 1) N(μ,1)
两个高斯分布 N ( 0 , σ 1 2 ) \\mathcalN(0, \\sigma_1^2) N(0,深度学习入门基础二简单理解 Transformer

深度学习入门基础二简单理解 Transformer

OpenCV中Denoising相关函数的简单介绍

自编码器原理以及相关算法 Basic Auto-Encoder,Regularized Auto-Encoder,Denoising Auto-Encoder

自编码器原理以及相关算法 Basic Auto-Encoder,Regularized Auto-Encoder,Denoising Auto-Encoder

从DDPM到DDIM:深入解读《Denoising Diffusion Implicit Models》