Stable Diffusion的数学原理

Stable Diffusion是一种深度学习模型,用于生成和操作图像。它主要基于变分自编码器(Variational Autoencoders, VAEs)和扩散模型(Diffusion Models)的结合。下面是这些关键概念的详细解释:

变分自编码器(VAEs)

变分自编码器是一种生成模型,用于学习输入数据的潜在表示。VAE包括两部分:编码器和解码器。

  • 编码器(Encoder):将输入数据映射到一个潜在空间(latent space)。映射过程可以表示为:

    q ϕ(z∣x)q_\phi(z|x) qϕ(zx)

    其中, xxx是输入数据, zzz是潜在表示, ϕ\phiϕ是编码器的参数。

  • 解码器(Decoder):将潜在空间的表示映射回数据空间,尝试重构输入。公式如下:

    p θ(x∣z)p_\theta(x|z) pθ(xz)

    其中, θ\thetaθ是解码器的参数。

VAE的目标是最大化输入数据的对数似然的下界(ELBO, Evidence Lower BOund):

log⁡p(x)≥ Eq ϕ(z∣x) [log⁡ p θ(x∣z)]− D KL ( q ϕ(z∣x)∣∣p(z))\log p(x) \geq \mathbb{E}_{q_\phi(z|x)}[\log p_\theta(x|z)] – D_{KL}(q_\phi(z|x) || p(z)) logp(x)Eqϕ(zx)[logpθ(xz)]DKL(qϕ(zx)∣∣p(z))

这里, D K L D_{KL}DKL是KL散度,一种衡量两个概率分布差异的方法。

扩散模型(Diffusion Models)

扩散模型是一种逐步将数据从其原始状态转化为无序状态,然后再逆转这个过程以生成数据的模型。其基本步骤如下:

  1. 正向过程(Forward process):这是一个马尔可夫链过程,逐渐在数据上增加噪声,直到数据完全转化为噪声。

    q( x t∣ x t−1 )=N( x t; 1− β tx t−1 , β tI)q(x_t|x_{t-1}) = \mathcal{N}(x_t; \sqrt{1-\beta_t}x_{t-1}, \beta_t I) q(xtxt1)=N(xt;1βt xt1,βtI)

  2. 逆向过程(Reverse process):这是正向过程的逆过程,从噪声中重构出原始数据。

    p θ( x t−1 ∣ x t)p_\theta(x_{t-1}|x_t) pθ(xt1xt)

模型的训练目标是最小化原始数据和重构数据之间的差异。