为什么扩散diffution模型如此强大? - Reddit


可以在这里看到200行代码,但它背后的数学是如此简单,这算法智能且简单,但它的生成结果似乎比 GAN 更令人难以置信,而且它的速度很快,模型大小也不算大。
案例: https://openai.com/dall-e-2/

部分原因在于其逐渐添加/去除噪声的性质,而不是像 GAN、VAE 或流那样必须一次生成整张图片。
当数据真的很嘈杂时,它不能正确地去噪所有的细节,所以它只学习大规模的结构。当数据的噪声较小(t 较小)时,它可以担心生成精细的细节而不关注结构的连贯性,因为此时图像的结构已经创建。
它就像画肖像 :你首先画出头部形状,然后添加眼睛鼻子和嘴巴,然后是睫毛和头发等等。第一次就很难做到,这就是为什么像 DDPM 或 AR 模型这样的多步模型总是更强大的原因。
它比 AR 模型(至少对于图像)更好的部分原因是它们不会引入归纳偏差,例如从左上角生成。此外,它可以在每一步自由更改整个图像,这与之前的条目在生成后都固定不变的 AR 模型不同,您只需在数据中添加一个新条目。
回到肖像示例,假设您开始绘制某人的脸,但在绘制他们的左眼时搞砸了。使用 AR 建模,您不能只是返回并擦除左眼,您所能做的就是绘制人脸的右下部分。
至于第2点:一篇论文解释了如何在分类数据(文本)上使用扩散模型。还有一篇更新的论文与扩散模型(使用逐渐去噪)类似,效果很好。