本文经AI新媒体量子位(公众号ID:QbitAI)授权转载,转载请联系出处。由于其生成图像的能力可与GAN相媲美,扩散模型最近成为AI社区关注的焦点。谷歌和OpenAI在过去的一年里都提出了自己的扩散模型,结果也很惊人。另一方面,剑桥大学学者DavidKrueger提出自动编码器是否卷土重来将成为研究热潮。就在最近,DeepMind的研究科学家SanderDieleman基于以上两个热潮提出了自己的观点:扩散模型是自编码器!这一观点立即引起了众多网友的关注。大家看了Sander的讲解后,都觉得很有道理,给了大家很大的启发。那么他是如何证明自己的观点的呢?让我们来看看。Denoisingautoencoder=diffusionmodel要看透两者之间的联系,首先要看各自的特点。扩散建模是一种新的图像生成方法,其名称中的“扩散”本质上是一个迭代过程。它于2015年首次提出,它定义了一个马尔可夫链,用于在扩散步骤中向数据缓慢添加随机噪声,然后通过学习反转扩散过程从噪声中构建所需的数据样本。与GAN、VAE和基于流的生成模型相比,扩散模型具有不错的性能权衡,并且最近被证明具有巨大的图像生成潜力,尤其是在与保真度和多样性的指导相结合时。例如谷歌去年提出的级联(Cacade)扩散模型SR3,以低分辨率图像作为输入,从纯噪声中构造出相应的高分辨率图像。OpenAI的GLIDE和ADM-G也使用扩散模型来生成更真实、多样和复杂的图像。△GLIDE模型效果接下来我们看一下autoencoder的原理。自动编码器可以理解为试图恢复原始输入的系统。该模型如下:其主要目的是将输入转化为中间变量,再将中间变量转化为输出,最后比较输入和输出,使两者无限接近。当模型框架存在瓶颈层或输入被破坏时,自动编码器可以学习到输入的本质特征,并大显身手。在这里,作者主要将其与扩散模型进行比较,即去噪自编码器。它可以将损坏的数据作为输入并训练以预测未损坏的原始数据作为输出。这看起来很熟悉吗?向输入添加噪声不是破坏输入的一种方式吗?那么,denoisingautoencoders和diffusionmodels不是原理上是一样的吗?两者如何等价?为了验证自己的想法,作者从原理的角度对扩散模型进行了拆解。扩散模型的关键是得分函数。请注意,这与.(求梯度的参数不同)通过后者可以知道如何改变模型参数来增加向下输入的可能性,而前者可以让我们知道如何改变输入本身来增加可能性。在训练期间,希望在去噪的每个点都使用相同的网络。为实现这一点,需要引入额外的输入,从而可以查看去噪的去向。当t=0时,对应无噪声数据;当t=1时,对应纯噪声数据。训练该网络的方法是通过添加噪声来破坏输入x。然后从中预测。需要注意的是,这里方差的大小取决于t,因为它可以对应到特定点的噪声水平。损失函数通常使用均方误差(MSE),有时由λ(t)加权,因此某些噪声水平优先于其他噪声水平:假设λ(t)=1,关键观察值是x(两者等价),这里可以使用公式:为了保证它们是等价的,可以考虑使用训练模型进行预测,并添加新的残差连接。输入到输出的比例因子为-1,实现了这个调整后的模型:扩散模型逐渐变成了去噪自编码器!OneMoreThing然而,博客作者也强调,虽然扩散模型和去噪自编码器的效果是等价的,但两者并不是完全可以互换的。而上面得到的去噪自编码器也不同于传统类型:首先,额外的输入t允许单个模型使用一组通用参数来处理不同的噪声水平;第二,因为它更注重模型的输出,所以里面没有瓶颈层,会导致“弊大于利”的结果。作者想强调的是两者之间的联系。此外,他还表示,一个好的模型的关键应该是共享参数,这在表示学习中得到了广泛的应用。从这些结果中也可以发现一个规律:噪声含量较高的模型往往更容易学习到图像的特征;噪声含量较低的模型将更注重细节。作者认为上述规律值得进一步研究:这意味着随着噪声水平逐渐降低,扩散模型可以补充越来越多的图像细节。最后,让我们介绍一下这个发现的作者——SanderDieleman。他现在是DeepMind的研究科学家,主要研究领域是生成模型和音乐合成。涉及的主要研究工作是Spotify音乐平台的内容推荐模型。
