扩散模型是什么?又是如何工作的?

文摘   教育   2024-01-06 16:09   湖南  

点击上方蓝字

 

关注Anber













人工智能正在不断发展,并被用来解决困难和复杂的问题。而图像生成是人工智能模型面临的一个巨大挑战。

GANs、VAEs和Flow Models虽然效果不错,但很难生成高分辨率、高保真的图像。

但是扩散模型却非常擅长生成各种质量的高分辨率图像,且精度很高。现在,它们正处于生成式AI(GenAI)的革命前沿。

像GLIDE、OpenAI的DALL.E-3、谷歌的Imagen和Stable Diffusion等模型都是一些流行的扩散模型,接下来让我们了解一下扩散模型。







什么是扩散模型?






扩散模型是一类生成式 AI 模型,可生成不同质量的高分辨率图像。

它们的工作原理是在正向扩散过程中逐渐将高斯噪声添加到原始数据中,然后在反向扩散过程中学习去除噪声。

它们是隐变量模型,指的是隐藏的连续特征空间,看起来类似于VAE(变分自动编码器),并且大致基于非平衡热力学。


扩散模型







扩散模型论文分享






本文是对扩散模型的非常简短的介绍,对扩散模型及其工作原理进行了基本的讲解。

如果大家想详细了解扩散模型,建议大家自行阅读扩散模型论文。



为了避免添加人数过多出现频繁,大家可以随便添加一个小助手,让她发给你


   







现有模型的问题
 





现有的深度学习模型,如GANs和VAEs,在生成图像方面表现良好,但它们也面临一些问题。

比如GANs的对抗训练性质,它们仍然在训练不稳定和生成多样化的图像问题上有诸多难题。VAEs中的替代损失也会引发问题。







让我们详细了解扩散模型






去噪扩散建模分为两步:

    • 前向扩散过程 — 前向扩散过程是扩散步骤的马尔可夫链,在这个过程中,我们缓慢而随机地向原始数据添加噪声。


    • 反向扩散过程 — 反向扩散过程尝试反向扩散过程,以从噪声中生成原始数据。







    正向扩散过程






    在正向扩散过程中,我们通过一系列T步,缓慢而逐渐地向输入图像x₀添加高斯噪声。

    我们从从真实数据分布q(x)中采样一个数据点x₀开始,然后向xₜ₋₁添加一些方差为βₜ的高斯噪声,产生一个新的潜在变量xₜ,其分布为q(xₜ∣xₜ₋₁)。

    正向扩散过程


    正向扩散过程


    q(xₜ∣xₜ₋₁)由均值μ定义



    ∑=FYI,I是单位矩阵,并且总是方差的对角矩阵。

    当T接近∞时,x_{T}成为各向同性的高斯分布。∑ₜβₜIΣ。







    重新参数化技巧






    应用 q(xt | xt₋₁) 并计算任意时间步长的 xt 对于大量步骤来说可能会非常昂贵。重新参数化技巧解决了这个问题,并允许我们从以下分布中以任意时间步长对 xt 进行采样:


    参数化后技巧

        






    逆向扩散过程






    这是通过逆向应用正向传播中的噪声过程来训练神经网络以恢复原始数据的过程。估计 q(xt−1∣xt) 是困难的,因为它可能需要整个数据集。

    这就是为什么可以使用参数化模型 pθ(神经网络)来学习参数的原因。对于足够小的 βt,它将是一个高斯分布,并且可以通过参数化均值和方差来获得。


    反向扩散过程


    反向扩散过程







    扩散模型论文分享






    本文是对扩散模型的非常简短的介绍,对扩散模型及其工作原理进行了基本的讲解。

    如果大家想详细了解扩散模型,建议大家自行阅读扩散模型论文。



    为了避免添加人数过多出现频繁,大家可以随便添加一个小助手,让她发给你


       


    — 完 —
    如果喜欢本篇的内容记得点点再看,并把他转发到你的朋友圈。请永远不要停止学习,这是你武装自己对抗这个世界最有力的武器!

    认真传播知识的科研人

    关注公众号

    获取人工智能技能+干货

    Abner说Ai
    一个认真传播知识的技术人,日常分享人工智能学习方法+技术文章,希望大家喜欢。
     最新文章