数学原理的意义
在第一眼看到Stable Diffusion Web UI界面的时候,是不是被满屏的参数设置搞蒙了,反正无脑拷贝教程上的设置就好,不过一旦想自己生成一些有创意的图片或自己训练一个模型好像就玩不转了,还是得研究那些参数啊。如果你恰好学过随机过程、线性代数辣么这里用到的数学原理不会太难理解,没学过问题也不大,跳过公式直接看中文也OK。只会调参的算法工程师不是一个合格的调包侠,哈哈~ 我们不仅要知其然还要知其所以然。OK, Let’s GO!(文字版请移步:Stable Diffusion从原理到应用-数学原理)
从扩散说起
如上图所示扩散模型核心就两个过程:前向扩散过程和反向扩散过程。
前向扩散过程
如何训练
训练过程
损失函数
总结
参考文献
- Introduction to Diffusion Models for Machine Learning (assemblyai.com)
- DDPM: 2006.11239.pdf (arxiv.org)
- 由浅入深了解Diffusion Model - 知乎 (zhihu.com)
- 原理+代码:Diffusion Model 直观理解 - 知乎 (zhihu.com)
- 轻松学习扩散模型(diffusion model),被巨怪踩过的脑袋也能懂——原理详解+pytorch代码详解(附全部代码) - 知乎 (zhihu.com)
- Diffusion Model pytorch源码:https://github.com/lucidrains/denoising-diffusion-pytorch