本文是对ddpm简单的修改,但是能提高ddpm的性能

论文下载地址:https://proceedings.mlr.press/v139/nichol21a.html

我们发现反向过程中可学习的方差允许一个数量级的采样,样本质量的差异可以忽略不计,这对于模型的实际部署很厉害。

  • 关于变分下界的优化

使用简单的重参数化技巧学习优化变分下界。反向过程的方差使用简单的重参数化技巧和一个混合的目标vlb函数。

这样的变化导致少的采样步数,但是发生了很小的质量改变

  • 在实际训练中,关于μ(xt,t)\mu(x_t,t)μ(xt​,t)的参数化的方式

  • 使用网络预测x0x_0x0​,然后使用公式
    μˉ(xt,x0):=aˉt−1βt1−αˉt+αt(1−αˉt−1)1−αˉtxt\bar{\mu } (x_t,x_0):=\frac{\sqrt{\bar{a}_{t-1}}\beta_t}{1-\bar{\alpha} _t} +\frac{\sqrt{\alpha _t}(1-\bar{\alpha }_{t-1} ) }{1-\bar{\alpha } _t}x_tμˉ​(xt​,x0​):=1−αˉt​aˉt−1​​βt​​+1−αˉt​αt​​(1−αˉt−1​)​xt​可以得到均值。

  • 也可以使用网络预测ε\varepsilonε,然后使用

    xt=αˉtx0+(1−αˉt)Ix_t=\sqrt{\bar{\alpha}}_tx_0+(\sqrt{1-\bar{\alpha}}_t)Ixt​=αˉ​t​x0​+(1−αˉ​t​)I

    μˉ(xt,x0):=aˉt−1βt1−αˉt+αt(1−αˉt−1)1−αˉtxt\bar{\mu } (x_t,x_0):=\frac{\sqrt{\bar{a}_{t-1}}\beta_t}{1-\bar{\alpha} _t} +\frac{\sqrt{\alpha _t}(1-\bar{\alpha }_{t-1} ) }{1-\bar{\alpha } _t}x_tμˉ​(xt​,x0​):=1−αˉt​aˉt−1​​βt​​+1−αˉt​αt​​(1−αˉt−1​)​xt​去生成均值 μˉ(xt,x0)\bar{\mu } (x_t,x_0)μˉ​(xt​,x0​)

目前这种方法是最好的,尤其是结合重新加权的损失函数

Lsimple =Et,x0,ϵ[∥ϵ−ϵθ(xt,t)∥2]L_{\text {simple }}=E_{t, x_{0}, \epsilon}\left[\left\|\epsilon-\epsilon_{\theta}\left(x_{t}, t\right)\right\|^{2}\right]Lsimple ​=Et,x0​,ϵ​[∥ϵ−ϵθ​(xt​,t)∥2]

原本的lvb损失
Lvlb:=L0+L1+…+LT−1+LTL_{\mathrm{vlb}} :=L_{0}+L_{1}+\ldots+L_{T-1}+L_{T}Lvlb​:=L0​+L1​+…+LT−1​+LT​
L0:=−log⁡pθ(x0∣x1)L_{0} :=-\log p_{\theta}\left(x_{0} \mid x_{1}\right)L0​:=−logpθ​(x0​∣x1​)

Lt−1:=DKL(q(xt−1∣xt,x0)∣∣pθ(xt−1∣xt))L_{t-1}:=D_{K L}(q\left(x_{t-1} \mid x_{t}, x_{0}\right)|| p_{\theta}(x_{t-1}|x_{t})) Lt−1​:=DKL​(q(xt−1​∣xt​,x0​)∣∣pθ​(xt−1​∣xt​))
LT:=DKL(q(xT∣x0)∥p(xT))L_{T} :=D_{K L}\left(q\left(x_{T} \mid x_{0}\right) \| p\left(x_{T}\right)\right)LT​:=DKL​(q(xT​∣x0​)∥p(xT​))

对数似然的改进

为研究不同流形上的作用,在image net64*64 上训练固定的模型结构使用固定的超参数。

  • 不同的实验设置对比
方法 ho(2020) our
损失函数及参数设置 LsimpleL_{simple}Lsimple​ & σ2=βt\sigma^2=\beta_tσ2=βt​ & T=10000T=10000T=10000 Lhybrid=Lsimple +λLvlb,λ=0.001L_{\mathrm{hybrid}}=L_{\text {simple }}+\lambda L_{\mathrm{vlb}},\lambda = 0.001Lhybrid​=Lsimple ​+λLvlb​,λ=0.001
训练轮数 200k
T 1000 4000
数据集 image_net64*64
实验结果 3.99 3.77

