1. 前向过程
在DDPM中,前向过程指的是由干净图片 x 0 x_0 x0开始按照一定的原则添加噪声,直到得到噪声图片 x T x_T xT的过程。该过程通常视为一个马尔可夫链。这个添加噪声的规则是我们已知的,其可由状态从 x t − 1 x_{t-1} xt−1 到 x t x_t xt 的转换描述,即前向分布 q ϕ ( x t ∣ x t − 1 ) q_\phi(x_t | x_{t-1}) qϕ(xt∣xt−1),是一个高斯分布:
q ϕ ( x t ∣ x t − 1 ) ≜ N ( x t ∣ α t x t − 1 , ( 1 − α t ) I ) q_\phi(x_t | x_{t-1}) \triangleq \mathcal{N}(x_t | \sqrt{\alpha_{t}} x_{t-1}, (1 - \alpha_{t}) I) qϕ(xt∣xt−1)≜N(xt∣αtxt−1,(1−αt)I)
其中, α t \alpha_{t} αt 是一个预先确定的系数,代表从 x t − 1 x_{t-1} xt−1 到 x t x_t xt 的状态变化的扩散程度。 I I I 表示单位矩阵,是分布的协方差矩阵。所以说,整个前向过程都是已知的,并不含有任何未知的参数或过程。
条件分布 q ϕ ( x t ∣ x 0 ) q_\phi(x_t | x_0) qϕ(xt∣x0)
条件分布 q ϕ ( x t ∣ x 0 ) q_\phi(x_t | x_0) qϕ(xt∣x0) 描述了在给定初态 x 0 x_0 x0 的情况下,时间步 t t t 时的状态 x t x_t xt 的分布。这一条件分布是前向分布 q ϕ ( x t ∣ x t − 1 ) q_\phi(x_t | x_{t-1}) qϕ(xt∣xt−1)推导出的,其具体形式为:
q ϕ ( x t ∣ x 0 ) = N ( x t ∣ α ˉ t x 0 , ( 1 − α ˉ t ) I ) q_\phi(x_t | x_0) = \mathcal{N}(x_t | \sqrt{\bar\alpha_t} x_0, (1 - \bar\alpha_t) I) qϕ(xt∣x0)=N(xt∣αˉtx0,(1−αˉt)I)
其中, α ˉ t \bar\alpha_t αˉt 是直到时间 t t t 的所有扩散步骤的系数乘积,定义为:
α ˉ t = ∏ i = 1 t α i \bar\alpha_t = \prod_{i=1}^t \alpha_i αˉt=i=1∏tαi
2. 后向过程
DDPM中,后向过程描述的是由 x T x_T xT 生成 x T − 1 x_{T-1} xT−1 ,并最终得到图片 x 0 x_0 x0 的过程。该过程也通常视为一个马尔可夫链。在这个过程中训练得到的参数 θ \theta θ 扮演了至关重要的角色,因为它们蕴含了训练阶段从图片中学到的关键特征。这些参数定义了条件分布 q θ ( x t − 1 ∣ x t ) q_\theta(x_{t-1} | x_t) qθ(xt−1∣xt),这是一个神经网络,负责在后向过程中指导每一步的图像生成。注意,参数 θ \theta θ 是未知的,需要经过训练得到的。
后向过程的意义在于,它使用这些训练过程中学习到的特征(保存在 θ \theta θ 中)来逐步从纯噪声状态 x T x_T xT 推断并重建出原始图像 x 0 x_0 x0 ,这意味着后向过程实际上是利用神经网络模型逆转扩散过程,从而将噪声“还原”为具有特定特征的目标图像。通过这种方式,DDPM能够生成高质量、具有高度细节和准确性的图像。
3. 证据下界(ELBO)
在DDPM中,训练的核心目标是最大化证据下界ELBO,其表达式如下:
ELBO ϕ , θ ( x ) = E q ϕ ( x 1 ∣ x 0 ) [ log p θ ( x 0 ∣ x 1 ) ] − E q ϕ ( x T − 1 ∣ x 0 ) [ D K L ( q ϕ ( x T ∣ x T − 1 ) ∥ p ( x T ) ) ] − ∑ t = 1 T − 1 E q ϕ ( x t − 1 , x t + 1 ∣ x 0 ) [ D K L ( q ϕ ( x t ∣ x t − 1 ) ∥ p θ ( x t ∣ x t + 1 ) ) ] \text{ELBO}_{\phi,\theta}(\mathbf{x}) = \mathbb{E}_{q_\phi(x_1 | x_0)} \left[ \log p_\theta(x_0 | x_1) \right] - \mathbb{E}_{q_\phi(x_{T-1} | x_0)} \left[ \text{D}_{KL}\left( q_\phi(x_T | x_{T-1}) \parallel p(x_T) \right) \right] - \sum_{t=1}^{T-1} \mathbb{E}_{q_\phi(x_{t-1}, x_{t+1} | x_0)} \left[ \text{D}_{KL}\left( q_\phi(x_t | x_{t-1}) \parallel p_\theta(x_t | x_{t+1}) \right) \right] ELBOϕ,θ(x)=Eqϕ(x1∣x0)[logpθ(x0∣x1)]−Eqϕ(xT−1∣x0)[DKL(qϕ(xT∣xT−1)∥p(xT))]−t=1∑T−1Eqϕ(xt−1,xt+1∣x0)[DKL(qϕ(xt∣xt−1)∥pθ(xt∣xt+1))]
由于所有前向过程都是已知的,所以实际上 ϕ \phi ϕ并不需要考虑,但是我们仍然在有的地方保留来表明其是已知的前向过程。关于为什么要最大化ELBO,请查看第7小节。
3.1 ELBO的第一项 E q ϕ ( x 1 ∣ x 0 ) [ log p θ ( x 0 ∣ x 1 ) ] \mathbb{E}_{q_\phi(x_1 | x_0)} \left[ \log p_\theta(x_0 | x_1) \right] Eqϕ(x1∣x0)[logpθ(x0∣x1)] :重建误差
目标:最大化这一项,让重建能力最强。
ELBO的第一项表示从 x 1 x_1 x1重建 x 0 x_0 x0的能力,通常被称为重建误差。这里, q ϕ ( x 1 ∣ x 0 ) q_\phi(x_1 | x_0) qϕ(x1∣x0)表示已知的前向过程,即在给定 x 0 x_0 x0的条件下生成 x 1 x_1 x1的分布。而 p θ ( x 0 ∣ x 1 ) p_\theta(x_0 | x_1) pθ(x0∣x1)则是需要通过训练优化的部分,由未知参数 θ \theta θ 描述。最大化这一项表示了在由 x 0 x_0 x0 生成的 x 1 x_1 x1 的情况下,尽可能精确地重建 x 0 x_0 x0。
3.2 ELBO的第二项 − E q ϕ ( x T − 1 ∣ x 0 ) [ D K L ( q ϕ ( x T ∣ x T − 1 ) ∥ p ( x T ) ) ] - \mathbb{E}_{q_\phi(x_{T-1} | x_0)} \left[ \text{D}_{KL}\left( q_\phi(x_T | x_{T-1}) \parallel p(x_T) \right) \right] −Eqϕ(xT−1∣x0)[DKL(qϕ(xT∣xT−1)∥p(xT))]: x T x_T xT与先验的匹配
目标:最大化这一项,让前向过程得到的 x T x_T xT 与对 x T x_T xT 的先验估计最接近。
ELBO的第二项表示由 x T − 1 x_{T-1} x