生成扩散模型漫谈:统一扩散模型(应用篇)

生成扩散模型漫谈:统一扩散模型(应用篇)_第1张图片

©PaperWeekly 原创 · 作者 | 苏剑林

单位 | 追一科技

研究方向 | NLP、神经网络

在《生成扩散模型漫谈:统一扩散模型(理论篇)》中,笔者自称构建了一个统一的模型框架(Unified Diffusion Model,UDM),它允许更一般的扩散方式和数据类型。那么 UDM 框架究竟能否实现如期目的呢?本文先回顾 DUM 框架的一般流程,然后通过一些具体例子来演示其一般性。

326f658807adfe536a60aee9ceb80929.png

框架回顾

首先,UDM 通过选择噪声分布 和变换 来构建前向过程

06a183b2dddd090f7ec2c35624784369.png

然后,通过如下的分解来实现反向过程 的采样

5264edc4b807d109a948f3e40ef1b3dd.png

其中 就是用 预估 的概率,一般用简单分布 来近似建模,训练目标基本上就是 或其简单变体。当 是连续型数据时, 一般就取条件正态分布;当 是离散型数据时, 可以选择自回归模型或者非自回归模型。

至于 的最基准的选择就是

1710a34e37ebed1c9893eae40423e0d5.png

从这个基准出发,在不同的条件下可以得到不同的优化结果。当 关于 是可逆的,那么可以解出 ,然后得到更好的确定性采样方式

0c35eb36be12096b6fe6e69b4925da8a.png

更进一步,如果 是标准正态分布,那么可以得到

a4d0985d9b210b8119ff300123e2fd8d.png

5a8cc595a1cef4ed2a105c1337704221.png

热之扩散

现在这一节中,我们证明“热扩散模型”是 UDM 的一个特例,这里的热扩散(Hot Diffusion)指的是前面介绍的 DDPM、DDIM 等主流的扩散模型,这个称呼出自下面的“冷扩散”论文中。

主流扩散模型处理的是连续型数据,以加性正态噪声来构建前向过程:

d32fcd00fa06d5f212f3f24905dfb1bc.png

的选择就是正态分布 ,一般不将 作为训练参数,所以略去常数项后就有

b2fc68158941a5f82f28ba3c4ee4867e.png

进一步引入参数化 并结合 得到

a25da1a66cfda0cbe835de133a74cc92.png

实验显示略去前面的系数后效果更好,所以最终训练目标一般是 。至于采样过程中 的选择,可以参考《生成扩散模型漫谈(七):最优扩散方差估计(上)》、《生成扩散模型漫谈(八):最优扩散方差估计(下)》来进行。

最后,关于 我们有

2d368649bd9f072e333aead633f73018.png

从 解得 ,替换掉 ,最终可以得到一般的 为

296d623cb31fc6396a81b7a61e72b4fd.png

而 意味着

bcff4f3363c5f1922ca6b282a522b19b.png

上面两式结合,就是最一般的主流扩散模型框架的反向过程,其中 DDPM 取了 ,DDIM 则取了 ,而 Analytical-DPM 则重新估计了最优的非零的 。

479beb9fa3b313e8750715da10ceee31.png

冷之扩散

接下来,我们证明《Cold Diffusion: Inverting Arbitrary Image Transforms Without Noise》[1] 所介绍的“冷扩散(Cold Diffusion)”也是 UDM 的一个特例。Cold Diffusion 处理的也是连续型数据,从论文标题可以看出,它着重于使用任意(无噪声的)变换来构建前向过程,据笔者所知,这是第一篇尝试一般前向过程的论文,UDM 在构建过程中,受到了它的颇多启发,在此对原作者表示感谢。

Cold Diffusion通过确定性的变换 构建前向过程,为了方便后面的分析,我们引入更一般的前向过程

91aab8099869a992d14ccf29f1aac935.png

这里的变换 可以是对原始数据的任意破坏方式,对于图像来说有模糊、遮掩、池化等,如果需要确定性的变换,事后让 即可。

接着, 的选择为 范数为度量的正态分布,即

