四、扩散模型(Diffusion Model)的推理过程
推理过程也叫采样过程,是从噪音中逐步去噪,最终生成图片的过程
文章内容主要参考了李宏毅老师的课程
1. 扩散模型的推理过程
在论文中,扩散模型的推理过程如下
推理过程第1步
生成噪音
推理过程第3步
生成噪音。特别的,当时,
推理过程第4步
-
目的:根据,生成去噪后的图片
-
公式讲解:
-
:是预测噪音的模型,它有两个输入,分别是图片和时刻
-
:
在第二篇文章中,我们知道,在前向过程中,在已知 的条件下, 的概率密度函数 ;在已知 的条件下, 的概率密度函数 。
根据贝叶斯公式,我们可以得到,在已知 的条件下, 的概率密度函数。推导之后,我们可以发现,也服从正态分布,其方差为常数,均值为,其中为从到添加的噪音之和。
详细的推导过程见上一篇文章
我们设:在反向过程中,在已知 的条件下, 的概率密度函数。
我们想要让反向过程和正向过程尽可能保持一致,因此可以让尽可能的接近。也就是说,我们可以让也是正态分布,其方差为常数,均值为,其中是对的预测值
在正态分布中,当时,概率密度函数取得最大值。
因此,时,取得最大值。也就是说,在已知的情况下,最有可能取到这个值。
-
但是在最终,我们在后面又加上了噪声(其中,为正态分布的标准差)作为的推测值。
为什么这么干呢?因为在真实世界中,会有很多随机扰动,加入噪音的目的就是为了模拟这些扰动,以防止模型过拟合。
并且经过实验,如果我们不加入随机噪声,那么扩散模型是无法生成图片的;只有加入随机噪声,才能正常生成图片。
如下图,不加入随机噪声时(即时),无法生成正常的图片
-
2. 总结
应该说,经过了前面几篇文章的铺垫,理解扩散模型的推理过程是不难的。
至此,扩散模型的理论部分已经分享完毕。
在下篇文章中,我会尝试用Python实现扩散模型。
分类:
深度学习 / 扩散模型
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?