Denoising diffusion implicit models 阅读笔记

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训练的网络,但是从子序列采样生成图像。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/142066.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络补充

未分类文档 CDMA是码分多路复用技术 和CMSA不是一个东西 UPD是只确保发送 但是接收端收到之后(使用检验和校验 除了检验的部分相加 对比检验和是否相等。如果不相同就丢弃。 复用和分用是发生在上层和下层的问题。通过比如时分多路复用 频分多路复用等。TCP IP 应用层的IO多路…

绿色计算产业发展白皮书:2022年OceanBase助力蚂蚁集团减排4392tCO2e

9 月 15 日,绿色计算产业联盟在 2023 世界计算大会期间重磅发布了《绿色计算产业发展白皮书(2023 版)》。蚂蚁集团作为指导单位之一,联合参与了该白皮书的撰写。 白皮书中指出,落实“双碳”战略,绿色计算已…

基于微信小程序的场地预约系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言系统主要功能:具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding)有保障的售后福利 代码参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计…

亮相“外滩金融峰会” 百望云实力入选“融城杯金融科技创新十佳案例”

近日,第五届“外滩金融峰会”在上海召开,百望云受邀出席峰会,与全球财经政要、机构高管与学界领袖齐聚外滩,分享真知灼见,以对话推动共识。 本届峰会由中国金融四十人论坛(CF40)与中国国际经济交…

electron之快速上手

前一篇文章已经介绍了如何创建一个electron项目,没有看过的小伙伴可以去实操一下。 接下来给大家介绍一下electron项目的架构是什么样的。 electron之快速上手 electron项目一般有两个进程:主进程和渲染进程。 主进程:整个项目的唯一入口&…

HashMap 源码解读(JDK1.8)

一、HashMap说明 基于哈希表的 Map 接口实现。此实现提供所有可选的map操作,并允许空值和空键。(HashMap 类大致等同于 Hashtable,只是它不支持同步并且允许空值。)此类不保证插入键值的顺序;特别是,它不保…

Mendix中的依赖管理:npm和Maven的应用

序言 在传统java开发项目中,我们可以利用maven来管理jar包依赖,但在mendix项目开发Custom Java Action时,由于目录结构有一些差异,我们需要自行配置。同样的,在mendix项目开发Custom JavaScript Action时,…

48v转24v 3A 48v转12v 48v转5v电源芯片AH7691X

AH7691X是一款高-效-率、高-压降压型DC-DC转换器,采用固定110KHz的开关频率,具备3A的输出电流能力,低纹波,并且具备***软启动功能、过压保护功能和温度保护。该器件还集成了峰值限流功能,简化了电路设计。 AH7691X内部…

MFC 绘图

效果图:三张bmp图 字 竖线 组成 在OnPaint()函数中 CPaintDC dc(this);CRect rect;GetClientRect(&rect); //获取客户区矩形CDC dcBmp; //定义并创建一个内存设备环境dcBmp.CreateCompatibleDC(&dc); //创建兼容性DCCBitmap …

【kafka实战】01 3分钟在Linux上安装kafka

本节采用docker安装Kafka。采用的是bitnami的镜像。Bitnami是一个提供各种流行应用的Docker镜像和软件包的公司。采用docker的方式3分钟就可以把我们想安装的程序运行起来,不得不说真的很方便啊,好了,开搞。使用前提:Linux虚拟机&…

AKKA 互相调用

SpringBoot 集成 AKKA 可以参考此文:SpringBoot 集成 AKKA 场景1:bossActor 收到信息,然后发给 worker1Actor 和 worker2Actor controller 入口,初次调用 ActorRef.noSender() Tag(name "test") RestController Req…

【MATLAB第77期】基于MATLAB代理模型算法的降维/特征排序/数据处理回归/分类问题MATLAB代码实现【更新中】

【MATLAB第77期】基于MATLAB代理模型算法的降维/特征排序/数据处理回归/分类问题MATLAB代码实现 本文介绍基于libsvm代理模型算法的特征排序方法合集,包括: 1.基于每个特征预测精度进行排序(libsvm代理模型) 2.基于相关系数corr的…

前端技术社区总目录

前端技术社区欢迎您的订阅。订阅后,您将可以查看以下所有博客内容。 注:专栏内容主要面向新手 注:每个示例都有相对应的完整代码 注:该专栏博客内容将会逐步迁移至https://blog.csdn.net/m0_60387551/article/details/128017725 …

用于自然语言处理的 Python:理解文本数据

一、说明 Python是一种功能强大的编程语言,在自然语言处理(NLP)领域获得了极大的普及。凭借其丰富的库集,Python 为处理和分析文本数据提供了一个全面的生态系统。在本文中,我们将介绍 Python for NLP 的一些基础知识&…

Sound/播放提示音, Haptics/触觉反馈, LocalNotification/本地通知 的使用

1. Sound 播放提示音 1.1 音频文件: tada.mp3, badum.mp3 1.2 文件位置截图: 1.3 实现 import AVKit/// 音频管理器 class SoundManager{// 单例对象 Singletonstatic let instance SoundManager()// 音频播放var player: AVAudioPlayer?enum SoundOption: Stri…

【C++】stack queue

stack & queue 一、容器适配器二、deque(了解)三、stack1. stack 的介绍2. 模拟实现 stack 四、queue1. queue 的使用2. 模拟实现 queue3. priority_queue(1)priority_queue 的介绍(2)priority_queue 的…

从零开始—【Mac系统】MacOS配置Java环境变量

系统环境说明 Apple M1 macOS Ventura 版本13.5.2 1.下载JDK安装包 Oracle官网下载地址 JDK下载【注:推荐下载JDK8 Oracle官网JDK8下载】 关于JDK、JRE、JVM的关系说明 JDK(Java Development Kit,Java开发工具包) ,是整个JAVA的核心&#…

系统学习Mysql

1.select语句 关键字执行顺序: 1.from 2.where 3.group by 4.select 5.having 6.order by 7.limit SQL 语句执行顺序如下: FROM: 指定要查询的表或子查询,可以包含 JOIN、WHERE 子句过滤等。 WHERE: 对 FROM 子句指定的表或子查询进行限制和…

快速使用Spring Cache

哈喽~大家好,这篇我们来看看快速使用Spring Cache。 🥇个人主页:个人主页​​​​​ 🥈 系列专栏:【日常学习上的分享】 🥉与这篇相关的文章: R…

【优测云服务平台】打造承载百倍级增长后台背后的力量-性能优化

项目介绍: 腾讯课堂是腾讯推出的专业在线教育平台,凭借技术优势,实现在线即时互动教学,打破地域的限制,让每个人都能接受优秀老师的指导和教学。 一、背景 2020年初,新冠病毒肆虐,疫情大面积爆…