扩散模型是一种概率模型,通过逐步去噪一个正态分布变量来学习数据分布p(x),对应于学习长度为t的固定马尔可夫链的反向过程。模型可以通过训练去噪自编码器来实现(T = 1…T),它们被训练来预测其输入的去噪变体,而是输入的噪声版本,其训练函数:
扩散模型原理方面,包括:前向的加噪和逆向的去噪;
前向的加噪:给定初始数据(比如图像),一步一步加噪得到、、···、、、···、,最后的完全是一个正太分布噪音数据。其中,每一步的加噪,不妨记为 分布表示;对应地,实际的去噪分布记为 ;
逆向的去噪(生成):一步一步去噪,得到、···、、、···、、,不妨记为 分布表示;
事实上,扩散模型的训练就是用网络(待学习参数为)预测所加的噪音变量分布。用KL散度衡量实际的去噪分布 和由网络学习的去噪分布:即。经一系列推导化简、等价为 。这里的是高斯噪声,预测网络以含噪图片作为输入,预测所添加的噪声。
即可以理解为,扩散模型的训练目标是,希望预测的噪声和真实噪声一致。
我们来测试一下当前diffusion里最著名的 stable diffusion,它的文本生成图像能力。
并且输入的文本不包含任何限制或修饰,完全把想象空间交给模型!
注意,加入更多的修饰词,应该效果会好些。
猜您喜欢:
最新最全100篇汇总!生成扩散模型Diffusion Models
附下载 |《TensorFlow 2.0 深度学习算法实战》