学习Σθ(xt,t)\Sigma_{\theta}\left(x_{t}, t\right)Σθ​(xt​,t)

  • 在无限步长的扩散的过程条件下,方差的作用远没有均值对实验结果的影响大。或者说,方差几乎不发挥作用。

  • 实验中,我们发现扩散过程前几步对整个扩散过程很重要。于是,通过使用更好的Σθ(xt,t)\Sigma_{\theta}\left(x_{t}, t\right)Σθ​(xt​,t)可以很大程度上提高对数释然。

  • 合理的Σθ(xt,t)\Sigma_{\theta}\left(x_{t}, t\right)Σθ​(xt​,t)的范围很小,对于神经网络去寻找一个合理的Σθ(xt,t)\Sigma_{\theta}\left(x_{t}, t\right)Σθ​(xt​,t)不是容易的,

  • 我们发现更好的参数化Σθ(xt,t)\Sigma_{\theta}\left(x_{t}, t\right)Σθ​(xt​,t)是差值βˉt\bar{\beta}_tβˉ​t​和βt\beta_tβt​在对数域。我们的模型输出vvv,每个维度包含一个分量,然后将这个输出转换为如下方差:
    Σθ(xt,t)=exp⁡(vlog⁡βt+(1−v)log⁡β~t)\Sigma_{\theta}\left(x_{t}, t\right)=\exp \left(v \log \beta_{t}+(1-v) \log \tilde{\beta}_{t}\right)Σθ​(xt​,t)=exp(vlogβt​+(1−v)logβ~​t​)

  • trick{\color{Red}trick }trick
    stop- gradient

改善噪声机制

线性噪声机制对于高分辨率图像很好,在分辨率小的图像上结果次优。ddpm中的前向加噪过程对采样过程没有太大的贡献。

  • 原本的加噪机制:

q(x1,…,xT∣x0):=∏t=1Tq(xt∣xt−1)q(x_{1}, \dots, x_{T} | x_{0}) :=\prod_{t=1}^{T} q\left(x_{t} \mid x_{t-1}\right)q(x1​,…,xT​∣x0​):=∏t=1T​q(xt​∣xt−1​)

q(xt∣xt−1):=N(xt;1−βtxt−1,βtI)q(x_{t}| x_{t-1}):=\mathcal{N}\left(x_{t} ; \sqrt{1-\beta_{t}} x_{t-1}, \beta_{t} \mathbf{I}\right)q(xt​∣xt−1​):=N(xt​;1−βt​​xt−1​,βt​I)

对任何时刻的加噪样本:

q(xt∣x0)=N(xt;αˉtx0,(1−αˉt)I)xt=αˉtx0+1−αˉtϵ\begin{aligned} q\left(x_{t} \mid x_{0}\right) &=\mathcal{N}\left(x_{t} ; \sqrt{\bar{\alpha}_{t}} x_{0},\left(1-\bar{\alpha}_{t}\right) \mathbf{I}\right) \\ x_{t} &=\sqrt{\bar{\alpha}_{t}} x_{0}+\sqrt{1-\bar{\alpha}_{t}} \epsilon \end{aligned}q(xt​∣x0​)xt​​=N(xt​;αˉt​​x0​,(1−αˉt​)I)=αˉt​​x0​+1−αˉt​​ϵ​

  • 加噪机制的改进:

    αˉt=f(t)f(0),f(t)=cos⁡(t/T+s1+s⋅π2)2\bar{\alpha}_{t}=\frac{f(t)}{f(0)}, \quad f(t)=\cos \left(\frac{t / T+s}{1+s} \cdot \frac{\pi}{2}\right)^{2}αˉt​=f(0)f(t)​,f(t)=cos(1+st/T+s​⋅2π​)2
    其中:
    βt=1−αˉtαˉt−1\beta_{t}=1-\frac{\bar{\alpha}_{t}}{\bar{\alpha}_{t-1}}βt​=1−αˉt−1​αˉt​​

    • 为了防止开始时βt,t=0\beta_t,t=0βt​,t=0太小,使得网络在预测噪声的时候很困难。我们让β0\sqrt{\beta_0}β0​​=1/127.5=0.008。
    • 在实际中使用cos2cos^2cos2
    • 不同的LvlbL_{vlb}Lvlb​有不同边际。采样t均匀的会引起没必要的噪声在LvlbL_{vlb}Lvlb​中。我们使用重要性采样:
      Lvlb=Et∼pt[Ltpt], where pt∝E[Lt2]and ∑pt=1L_{\mathrm{vlb}}=E_{t \sim p_{t}}\left[\frac{L_{t}}{p_{t}}\right] \text {, where } p_{t} \propto \sqrt{E\left[L_{t}^{2}\right]} \text { and } \sum p_{t}=1Lvlb​=Et∼pt​​[pt​Lt​​], where pt​∝E[Lt2​]​ and ∑pt​=1,由于
      E[Lt2]E\left[L_{t}^{2}\right]E[Lt2​]是未知的,可能在整个训练过程中发生变化。于是,我们的每个损失保持10个值的历史,并在训练期间动态更新。训练开始,我们均匀的采样十个样本,t∈[0,T−1]t \in[0, T-1]t∈[0,T−1]。

