Denoising diffusion implicit models 阅读笔记

2023-11-18

Denoising diffusion probabilistic models (DDPMs)从马尔科夫链中采样生成样本,需要迭代多次,速度较慢。Denoising diffusion implicit models (DDIMs)的提出是为了加速采样过程,减少迭代的次数,并且要求DDIM可以复用DDPM训练的网络。
加速采样的基本思路是,DDPM的生成过程需要从 [ T , ⋯   , 1 ] [T,\cdots,1] [T,,1]的序列逐步采样,DDIM则可以从 [ T , ⋯   , 1 ] [T,\cdots,1] [T,,1]的子序列采样来生成,通过跳步的方式减少采样的步数。

非马尔科夫的前向过程

DDPM中推理分布(inference distribution) q ( x 1 : T ∣ x 0 ) q(\mathbf x_{1:T}|\mathbf x_0) q(x1:Tx0)是固定的马尔科夫链。DDIM的作者考虑构造新的推理分布,该推理过程和DDPM优化相同的目标,但能产生新的生成过程。
在这里插入图片描述
考虑一个推理分布族Q,由实向量 σ ∈ R ≥ 0 T \sigma \in \mathbb{R}^T_{\ge 0} σR0T索引:
在这里插入图片描述
根据上面的定义有 q σ ( x t ∣ x 0 ) = N ( α t x 0 , ( 1 − α t ) I ) q_{\sigma}(\mathbf x_t | \mathbf x_0) = \mathcal{N}(\sqrt{\alpha_t}\mathbf x_0, (1-\alpha_t)I) qσ(xtx0)=N(αt x0,(1αt)I)
对应的前向过程也是高斯分布:
在这里插入图片描述
通过上面定义的推理过程,前向过程变成了非马尔科夫的,因为每一步都依赖 x 0 \mathbf x_0 x0
参数 σ \sigma σ控制前向过程的随机性,如果 σ → 0 \sigma \rightarrow 0 σ0,那么在已知 x 0 \mathbf x_0 x0和其中任一个 x t \mathbf x_t xt的情况下, x t − 1 \mathbf x_{t-1} xt1是固定的。

根据上面的推理过程,定义需要学习的生成过程为:
在这里插入图片描述
其中
在这里插入图片描述

根据上面的定义的推理过程和生成过程,优化的目标是
在这里插入图片描述
可以证明该优化目标和特定情况下DDPM的优化目标相同。

逆向生成过程的采样方法如下:
在这里插入图片描述
选择不同的 σ \sigma σ值会导致不同的生成过程,但它们使用相同的 ϵ θ \epsilon_{\theta} ϵθ模型。
如果 σ t = ( 1 − α t − 1 ) / ( 1 − α t ) ( 1 − α t ) / ( 1 − α t − 1 ) \sigma_t=\sqrt{(1-\alpha_{t-1})/(1-\alpha_{t})}\sqrt{(1-\alpha_{t})/(1-\alpha_{t-1})} σt=(1αt1)/(1αt) (1αt)/(1αt1) ,那么前向过程又变成了马尔科夫的,生成过程和DDPM一样。
如果 σ t = 0 \sigma_t=0 σt=0,那么随机噪声前的系数是0, x 0 \mathbf x_0 x0 x T \mathbf x_T xT之间的关系是固定的,这属于隐概率模型(implicit probabilistic model)。因此,作者把这种情况称为denoising diffusion implicit model (DDIM)。

加速

为了加速采样,作者考虑下面的推理过程:
在这里插入图片描述
其中 τ \tau τ是长度为S的 [ 1 , ⋯   , T ] [1,\cdots,T] [1,,T]的子序列, τ S = T \tau_S=T τS=T τ ‾ : = { 1 , … , T } \ τ \overline{\tau}:=\{1,\ldots,T \} \backslash \tau τ:={1,,T}\τ是除去子序列剩下的序号。
定义
在这里插入图片描述该推理分布对应的生成过程如下:
在这里插入图片描述
定义需要学习的概率为:
在这里插入图片描述
根据上面的定义的推理过程和生成过程,优化的目标是
在这里插入图片描述
可以证明该优化目标和特定情况下DDPM的优化目标相同。
因此,可以利用DDPM训练的网络,但是从子序列采样生成图像。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Denoising diffusion implicit models 阅读笔记 的相关文章

