
1. 变分视角下的扩散模型演进在生成模型领域变分自编码器(VAEs)和扩散模型(DDPMs)代表着两种重要的技术路线。2013年提出的VAEs通过编码器-解码器架构学习数据分布的潜在表示而2020年兴起的DDPMs则通过逐步加噪和去噪的过程实现高质量生成。看似不同的两种方法实际上在数学框架上存在深刻的联系。1.1 从VAEs到分层VAEs的演进传统VAEs的核心是优化证据下界(ELBO)ELBO E[log p(x|z)] - KL(q(z|x) || p(z))其中第一项是重建损失第二项是潜在空间的正则化。这种架构存在两个主要局限一是潜在空间结构简单通常假设为各向同性高斯分布二是单阶段编码可能丢失细粒度信息。分层VAEs通过引入多级潜在变量解决了这些问题z {z1, z2, ..., zL} p(z) p(zL)∏ p(zl|zl) q(z|x) q(z1|x)∏ q(zl|zl)这种分层结构可以逐步抽象特征但训练难度显著增加需要精心设计各层的分布形式和相关强度。实际应用中发现当层级超过5层时模型容易出现后验崩塌(posterior collapse)即q(z|x)退化为先验p(z)。解决方法包括使用更强的解码器或调整KL项的权重。1.2 扩散模型作为无限层VAEs将扩散过程视为编码逆向过程视为解码DDPMs可以理解为一种特殊的分层VAEs时间步扩展为连续无限多步对应无限层级每步的转移核q(xt|xt-1)固定为已知的加噪过程对应编码器逆向过程pθ(xt-1|xt)学习去噪对应解码器这种视角下扩散模型的ELBO可以表示为ELBO E[log p(x0|x1)] - ∑ KL(q(xt-1|xt,x0) || pθ(xt-1|xt))其中第一项是最终的重建项求和项是各时间步的预测误差。1.3 关键数学联系重参数化技巧VAEs和DDPMs都依赖重参数化实现可微采样VAEs中z μ σ⊙ε, ε∼N(0,I)DDPMs中xt √αt x0 √(1-αt)ε, ε∼N(0,I)这种相似性使得两种模型都可以通过标准反向传播进行训练。不同的是DDPMs的αt序列通常是预设的噪声调度(noise schedule)而非学习得到。2. 扩散模型核心算法解析2.1 前向扩散过程前向过程将数据x0逐步转换为x1,...,xT每步应用马尔可夫转移核q(xt|xt-1) N(xt; √(1-βt)xt-1, βtI)其中βt是噪声调度参数。通过重参数化可以直接从x0计算任意时刻的xtxt √αt x0 √(1-αt)ε, αt∏(1-βs)这个闭式解是扩散模型高效训练的关键。噪声调度实践常用线性调度(βt从1e-4到0.02)或余弦调度。后者在高分辨率图像生成中表现更好因为保留了更多低频信息。2.2 逆向生成过程逆向过程通过神经网络学习条件分布pθ(xt-1|xt) N(xt-1; μθ(xt,t), Σθ(xt,t))实际训练中通常预测噪声εθ(xt,t)而非直接预测均值因为数值稳定性更好与UNet架构的适配性更强便于实现Classifier-Free Guidance逆向过程的均值计算为μθ(xt,t) 1/√αt (xt - (1-αt)/√(1-αt) εθ)2.3 训练目标简化原始ELBO可以简化为Lsimple Ex0,ε,t[||ε - εθ(xt,t)||^2]这种去噪得分匹配目标在实践中表现更好因为它避免了KL散度的复杂计算对预测误差更敏感与人类感知对齐去噪质量直观可见3. 实现细节与优化技巧3.1 网络架构设计典型DDPM使用UNet架构关键改进包括时间步嵌入将t通过正弦编码后注入各层注意力机制在特征图上应用自注意力多尺度特征跳跃连接保持细节信息class TimeEmbedding(nn.Module): def __init__(self, dim): super().__init__() self.dim dim inv_freq torch.exp(-torch.arange(0, dim, 2) * math.log(10000) / dim) self.register_buffer(inv_freq, inv_freq) def forward(self, t): pos_enc t[:, None] * self.inv_freq[None, :] return torch.cat([torch.sin(pos_enc), torch.cos(pos_enc)], dim-1)3.2 采样加速技术原始DDPM需要1000步采样常用加速方法DDIM确定性采样xt-1 √αt-1 (xt - √(1-αt)εθ)/√αt √(1-αt-1)εθ仅需50-100步即可获得优质结果。知识蒸馏 训练学生网络直接预测多步去噪过程隐空间扩散 在VAE的潜在空间中应用扩散如Stable Diffusion3.3 条件生成控制Classifier Guidanceεθ(xt|y) εθ(xt) s·∇xt log p(y|xt)需要额外训练分类器。Classifier-Free Guidanceεθ(xt|y) (1w)εθ(xt|y) - wεθ(xt)仅需训练条件和非条件模型。指导强度w通常设为7.5过高会导致样本多样性下降。4. 实际应用中的挑战与解决方案4.1 训练不稳定性问题现象损失震荡或突然发散 解决方法梯度裁剪阈值设为1.0学习率预热前5000步线性增加EMA参数平滑β0.99994.2 生成质量不一致现象部分样本质量明显下降 解决方法噪声调度调整改用cosine调度增加模型容量通道数×1.5测试时增强TTA对同一噪声输入多次采样取平均4.3 计算资源优化混合精度训练scaler GradScaler() with autocast(): loss model(x0, t, noise) scaler.scale(loss).backward() scaler.step(optimizer) scaler.update()激活检查点model.set_grad_checkpointing(True)分布式训练策略数据并行batch_size256时效果最佳模型并行适用于1B参数的模型5. 前沿扩展方向5.1 潜在扩散模型(LDMs)将扩散过程应用于VAE的潜在空间先训练VAE压缩数据到潜在空间在潜在空间训练扩散模型显著降低计算成本如Stable Diffusion在64×64潜在空间操作5.2 多模态扩散统一框架处理图像、文本、音频跨模态注意力机制共享的扩散时间步条件交叉生成如文生图5.3 扩散模型与向量场模型关键区别扩散模型基于得分匹配显式建模噪声向量场模型直接学习数据流形上的向量场后者在理论上更通用但训练难度更大实际选择建议需要高质量生成选扩散模型需要快速采样选向量场模型需要精确密度估计选扩散模型