去噪扩散隐式模型-DDIM
目录
DDIM是基于DDPM 的创新,旨在解决DDPM数百步或数千步迭代计算带来的巨大计算量,主要创新点就在采样过程。了解去噪概率模型(DDPM)通过这个链接。
去噪扩散隐式模型 (DDIM)
去噪扩散隐式模型(Denoising Diffusion Implicit Models, DDIM)是扩散模型的一种改进形式,通过非马尔可夫链的生成过程加速采样,同时保持生成质量。其核心思想是重新参数化扩散过程,允许更灵活的采样步长调整。
DDIM 的核心原理
DDIM 修改了传统扩散模型(如 DDPM)的马尔可夫链假设,通过隐式定义反向过程,减少采样所需的步骤。其关键公式如下:
前向过程
与传统扩散模型类似,前向过程逐步添加噪声,但 DDIM 允许跳过某些步骤:
反向过程
DDIM 的反向过程通过确定性映射实现,而非随机采样:
DDIM 的优势
-
加速采样
通过调整步长策略,DDIM 可将采样步骤从数百步减少到几十步,显著提升效率。 -
确定性生成
反向过程变为确定性,允许通过固定随机种子精确复现结果。这种确定性意味着从相同的初始噪声开始,采样过程始终生成相同的初始图像
。这种性质对于需要可复现性的具有重要的价值。
-
兼容性
可直接加载预训练的 DDPM 模型权重,无需重新训练。
DDIM 的实现步骤
训练阶段
与传统扩散模型一致,训练噪声预测模型 :
采样阶段
使用 DDIM 的确定性采样算法:
- 从高斯噪声
开始。
- 按时间步
迭代计算:
,其中
。
应用场景
- 图像生成
高质量图像合成,支持快速迭代。 - 图像修复
结合掩码技术填充缺失区域。 - 超分辨率
与条件扩散模型结合提升分辨率。
代码示例(PyTorch)
def ddim_sample(model, x_T, alphas, alphas_prev, steps):
x = x_T
for t in reversed(range(steps)):
eps = model(x, t)
x0_pred = (x - (1-alphas[t])**0.5 * eps) / alphas[t]**0.5
x = alphas_prev[t]**0.5 * x0_pred + (1-alphas_prev[t])**0.5 * eps
return x
参数选择建议
- 步长策略
线性或余弦调度器均可,后者通常效果更平滑。 - 采样步数
20-50 步即可达到较好效果,具体需权衡速度与质量。 - 噪声预测模型
U-Net 结构是常见选择,注意与 DDPM 的兼容性。
DDIM 通过理论创新解决了扩散模型采样慢的痛点,为实际应用提供了高效解决方案。后续研究如 Progressive Distillation 进一步优化了其性能。
本文来源于网络学习后,通过个人总结等完成,感谢各位前辈的总结,如有不妥或有误的地方,欢迎大家来讨论,批评指正!
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)