随机推荐

  • 硬盘位置不可用无法访问X:/指定不存在的设备?

    硬盘位置不可用无法访问X 指定不存在的设备 一 背景描述 家用电脑装了三块硬盘 一张SSD做系统 一张HDD做文件存储 另外一张4T硬盘做音视频照片存储 系统使用一段事件后重新安装过系统 后面有一天想着看看以前的照片 发现打不开了一直报错
  • 黑马程序员---从头开始,回忆JAVA基础之JAVA用十六进制表示浮点数的方法

    在二进制文件中 存储数据的格式为16进制 下面举例说明27 0f在二进制文件中怎么表示 float 共计32位 折合4字节 由最高到最低位分别是第31 30 29 0位 31位是符号位 1表示该数为负 0反之 30 23位 一共8位是指数位
  • 三菱plc编程实例3000_三菱PLC十字路口的红绿灯编程实例

    点击 上方关注 回复100领取电气控制100例 十字路口车辆穿梳 行人熙攘 车行车道 人行人道 有条不紊 那么靠什么来实现这井然秩序呢 靠的是交通信号灯的自动指挥系统 下面介绍三菱PLC编程实现的控制系统 交通灯的控制要求如下 一 控制要求
  • IT项目管理的实例与总结

    IT项目管理的实例与总结 Introduction Group Charter 人力资源规划 Project Scope Statement 项目进度计划与时间表 Cost Estimate 质量管理计划 风险管理计划 Microsoft
  • YOLO v7

    文章目录 YOLO v7 一 结构更新 VoVNet CSPVoVNet ELAN RepVGG auxiliary heads SimOTA 二 Loss更新 coarse to find auxiliary loss 三 Others
  • kafka常用命令

    启动zookeeper bin zookeeper server start sh config zookeeper properties 启动kafka bin kafka server start sh config server pr
  • QT时间日期定时器类(5.时间获取转换与排序)【QT基础入门 Demo篇】

    一 QT获取当前时间的方法 二 QString和QDateTime之间的相互转换 三 日期排序 获取时间最值 四 QT延时操作 一 QT获取当前时间的方法 1 使用QDateTime类
  • 解决vscode各种异常格式化编译器配置

    在vscode中创建vue文件时 若编辑代码时会出现间隔一段时间后自动的格式化内容 会很烦 经反复改查后无果 后来 对编辑器进行全面配置 首先原setting json文件中的代码是这样的 files autoSave afterDelay
  • 深度学习踩坑系列之十 创建&克隆&激活虚拟环境

    创建虚拟环境 conda create n your env name python 3 6 2 pip numpy matplotlib pandas sortedcontainers conda克隆虚拟环境 conda create n
  • 蓝桥杯 辗转相除法---求最大公约数

    1 例子 例如 求 319 377 319 377 0 余319 319 377 377 319 377 319 1 余58 377 319 319 58 319 58 5 余29 319 58 58 29 58 29 2 余0 58 29
  • Windows Server 2019 会话远程桌面-快速部署(RemoteApp)

    目录 一 实验要求 二 搭建远程桌面服务RDS 三 需要软件安装 1 安装Firefox 浏览器 2 安装一款视频播放器 3 安装WPS office 套件 四 发布应用 1 发布Firefox 浏览器 2 发布一款视频播放器 3 发布WP
  • pyodbc操作Access数据库

    现在各种各样的数据库层出不穷 什么MySQL PostgreSQL MongoDB这些都是比较火的 还有一些稍微小众一点的数据库就更多了 相比之下 微软Office套件里面附带的Access数据库究落寞了很多 不过好歹Access数据库还是
  • 【图像处理】图像二值化----otsu(最大类间方差法、大津算法)

    转载 https blog csdn net abcjennifer article details 6671288 最大类间方差法是由日本学者大津于1979年提出的 是一种自适应的阈值确定的方法 又叫大津法 简称OTSU 它是按图像的灰度
  • Bicubic Interpolation (双三次插值)

    在Wikipedia http en wikipedia org wiki Bicubic interpolation 上找到了bicubic的描述 不过它只给出了知道导数情况下的公式 后来在CSDN上找到了C语言的算法描述 http to
  • k8s-node节点未找到flannel网络

    k8s node节点的flannel的IP地址不正确 问题描述 问题分析 1 检查node节点的cni和flannel网卡地址 2 检查master节点的flannel服务 如何重置flannel网络 1 删除node节点 master 2
  • unity中Input.Touch详解

    相关的api 1 Touch类 用来记录一个手指触摸在屏幕上的状态与位置的各种相关数据 这其它中只有两个属性是你要注意的 就是Touch fingerId和Touch tapCount Touch fingerId 一个Touch的标识 I
  • Linux常用压缩命令(tar,tgz,gzip,zip,rar)

    Linux常用于压缩和解压tar tgz gzip zip rar 一 tar 1 压缩命令 tar cvf examples tar files dir files dir表示要压缩文件或者目录 说明 c create create a
  • llama.cpp试用

    显存占用是真的低 13B vicuna int4量化 example chat 13B sh 正常问答交流 不到2G的占用 相比之下 vicuna7B原版int8量化 8G显卡下 cuda会OOM 原版不支持int4量化 chatglm6B
  • Android应用底部导航栏(选项卡)实例

    现在很多android的应用都采用底部导航栏的功能 这样可以使得用户在使用过程中随意切换不同的页面 现在我采用TabHost组件来自定义一个底部的导航栏的功能 我们先看下该demo实例的框架图 其中各个类的作用以及资源文件就不详细解释了 还
  • Denoising diffusion implicit models 阅读笔记

    Denoising diffusion probabilistic models DDPMs 从马尔科夫链中采样生成样本 需要迭代多次 速度较慢 Denoising diffusion implicit models DDIMs 的提出是为