score-based model论文解读

score-based model介绍

参考视频:[B站score-based model讲解](https://www.bilibili.com/video/BV1VP411u71p/)
论文原文:[Generative Modeling by Estimating Gradients of the Data Distribution](https://arxiv.org/abs/1907.05600)

摘要:

本文提出了一个全新的生成模型,不是直接学习数据的分布,而是通过预测数据分布的对数梯度(即score分数)来构建一个生成模型。score-based model的核心是如何估计score,并且求得score如何进行图片生成。

相关工作:

(1)likelihood-based models:

  • 直接对数据分布进行拟合(给定一张图片,要求输出图片和这张图片完全一样)
  • 举例:VAE
  • 缺点:对于网络结构的设计有很大限制

(2)implicit generative models:

  • 间接对数据分布进行拟合(输出的图片,经过判别,应该落在目标分布内)
  • 举例:GANs
  • 缺点:需要对抗学习,不好训练,容易崩塌

本文提出了一种新的生成模型,即score-based model。首先通过score-matching来估计数据的对数梯度(即score),然后使用基于退火的朗之万动力学的方法来进行采样,进行数据生成。由于在数据分布比较稀疏的低密度区域,对score的估计不是很准确,作者提出了使用不同强度的高斯噪声对真实数据分布进行扰动,从而提高score估计的准确性。在采样时,作者提出了一种退火的朗之万动力学采样方法,加入强度不断递减的噪声扰动,最终逼近真实的数据分布。
在这里插入图片描述

方法

在这里插入图片描述
下图展示了数据分布的密度,越亮的地方数据密度越高,score是一种梯度,即图中箭头所指的方向。
在这里插入图片描述
求得score之后,如何进行采样生成
在这里插入图片描述
注意其中 Z i Zi Zi是一个随机噪声,score-based model的采样过程是存在随机性的。
在低数据密度区域,模型 S θ ( x ) S\theta(x) (x) 对于 score 的估计是不准的。而且不幸的是,在整个空间中,高数据密度区域一定是稀疏的。也就是说,刚开始我们随机一个起始位置,几乎必定是落在低数据密度区域的。那么我们采样初期的几步,几乎就是乱走的,而初期乱走,由于高数据密度区域的稀疏性,基本就不可能走到高数据密度区域了,就会一直在低数据密度区域打转。
未加入噪声扰动
上图为:未加入噪声扰动;为了解决这个问题,使得模型在采样初期,在低数据密度区域,也能够相对较准地估计 score,作者提出对真实数据分布加噪声扰动。在加入噪声扰动之后,数据分布密度较高的位置就会大很多,从而使得模型在前期随机选择的位置,也能够对 score 有较准地估计。极端情况下,如果加的噪声足够大,整个分布几乎成了高斯分布,此时 score 甚至是可以解析的,那么我们当然能准确地求出 score。
在这里插入图片描述
上图为:加u人噪声扰动;然而,加入噪声之后,分布还是我们想要的真实数据分布吗?当然不是,如果加入过强的噪声,最终采样出来的也就是一个噪声了。

这里我们就面临一个两难的问题:如果不加噪声,虽然数据分布是真实的,但对 score 的估计不准,造成我们在低密度数据区域乱转;而如果加入噪声过强,虽然对噪声的估计准了,但最终采样不到我们想要的数据分布。因此,我们需要在准确估计 score 和维持原始分布之间进行权衡。

其实权衡思路也很明确,在采样初期,一定落在低密度区域,score 估计极其不准,这时需要加高强度的噪声扰动,使我们能大致按照正确的方向走,而到了采样的后期,我们已经来到中高密度数据区域,此时就要加较小的噪声扰动,使得我们最终能够采样到真实的数据分布附近。

最终,作者提出了如下退火朗之万动力学的采样算法。在该采样算法中,有两个循环,其中外层循环 i 遍历从1到 L,表示不同的噪声级别,级别越高,噪声强度越小;而内层循环 t 从1到 T,表示该噪声强度下采样的时间步,总的步数就是 L * T。特别的,如果 T = 1,即在每个噪声强度只采样一步,就类似DDPM。
在这里插入图片描述
由以上可知,求得 score 之后如何进行采样生成。即通过在采样不同阶段添加不同程度的噪声扰动,权衡 score 估计的准确性和数据分布的真实性,依据退火的朗之万动力学采样方法,一步一步逼近真实数据的分布。

如何求score?
求 score 的方法就是之前提到的 score-matching,套用DDPM的噪声假设,和 score-based model 原文的表示略有出入:
在这里插入图片描述
该多元高斯分布的分布函数为:
在这里插入图片描述
带入score得:
在这里插入图片描述
可以看到,我们要估计的 score,与噪声实际就差了一个系数。所以说,估计噪声,就相当于估计 score,也就是估计数据分布的对数梯度。DDPM、score-based model 这类扩散模型实际上都是去训练一个去噪网络。

总结:

  • 本文回答了为什么要在DDPM中加噪:本文的解答是为了更准确的估计score。
  • 本文是DDPM的一种更加直观的解释。本文估计噪声=估计score=估计目标分布的梯度。通过这种梯度,逐步采样到目标分布。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值