总结

  • 损失函数的改进
  • 噪声机制使用cos

论文阅读:Improved Denoising Diffusion Probabilistic Models相关推荐

  1. 论文阅读 (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:用于图 ...

  2. DDPM(Denoising Diffusion Probabilistic Models)扩散模型简述

    引言 扩散模型最早是在2015年的Deep Unsupervised Learning using Nonequilibrium Thermodynamics文章中提出的,但当时扩散模型并不work, ...

  3. Medical Diffusion - Denoising Diffusion Probabilistic Models for 3D Medical Image Generation

    Medical Diffusion - Denoising Diffusion Probabilistic Models for 3D Medical Image Generation 论文链接:ht ...

  4. Diffusion Model (扩散生成模型)的基本原理详解(一)Denoising Diffusion Probabilistic Models(DDPM)

    本章开始笔者来陆续的介绍最近爆火的Diffusion Model的近期发展. 本篇的学习内容与图片均来自于对文章Diffusion Models: A Comprehensive Survey of ...

  5. 2022图像翻译/扩散模型:UNIT-DDPM: UNpaired Image Translation with Denoising Diffusion Probabilistic Models

    2022图像翻译/扩散模型:UNIT-DDPM: UNpaired Image Translation with Denoising Diffusion Probabilistic Models. U ...

  6. 生成网络论文阅读:DDPM(一):Denoising Diffusion Probabilistic Models论文概述

    结构速览 1.论文的整体逻辑是什么 2.具体怎么加入噪声和去掉噪声的 2.1加入参数的大致指导思想 2.2具体怎么加入噪声 2.3怎么去掉噪声(问题最后转化为怎么估算噪声) 2.4怎么估计噪声(实际上 ...

  7. 1、Denoising Diffusion Probabilistic Models(扩散模型)

    简介 主页:https://hojonathanho.github.io/diffusion/ 扩散模型 (diffusion models)是深度生成模型中新的SOTA. 扩散模型在图片生成任务中超 ...

  8. Unsupervised Representation Learning from Pre-trained Diffusion Probabilistic Models

    Unsupervised Representation Learning from Pre-trained Diffusion Probabilistic Models 论文链接: https://a ...

  9. DDIM原理及代码(Denoising diffusion implicit models)

    前言 之前学习了 DDPM(DDPM原理与代码剖析)和 IDDPM(IDDPM原理和代码剖析), 这次又来学习另一种重要的扩散模型.它的采样速度比DDPM快很多(respacing),扩散过程不依赖马 ...

  10. Denoising Diffusion Probabilistic Model,DDPM阅读笔记——(一)

    Denoising Diffusion Probabilistic Model 一.写在前面 二.相关数学知识简介 二.生成模型简介: 三.变分自编码器概述(VAE) 一.写在前面 人工智能生成内容( ...

最新文章

  1. 网络安全界永恒不变的10大安全法则
  2. CMD 控制台CMD程序怎么执行完不关闭界面?@pause
  3. 《Java 核心技术卷1 第10版》学习笔记------日志
  4. Redis多实例及主从搭建
  5. Platform.Uno介绍
  6. Laravel debug bar 调试利器
  7. 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
  8. distpicker省市区插件设置请选择省市区提示/或设置初始值问题
  9. 海量数据处理分析经验和技巧
  10. Java具有哪些语言特点
  11. 辅助功能 AccessibilityService笔记
  12. ivue-admin Table单元格内换行问题
  13. 怎么写好一份数据分析报告
  14. vue中的created和mounted函数不生效(created和mounted不管用)?
  15. 多言统计及R语言建模按组距为300编制频数表,计算频数,频率和累积频率表,并绘制直方图
  16. html5自动播放音乐外链,仿网易云音乐外链播放器UI的HTML5音乐播放器插件
  17. 转:15条优化电脑系统开机速度方法
  18. 教你如何显示隐藏文件
  19. python爬虫--获取天猫店铺商品价格及销量
  20. 抖音IP属地能改吗?抖音IP属地错误是什么原因?

热门文章

  1. php 英文小写转大写数字,php 英文字符大小写转换函数
  2. 基于深度学习技术的AI输入法引擎
  3. 统计学习理论(SLT)与支持向量机(SVM)
  4. 欢迎你、某某某同学python_python123第一周作业
  5. java docx4j 合并word_如何使用docx4j在word中添加合并字段?
  6. 金星DEM数据介绍与下载教程
  7. 王道——数据结构 第一章 思维拓展
  8. python提取关键词_【Python工具】30万关键词提取疑问词只需2秒,效率高到飞起!...
  9. MySQL的基础汇总(包含60道练习题)~~
  10. JavaScript三种弹出框(alert、confirm、prompt),一次性全弄清!