Part3: Dive into DDPM
背景
整个系列有相对完整的公式推导,若正文中有涉及到的省略部分,皆额外整理在Part4,并会在正文中会指明具体位置。
- Part1: Overview of Diffusion Process
- Part2: DDPM as Example of Variational Inference
- Part3: Dive into DDPM
- Part4: Appendix
在Part2基于
沿着论文的思路对
简化过程
不难看出forward process
与reverse process
两个阶段的定义,马尔可夫链的状态转移皆服从高斯分布,如下所示:
同时,经过推导(见Part4推导二),易知:
故KL散度
比较皆发生在两个Gaussian
间。
可以看到,
注:在2015年提出diffusion框架
的论文,前向扩散过程中的DDPM
的第一处简化。
对于反向扩散过程的分布DDPM
的第二处简化是定义
基于Part4两个高斯的KL散度,对于
其中
仔细观察
在Foward Process
中,
又因为
前文提到,要优化
由
此处以
将
对比
并且,重新审视
通过公式
这一项对应着信息由隐变量转变回
真实图片中各个像素由0到255的数值组成,在处理时通常将所有像素值归一化到区间[-1,1]
。论文中将该项对应的优化目标定义为:
其中,积分项是为了与图片真实像素的离散特性保持一致,
该项的优化目标是:对于输入图片
直接文字阐述并不好理解,下方是对于单个位置的具体实例,截图来自视频:
当前有一张真实的图片
并且,中间图片表示在
在左下角画出该
但如果神经网络预测出该位置的值服从服从均值为
实际代码实现中,该项被省略,这是第三处简化。
简化的损失函数
回顾
对于DDPM
的第四处简化在于省略了均方差损失项的权重,最终的损失函数
总结
回顾本文,DDPM
在损失函数上做了很多简化,对于代码侧的实现非常友好。同时,论文作者也给出实验对比,验证简化并不会使得结果变差,有些简化(比如设置reverse过程中的
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
2020-02-25 如何利用dokcer提交我的比赛代码