003_SSS_ Tackling the Generative Learning Trilemma with Denoising Diffusion GANs
Tackling the Generative Learning Trilemma with Denoising Diffusion GANs
个人笔记Github地址:https://github.com/xuekt98/readed-papers.git
本文提出了一种结合Diffusion和GAN的生成模型, 在CIFAR-10数据集上能够比DDPM快2000倍, 同时与传统的GAN相比, 又可以生成质量相近有具有多样性的结果. 作者指出DiffusionGAN是第一个可以把Diffusion采样步骤降低到可以被应用到实际当中的模型.
1. Introduction
本文提出了一种比较贴切的说法叫做:生成学习的三元悖论(The Generative Learning Trilemma). 现有的各种各样的生成模型都需要满足三个方面的需求:
- 生成的样本的质量要高 high-quality sampling;
- 模态覆盖率要高/多样性 mode coverage/diversity;
- 快速高效的采样 fast and computational inexpensive sampling;
如图所示, 可以直观的看出, 现有的四大类的生成模型:
- GAN可以生成高质量的结果, 同时可以快速采样, 但是生成结果缺乏多样性, 而且GAN网络训练不稳定和模式坍塌也是臭名昭著.
- VAE和Normalizing Flows可以快速采样, 而且生成的结果也有良好的多样性, 但是生成的质量却比较差.
- Diffusion生成的结果质量比较高, 甚至可以超过GAN, 而且结果也有良好的多样性, 但是Diffusion需要几百甚至几千步的采样, 十分缓慢.
2. Background
Diffusion模型, 包括DDPM模型, 都包含了前向过程和反向过程. 而且前向过程和反向过程中间数据的分布都被建模为了高斯分布.
前向过程:
反向过程:
那么, Diffusion模型优化的目标本质上是将前向的真实的去噪过程的数据分布(true denoising distribution)与反向过程参数化之后去噪过程的数据分布(parameterized denoising distribution)对齐:
注意到这里的形式与之前在介绍DDPM的笔记里边的两种形式都不太一样, 主要区别在于q的分布的表示形式. 由于 q(xt∣xt−1)=q(xt−1∣xt)q(xt)q(xt−1)q(x_t | x_{t-1}) = \frac{q(x_{t-1} | x_t)q(x_t)}{q(x_{t-1})}q(xt∣xt−1)=q(xt−1)q(xt−1∣xt)q(xt) , 这三种形式是等价的, 而相比之下, 本文这种表示形式更能体现Diffusion模型的本质. 也就是反向的去噪过程是在模拟前向过程所对应的真实的去噪过程.
Diffusion模型基于两个重要的假设:
- 去噪过程的分布(denoising distribution) pθ(xt−1∣xt)p_{\theta}(x_{t-1} | x_t)pθ(xt−1∣xt) 是高斯分布.
- 去噪过程的步数T是数百或数千这个数量级的.
那么自然有如下两个问题: - 去噪过程的真实分布是高斯分布吗?或者在什么条件下是高斯分布?
- 去噪过程步数多是否与这个高斯分布的假设有关?
3. Denoising Diffusion GANs
3.1 去噪过程的分布
首先来看什么时候真实的去噪过程的分布 q(xt−1∣xt)q(x_{t-1} | x_t)q(xt−1∣xt) 是高斯分布. 根据贝叶斯法则, q(xt−1∣xt)∝q(xt∣xt−1)q(xt−1)q(x_{t-1} | x_t) \varpropto q(x_t | x_{t-1})q(x_{t-1})q(xt−1∣xt)∝q(xt∣xt−1)q(xt−1) 其中前向过程的分布 q(xt∣xt−1)q(x_t | x_{t-1})q(xt∣xt−1) 服从高斯分布. 那么可以证明在如下两种情形下, 真实的去噪过程的分布服从高斯分布的形式:
- 当步长 βt\beta_tβt 无限小的时候, 这时候贝叶斯法则中前向过程的分布 q(xt∣xt−1)q(x_t | x_{t-1})q(xt∣xt−1) 占主导地位, 而不论边缘分布 q(xt)q(x_t)q(xt) 是什么形式, 真实的去噪过程的分布与前向过程的形式相同也是高斯分布的形式. 这也就解释了Diffusion需要大量的采样步的原因.
- 当数据的边缘分布 q(xt)q(x_t)q(xt) 是高斯分布时, 那么真实的去噪分布自然也是高斯分布的形式. 于是一种直观的思路就是先将数据通过VAE编码到高斯分布, 再来利用Diffusion模型.
但是, 当这两个条件都不满足的情况下, 会是什么样呢? 作者指出当两个条件都不满足时, 真实的去噪过程的分布会更加复杂和多模态. 并用一维数据的分布举了个例子:
3.2 Diffusion GANs
为了能在数据的边缘分布不是高斯分布的情况下, 也能减少采样的步数, 这种情况下既然真实的去噪过程的分布 q(xt−1∣xt)q(x_{t-1} | x_t)q(xt−1∣xt) 不再服从高斯分布的形式, 那么将反向过程的分布 pθ(xt−1∣xt)p_{\theta}(x_{t-1} | x_t)pθ(xt−1∣xt) 也不再建模为高斯分布的形式, 而是通过Conditional GAN来使得两个分布对齐, 而不是显式地去学习高斯分布的均值和方差. 这也就是本文的基本思路.
相应的, 优化的目标也就变成了:
那么GAN包括两个部分, 生成器generator GGG 和判别器 discriminator DDD . 那么对于生成器就是 xt−1=G(xt,z,t)x_{t-1} = G(x_t, z, t)xt−1=G(xt,z,t) 其中引入的噪声 z 是为了模型的结果能有良好的多样性.
相应的, GAN的Discriminator也应该与步骤 ttt 有关, 其输入除了数据 xtx_txt 外, 还要包括 ttt .
但是判别器还需要真实的去噪分布的数据, 这个数据怎么得到? 作者在这里进行了简单的转换.
简单的来表述就是, DDPM为代表的Diffusion模型, 反向过程是在其去噪的分布是高斯分布的前提下,利用 xtx_txt 来得到 t−1t-1t−1 的均值和方差, 再来计算得到 xt−1x_{t-1}xt−1 , 而本文的DiffusionGAN则不再有去噪的分布是高斯分布的假设, 利用 xtx_txt 直接通过生成器 G(xt,z,t)G(x_t, z, t)G(xt,z,t) 得到 xt−1x_{t-1}xt−1 .
3.3 一些讨论
一个自然而然的问题就是, 为什么不用一步的GAN而要这样用多步的GAN呢? 这样做相比一步直接得到结果的GAN有什么好处呢? 作者给出了如下解释:
- 传统的一步到位的GAN, 训练不稳定而且容易模式坍塌, GAN的判别器也容易过拟合, 而且直接从高斯分布的噪声一步得到复杂的数据分布本身就是很困难的.
- 相比之下, 将生成的过程拆分成多步的, 每一步对于模型来说相对简单, 因为每一步的生成是在上一步结果 xtx_txt 的条件下生成的. 而且diffusion process中, 数据的分布更平滑, 因为其中加入了不同程度的噪声, 这样可以让判别器不容易过拟合. 这样可以让模型训练起来更稳定, 并且可以得到多样性的结果.
归结起来就是一句话, 多步的GAN比一步的GAN训练更稳定, 而且模态覆盖更充分, 结果多样性更好.
4. 实验部分
作者的一个主要的实验就是在CIFAR-10数据集上比较了不同模型的采样质量(FID和IS); 采样多样性(Recall Score); 采样的时间(NFE和Clock Time)
其他的实验结果可以直接参考原文.
003_SSS_ Tackling the Generative Learning Trilemma with Denoising Diffusion GANs相关推荐
- Denoising Diffusion GAN:Tackling the Generative Learning Trilemma with Denoising Diffusion GANs
Tackling the Generative Learning Trilemma with Denoising Diffusion GANs 用Diffusion GANs解决生成学习的三难困境 p ...
- 论文阅读:Joint Discriminative and Generative Learning for Person Re-identification
pdf: Joint Discriminative and Generative Learning for Person Re-identification github: https://githu ...
- Joint Discriminative and Generative Learning for Person Re-identification 论文翻译
Joint Discriminative and Generative Learning for Person Re-identification 概要 介绍 相关工作 方法 生成模块 自我身份生成(s ...
- [阅读笔记]NBNet: Noise Basis Learning for Image Denoising with Subspace Projection
这篇笔记不讲论文的故事铺垫 直接上模型和方法. 来源:CVPR2021 自然图像(三通道)去噪. 本文工作的创新不在于网络结构的创新,在于一个基生成工作(SSA模块). 主要工作内容: a) 基数生成 ...
- 【ReID】Joint Discriminative and Generative Learning for Person Re-identification
2019年CVPR的著名SOTA,现有方法中的生成模型pipeline与判别式re-id学习阶段保持相对分离,而作者反其道行之,提出了一种端到端地耦合ReID学习和图像生成的学习模型DG-Net.该包 ...
- 2022图像翻译/扩散模型:UNIT-DDPM: UNpaired Image Translation with Denoising Diffusion Probabilistic Models
2022图像翻译/扩散模型:UNIT-DDPM: UNpaired Image Translation with Denoising Diffusion Probabilistic Models. U ...
- DDIM原理及代码(Denoising diffusion implicit models)
前言 之前学习了 DDPM(DDPM原理与代码剖析)和 IDDPM(IDDPM原理和代码剖析), 这次又来学习另一种重要的扩散模型.它的采样速度比DDPM快很多(respacing),扩散过程不依赖马 ...
- DDPM(Denoising Diffusion Probabilistic Models)扩散模型简述
引言 扩散模型最早是在2015年的Deep Unsupervised Learning using Nonequilibrium Thermodynamics文章中提出的,但当时扩散模型并不work, ...
- Denoising Diffusion Probabilistic Model,DDPM阅读笔记——(一)
Denoising Diffusion Probabilistic Model 一.写在前面 二.相关数学知识简介 二.生成模型简介: 三.变分自编码器概述(VAE) 一.写在前面 人工智能生成内容( ...
- 论文阅读 (65):RePaint: Inpainting using Denoising Diffusion Probabilistic Models
文章目录 1 概述 1.1 题目 1.2 代码 1.3 摘要 1.4 Bib 2 去噪扩散修复模型 3 方法 3.1 调整已知区域 3.2 重采样 1 概述 1.1 题目 2022CVPR:用于图 ...
最新文章
- Error: Cannot find module 'babel-runtime/regenerator'
- jboss启动多个实例
- 将html代码转换为dom,将HTML字符转换为DOM节点并动态添加到文档中
- Eclipse WTP 使用入门
- [JDBC] Kettle on MaxCompute 使用指南
- centos7下安装python3.7.0以上版本时报错ModuleNotFoundError: No module named ‘_ctypes‘的解决办法
- java nextgaussian(),java.util.Random.nextGaussian()
- matlab中Cci,【指标量化】超买超卖——CCI 顺势指标
- 图片上传工具 java_图片上传工具类-fileUtil
- 基于matlab 系统仿真学报,基于MATLAB/Simulink的混合动力汽车正向仿真软件的开发...
- vba,选中带有图片连接的单元格时,自动下载图片
- 目的地址和ARP地址应答中的源地址
- js实现外链访问劫持代码 可劫持百度快照
- python中inf_python inf是什么意思
- 漫谈程序员系列:看看你离优秀有多远
- 软考-高项计算1--投资回收周期计算(涉及概念:投资回收期 折现因子 净现值 累计净现值 现金流 累计净现金流)
- SSH Tunnel 使用
- The art of computer programming Donald E. Knuth volumn one third edition读书笔记1
- 算法笔记 揭开广度优先遍历BFS的神秘面纱 HERODING的算法之路
- 2010年软件外包企业排名, 软件外包公司排名2010
热门文章
- 手把手教你操作Tableau——真实公司数据分析项目实例(完整详细,小白也能学会)
- 目标文件夹访问被拒绝,您需要权限来执行此操作
- 陈一舟:以前创业占地就行 现在要做游击队
- python打开word并定位_python自动化办公之 python操作Word
- Unable to partial resync with the slave for lack of backlog (Slave request was: 2595405802583).
- http 阮一峰_WebSocket 教程 | 阮一峰
- 中移物联网2018笔试题
- IP数据报头部信息分析
- 使用Arduino开发ESP32(15):模块基本信息与复位原因获取
- windows压缩卷的操作