采样-ddpm

神经网络尝试在每一步都完整预测噪点

对于预测到的噪点,我们使用原有的噪点图减去预测的噪点图,就会获得一个稍微清晰一点的图片。但是它并没有完全去除所有的噪点,所以需要很多步迭代才能获得较高质量的采样。

但是这种的神经网络需要类似这种正态分布的噪点样本作为输入,所以在每一次迭代需要加入额外的噪点。这样有利于稳定神经网络算法来区分接近数据集的平均值的样本。意思是,如果不加相应的噪点,nn只会生成相似的样本。

diffusion model的nn被称为UNet

UNet可以嵌入更多的信息,包括时间信息,上下文信息。

训练

对样本加个噪点,然后让nn去算,然后相减,计算出loss,然后反向传播

为了让训练更加稳定,对每个样本选择随机的时间信息(迭代次数)。

控制样本

通过嵌入上下文来控制训练模型。

比如你有一张牛油果的图片,然后有一句话”一颗成熟的牛油果“,然后你可以将加噪点的图片和这句话一同放入nn进行训练。

此时你有一个椅子的模型,就可以预测一个牛油果椅子。

上下文是一个可以控制生成的向量,可以是一句话,也可以是几个简短的关键字。

加速采样–ddim

传统的采样需要很多时间步长(timestep)

denoising diffusion implicit models

ddim可以跳过时间步长,因为它打破了马尔卡夫假设。

它的本质是预测一个最终输出的粗略草图,然后通过去噪过程对其进行优化。