bc5290b7b948a39dab440c8b65613a01.png

其中 是对应的归一化因子。取 为固定值,那么除去常数项后有 ,结合 ,得到训练目标为最小化

e412e32243e057bdcfd47c5788dcf563.png

在反向过程中,Cold Diffusion直接忽略了 的方差(即让 ),这样得到 。如果 直接取基准选择 ,即 ,那么代入 并取 的极限后就得到

b3b75272eda7bd3534031ef5acef95b1.png

这就是原论文的“Naive Sampling”。而如果从 解出 后,代入 中就得到

9a27343a61de275c43a99b51885d9790.png

这就是原论文的“Improved Sampling”。

总的来说,Cold Diffusion 首次成功实现了一般变换的前向过程的实现,但由于它过于强调“Without Noise”,所以它理论上有着无法弥补的缺陷。比如,对于 的图片数据,Cold Diffusion 在用模糊操作实现前向过程时,最终结果就相当于一个 3 维向量,而 Cold Diffusion 的反向过程也是确定性的,所以就是说 Cold Diffusion 通过一个确定性的变换,将 维的图片变成了 3 维,然后又通过确定性的变换,将 3 维重建为 维的图片,其中间过程必然有着严重的信息损失的,这必然会限制重建的清晰度,从而也限制了生成的清晰度。

要解决这个问题,就不能在前向或者反向过程中拒绝噪声的存在。因为噪声意味着不确定性,不确定性意味着“一对多”,“一对多”意味着允许“多对一”的前向过程,即允许信息损失的出现。事实上,Cold Diffusion 本身就已经意识到 3 维的向量难以生成 维的完整数据这个事实了,它在生成过程中,事实上还往这个 3 维向量加入了 维的轻微随机噪声,实验显示这个操作提高了生成效果。而这个操作大致上就相当于 的前向过程了。

88db4756ad0677ed4dbbf9a2ae518d57.png

编辑模型

以上两个例子处理的都是连续型数据,而我们说过,UDM 原则上不限定数据类型,这一节我们介绍一个离散型的例子,它显示基于编辑操作的文本生成模型,本质上也可以看成 UDM 的特例。

简单起见,我们考虑长度为 的定长句子生成,比如五言律诗、七言绝句等,变长句子不是不可以,而是细节上稍微复杂些。然后,我们将前向过程 定义为“随机替换”,即

随机选句子中的 t 个 token 随机替换为别的 token

其中 时,当 时,此时 就是 个完全随机组合的 token。

此时 就是用随机替换后的序列来预测原序列的模型,用自回归/非自回归模型均可,损失函数用交叉熵。注意此时 关于噪声必然是不可逆的(即给定 和 ,从 变到 的方式不止有一种),因此我们只能用基准选择 ,这意味着生成过程是:

1、随机选 个 token 作为初始的 ;

2、从 预测 ;

3、随机选 的 个 token 随机替换为别的 token,作为 ;

4、反复执行 2、3 步,直到得出最终的 。

但是,这样的算法效果不会很好,因为第2步的预估成果往往会被第 3 步的随机替换“毁”掉不少,有点“一夜回到解放前”的感觉,要想提高效果,就必须要用更好的采样方案,这要求 关于噪声可逆,也就是从给定的 和 可以看出变换方式是怎样的。为此,我们规定前向过程为:

随机选句子中的 t 个 token 随机替换为不同的 token

它跟原来的区别是随机替换的过程中,原来的 token 必须替换为原来不一样的 token,如果不做这个选择,则有可能采样到一样的 token。做了这个限制后,我们可以直接对比 和 的差异,来看出修改了什么,从而将第 3 步的随机替换,换成由 到 的替换变换:

1、随机选 个 token 作为初始的 ;

2、从 预测 ,要求 与 有 个不同 token(用非自回归模型比较好实现);

3、随机选 中与 不同的 token 中的一个,替换为 对应位置的 token,作为 ;

4、反复执行 2、3 步,直到得出最终的 。

这样一来,每次的预测结果 的有效部分( 与 相同的部分)都得以保留,并且 与 相比只修改了一个 token,因此生成过程是渐进式的稳定生成。它跟普通的自回归模型区别则是去掉了从左往右的生成方向限制。

