扩散模型

发布时间 2024-01-11 19:43:54作者: 诸葛村夫CC

该模型是学习从噪音中如何去除噪音生成一个他已经学会的图片,所以一开始输入模型的是噪音,但是经过一次处理效果不会非常好,所以要循环迭代很多次,得到最终生成结果。

模型预测的实际上是噪音,也就是说要将输入图片减去模型预测的噪音,得到生成结果。

 这里没有讲的太细,我的理解是神经网络需要的输入是正态分布的噪声采样,而去噪一次之后就不是正态分布了,所以需要再加上一点噪音。而从经验上讲,这么做可以稳定神经网络的结果

上图注意字幕挡住的图片,左边就是提到的平均外观

 

扩散实际上是一种思想,一种训练策略,视频中具体实现扩散的模型是Unet

用Unet的一个好处就是在上采样的过程中,可以把一些你想让模型知道的信息嵌入进去,通过embedding,例如time 、noise level、context(控制模型生成的内容)

 

具体的训练过程:首先你的数据集是一些高质量的图片,然后你给这个图片添加一个噪音,输入网络,网络要预测的是你添加的这个噪音。注意,由于噪音是你添加的,所以是可以算损失的。

在训练时,虽然可以通过时间和采样给出不同的噪音水平,但在实际训练中,我们不能对着同一个反复图片操作,要给模型看到更多的这一类的图片,这样才能使得训练结果稳定和均匀。