- 先看看它干了啥,然后如果能应用到我的研究领域就好了。
- 生成,确实很火热的话题啊。还是转到这个方向好的哟。
http://t.csdnimg.cn/tQjQn这篇介绍挺好的
现在的几个问题:
(1)逆扩散为什么是未知的?
在原本p(x_{t-1}|x_t)中,计算过程用到了x0,但是x0是未知的(本身就是模型要求解生成的),用这个公式逆向就得到了x0的值,但是这个结果并不准确(是一个估计值。。。这里只能这样解释吧),但是其实这个噪声是可以保存的呀,不是分布,而是采样结果,那为什么又说不行?
它这段话固然解释了一些,但是问题是,那你直接用扩散过程的那个噪声就行啊,这个结果是可以保存下来的呀,不对,扩散过程的噪声是不知道的,因为是直接从x0一步到位x_t,但你现在推的是x_t到x_{t-1}。
那就是李宏毅老师的讲法了,逆过程求噪声之所以有效,是把1步转成了N步,不断迭代修正的。
(2)这个计算到底怎么实现的?
解释:它的意思是从x0得到了x_t(带根号的那串),然后我模型直接预测这个过程的噪声是多少。因为加了多少噪声是已知的(第4步)。推导公式的时候考虑的是要得到谁,但是算法和代码实现是一步到位的。
必须承认,这里我不会的根源还是在于,损失函数是怎么得来的。那一大串的KL散度推导实在是把我整蒙了,完全没明白。。。再说吧,还是得搞懂的,但暂时先往前推进吧
(3)在我看来,它就是预测了一个均值,为什么能得到一张图像的分布呢?难道每个像素点都是独立同分布的高斯吗?
(4)如果训练过程的开始,是一张随机初始化的噪声(图片),那么它为什么不直接搞前向传播出来的那张图作为初始呢?
解释1:就是前向传播出来的那张图作为初始的呀,是你理解错了算法1吧。它把原图加t步噪声的结果以及步长t作为模型的输入,输出是预测加的噪声长什么样。
解释2:但是推理的时候,是没有真实图片(让你前向加噪的),所以只能是一张随机噪声了。即算法2里面的x_t从标准高斯分布采样。
(5)测试过程(算法2)的解读?
【扩散模型 - Diffusion Model【李宏毅2023】】 https://www.bilibili.com/video/BV14c411J7f2/?p=3&share_source=copy_web&vd_source=297ebe5cc5e73d20786e36a6e64792b6