5056244630f15518e8f5286e49e66e01.png

掩码模型

如果读者对上述模型还是很模糊,这里笔者再提供一个简单例子辅助理解。同样考虑长度为 的定长句子生成,我们将前向过程 定义为“随机掩码”,即

随机选句子中的 t 个 token 随机替换为 [MASK]

其中 时,当 时,此时 就是 个 [MASK]。

此时 就是用带 [MASK] 的序列来预测原序列的模型,用一般用类似 BERT 的 MLM 模型(非自回归模型)来实现,损失函数用交叉熵。基准的生成过程是 生成过程是:

1、以 个 [MASK] 作为初始的 ;

2、从 采样 ;

3、随机选 的 个 token 随机替换为 [MASK],作为 ;

4、反复执行2、3步,直到得出最终的 。

注意到,此时 关于噪声是可逆的,即我们完全可以从给定的 和 可以看出变换方式是怎样的(即哪些 token 被替换为了 [MASK])。因此可以构造改进版生成过程

1、以 个 [MASK] 作为初始的 ;

2、从 采样 ,注意只需采样那些原来是 [MASK] 的 token,原来非 [MASK] 的不做改变;

3、从原来 的 个 [MASK] 所在位置中随机选 个,将 的这些位置的 token 替换为 [MASK],作为 ;

4、反复执行 2、3 步,直到得出最终的 。

当然,其实第 2、3 步可以合并为更直接的一步:

2 & 3、从 的 个 [MASK] 所在位置中随机选 1 个,按 对应位置的概率采样一个 token 替换上去,作为 ;

这跟基于 MLM 模型的 Gibbs 采样几乎一致了(参考《【搜出来的文本】⋅(三)基于BERT的文本采样》)。从“编辑模型”和“掩码模型”两个例子我们应该可以大致体会到,很多“渐变式生成”的模型,都可以用 UDM 框架来重新表述。又或者反过来,我们能想到的任何渐变式生成方式,都可以尝试用 UDM 框架来构建其概率表述。

cddd44f75691b895242f51106744a856.png

编码模型

前面我们所讨论的前向过程都是无训练参数的,也就是说都是事先设计好的流程,但这其实也并不是必要的。我们可以将 DDPM 的扩散过程一般化为

b593dee22ddafd2c32f954a0d91df0e5.png

其中 是对 的编码模型,可以带训练参数。此时训练目标就是

eb2f0cae852356710b4b77e1158d0b17.png

只不过此时 也有训练参数。至于反向过程也是类似的,只不过最后采样到 就直接返回 了。特别地,由于多了一个编码模型 ,所以输入 既可以是离散型数据,也可以是连续型数据,它提供了类似 VAE 的将数据分布编码到隐变量的正态分布的一种方法。

4a5c5716fef82a5c34004a138b9aa2f1.png

文章小结

本文主要应用上一篇文章所构建的统一扩散模型框架(Unified Diffusion Model,UDM)来推导几个具体的例子,包括主流的扩散模型、Cold Diffusion、文本编辑生成、编码模型等。

outside_default.png

参考文献

outside_default.png

[1] https://arxiv.org/abs/2208.09392

更多阅读

生成扩散模型漫谈:统一扩散模型(应用篇)_第2张图片

生成扩散模型漫谈:统一扩散模型(应用篇)_第3张图片

生成扩散模型漫谈:统一扩散模型(应用篇)_第4张图片

d61e093154620cf46c68b80c283d905a.gif

#投 稿 通 道#

 让你的文字被更多人看到 

如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。

总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 

PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。

 稿件基本要求:

• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注 

• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题

• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算

 投稿通道:

• 投稿邮箱:[email protected] 

• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者

• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿

生成扩散模型漫谈:统一扩散模型(应用篇)_第5张图片

△长按添加PaperWeekly小编

现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧

·

3706dd37b526cedf4f92004ca895019a.jpeg

你可能感兴趣的:(生成扩散模型漫谈:统一扩散模型(应用篇))