生成扩散模型漫谈:DDPM = 自回归式VAE

74ea5eab140b0552bfcc1ec5d47eed28.gif

©PaperWeekly 原创 · 作者 | 苏剑林

单位 | 追一科技

研究方向 | NLP、神经网络

在文章《生成扩散模型漫谈:DDPM = 拆楼 + 建楼》中,我们为生成扩散模型 DDPM 构建了“拆楼-建楼”的通俗类比,并且借助该类比完整地推导了生成扩散模型 DDPM 的理论形式。在该文章中,我们还指出 DDPM 本质上已经不是传统的扩散模型了,它更多的是一个变分自编码器 VAE,实际上 DDPM 的原论文中也是将它按照 VAE 的思路进行推导的。

所以,本文就从 VAE 的角度来重新介绍一版 DDPM,同时分享一下自己的 Keras 实现代码和实践经验。

6812783d811550049a5408ff70e8ce1e.png

多步突破

在传统的 VAE 中,编码过程和生成过程都是一步到位的:

492c8bd3858865a8006eb8cd418a13e5.png

这样做就只涉及到三个分布:编码分布 、生成分布 以及先验分布 ,它的好处是形式比较简单, 与 之间的映射关系也比较确定,因此可以同时得到编码模型和生成模型,实现隐变量编辑等需求;但是它的缺点也很明显,因为我们建模概率分布的能力有限,这三个分布都只能建模为正态分布,这限制了模型的表达能力,最终通常得到偏模糊的生成结果。

为了突破这个限制,DDPM 将编码过程和生成过程分解为 步:

fc2ec9fe6c7272d386488ca2451cee3e.png

这样一来,每一个 和 仅仅负责建模一个微小变化,它们依然建模为正态分布。可能读着就想问了:那既然同样是正态分布,为什么分解为多步会比单步要好?这是因为对于微小变化来说,可以用正态分布足够近似地建模,类似于曲线在小范围内可以用直线近似,多步分解就有点像用分段线性函数拟合复杂曲线,因此理论上可以突破传统单步 VAE 的拟合能力限制。

849d5c9fa4edb18cb0e71b360ceda7de.png

联合散度

所以,现在的计划就是通过递归式分解(2)来增强传统 VAE 的能力,每一步编码过程被建模成 ,每一步生成过程则被建模成 ,相应的联合分布就是:

486d8b8e8b33edd7de2ebcfdab2423fa.png

别忘了 代表真实样本,所以 就是数据分布;而 代表着最终的编码,所以 就是先验分布;剩下的 、 就代表着编码、生成的一小步。(提示:经过考虑,这里还是沿用本网站介绍 VAE 一直用的记号习惯,即“编码分布用 、生成分布用 ”,所以这里的 含义跟 DDPM 论文是刚好相反的,望读者知悉。)

在《变分自编码器(二):从贝叶斯观点出发》中笔者就提出,理解 VAE 的最简洁的理论途径,就是将其理解为在最小化联合分布的 KL 散度,对于 DDPM 也是如此,上面我们已经写出了两个联合分布,所以 DDPM 的目的就是最小化

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java安全漫谈是一本关于Java安全的书籍,深入探讨了Java应用程序在网络环境中的安全性和相关的安全漏洞。该书内容涵盖了Java安全基础、Java虚拟机的安全机制、Java安全管理、Java安全开发等方面的知识。 首先,Java安全基础部分介绍了Java安全模型的原理和特点,包括Java类库的安全特性、权限管理和访问控制、安全策略配置等。这部分内容可帮助开发人员了解Java应用程序的安全需求,并提供相应的解决方案。 其次,Java虚拟机的安全机制是Java应用程序的基石。该书介绍了Java虚拟机的安全沙箱和类加载机制,并讨论了如何利用这些安全机制避免恶意代码的执行和隐患的防范。 此外,Java安全管理部分从用户角度出发,介绍了Java应用程序的安全管理工具和技术,如Java安全策略文件、权限管理和安全认证等。开发人员可以通过合理配置和使用这些工具来提高Java应用程序的安全性。 最后,该书还涉及了Java安全开发过程中的一些最佳实践和常见安全漏洞,如输入验证、跨站脚本攻击(XSS)、SQL注入、跨站请求伪造(CSRF)等。通过学习和掌握这些知识,开发人员可以编写出更加安全的Java应用程序。 总而言之,Java安全漫谈是一本全面讨论Java安全的书籍,内容涵盖了Java安全基础、Java虚拟机的安全机制、Java安全管理和Java安全开发等方面的知识。它对于开发人员和安全从业人员来说,都是一本重要的参考书,有助于提高Java应用程序的安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值