第二十六天:Denoising Diffusion Probabilistic Models(DDPM)

news2024/9/29 21:32:31

摘要

我们使用扩散概率模型提出了高质量的图像合成结果,这是一类latent variable模型,灵感来自非平衡热力学。我们最好的结果是通过训练weighted variational bound ,根据新颖的连接扩散概率模型和去噪分数匹配朗之万动力学进行设计,而且我们的模型自然admit一个渐进的lossy decompression scheme,可以解释为autoregressive decoding的泛化。

假设图像符合高斯分布?
我们使用q想表达的p是?如何表达?这里的pq就是前向传播和逆向传播吗?为什么要用前向传播拟合逆向传播?
猜测:难道说,我们是想拟合出每一个xt?是想把前向传播和逆向传播的每一个节点都对齐?

weighted variational bound \ autoregressive decoding \ VAE \ autoregressive model

什么是变分推断?variational inference
首先,我们的原始目标是,需要根据已有数据推断需要的分布p;当p不容易表达,不能直接求解时,可以尝试用变分推断的方法, 即,寻找容易表达和求解的分布q,当q和p的差距很小的时候,q就可以作为p的近似分布,成为输出结果了。在这个过程中,我们的关键点转变了,从“求分布”的推断问题,变成了“缩小距离”的优化问题。举生活中的例子太难了,还是看图说话容易些
在这里插入图片描述
黄色的分布是我们的原始目标p,不好求。它看上去有点像高斯,那我们尝试从高斯分布中找一个红q和一个绿q,分别计算一下p和他们重叠部分面积,选更像p的q作为p的近似分布

1. 介绍

fig1

fig2

  • 扩散模型是一个马尔科夫链;当扩散包含少量的高斯噪声时,将采样链转换设置为条件高斯噪声就足够了,允许一个特别简单的神经网络参数化。
  • 能生成高质量照片。
  • 此外,我们还证明了扩散模型的一些参数化揭示了在训练过程中denoising score matching over multiple noise levels during training和 annealed Langevin dynamics during sampling的等价性。

每个状态x都是latent

2. 背景

逆过程可以被定义为一个,可学习的Gaussian transition

这里Gausssian transition没搜到指的是啥,我理解的是从一个高斯分布,变成了另一个高斯分布;其中pθ中的μθ就是可学习的参数,有的论文里把方差也设置成可学习。

在这里插入图片描述
训练的损失函数为:Training is performed by optimizing the usual variational bound on negative log likelihood:
在这里插入图片描述
正向过程的一个值得注意的特性是,它允许在任意时间步长t以封闭形式采样:
在这里插入图片描述

因此,通过使用随机梯度下降来优化L的随机项,可以进行有效的训练。进一步的改进来自于通过改写L (3)来减少方差:

在这里插入图片描述
式(5)使用KL散度直接比较pθ(xt−1|xt)与前向过程后端,这在x0条件下是可处理的:

在这里插入图片描述
因此,等式中的所有KL差异(5)是高斯分布之间的比较,因此它们可以用封闭形式表达式的Rao-Blackwellized fashion计算,而不是高方差蒙特卡罗估计。

3. 方法

为了guide our choice,我们在扩散模型和denoise score matching之间建立了一个新的显式联系,成功添加了扩散模型的一个简化的variational bound objective。

our choice 指的是?
denoise score matching 指的是?
variational bound objective指的是?

“此外,我们还证明了扩散模型的一定参数化揭示了在训练过程中在多个噪声水平上的去噪分数匹配和在采样过程中使用退火的朗之万动力学的等价性”
这种等价性指的是?introduction中说这是他的最大贡献

首先,设定方差为不可学习;
其次,为了表示平均µθ(xt,t),我们提出了一个特定的参数化,由以下的Lt分析驱动。使用pθ(xt−1|xt)=N(xt−1;µθ(xt,t),σt 2 I),我们可以写:
在这里插入图片描述
因此,我们可以看到µθ最直接的参数化是一个预测˜µt的模型,即正向过程的后验均值。但是,我们可以扩展等式(8)进一步通过重新参数化等式(4)如xt(x0,)=√¯αtx0+√1−¯αtfor∼N(0,I),并应用前向过程后向公式(7):
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
其中εθ是一个用来从xt预测epsilon的函数近似器。

epsilon
这个epsilon是可学习的吗?它是指啥?N是啥?

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【记录】props和data响应式、watch初始化..谁先执行【Vue父子组件生命执行周期】

文章目录一 、 总结1-1 源码中清楚写明:1-2二、 本次遇到的问题: 父传子props,子组件无法在mounted处理2-1 代码如下2-2一 、 总结 1-1 源码中清楚写明: 1、 组件初始化的时候,created,props,data…执行先…

生物素-二硫键-琥珀酰亚胺酯 Biotin-SS-NHS CAS:142439-92-7 具有良好的水溶性

名称:生物素-二硫键-琥珀酰亚胺酯 英文简称:BIOTIN-SS-NHS;NHS-SS-Biotin CAS:122266-55-1 结构式: Biotin-SS-NHS ester结构式 分子式:C19H28N4O6S3 分子量:504.64 纯度:95% …

Python之threading: 带你了解多线程的强大威力!

前言 什么是多线程 多线程是指在一个程序中同时创建和使用多个执行流(thread)来执行不同的任务。这样多个任务就可以同时进行,从而提高程序的执行效率。 在python使用多线程的方法 在 Python 中有两种方法可以使用多线程:使用 Python 自带的 threadin…

Redis Java 客户端工具 - Lettuce框架介绍

Redis Java 客户端 - Lettuce 今天学习下Redis Java客户端开源项目 - Lettuce&#xff0c;Lettuce支持同步、异步通信的方式 API调用&#xff0c;也支持响应式编程API&#xff0c;包括发布/订阅消息、高可用性服务部署架构。 开始之旅 Maven依赖 <dependency><gro…

Python实现SSH远程操作Linux(paramiko库)

参考&#xff1a;https://blog.csdn.net/qq_40558166/article/details/100172501 一、官网 https://www.paramiko.org/ 二、安装库 1.命令 pip install paramiko 或 pip install paramiko –i https://pypi.douban.com/simple/ 三、辅助软件(可忽略) 1.Xshell(执行命令) …

[附源码]Node.js计算机毕业设计黑格伯爵国际英语贵族学校官网Express

项目运行 环境配置&#xff1a; Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境&#xff1a;最好是Nodejs最新版&#xff0c;我…

Ubuntu 配置本地root登录

Ubuntu 配置本地root登录–18.04 给root用户设置密码 按照下图方式 命令&#xff1a;sudo passwd root 切换到root用户 使用 su 或者是 su root 切换到 root 修改配置文件 进入该目录&#xff1a; cd /usr/share/lightdm/lightdm.conf.d/ 查看文件 ls 使用gedit 编辑文…

Arduino UNO新手零基础入门学习博客汇总

写在开头 最近在上Arduino的课&#xff0c;可以说Arduino对新手来说非常友好了&#xff0c;因为相比于51和32&#xff0c;Arduino的库函数下载就好&#xff0c;不需要自己去写&#xff0c;就很方便 我的硬件设备 博客汇总 博客内容大多数以实际案例为主&#xff0c;基本都是…

机器学习100天(七):007 简单线性回归理论

机器学习100天,今天讲的是简单线性回归理论。 首先来看第一个问题:什么是线性回归?我们先引入一个例子。 假如我现在有一份数据,这份数据是一些地区人口和对应房价的信息。我们把这份数据展示在二维平面上。横坐标是人口,纵坐标是房价,红色的点就表示每个地区的实际人口…

论文精读:EfficientDet: Scalable and Efficient Object Detection

Abstract 首先&#xff0c;本篇论文提出了一种加权双向特征金字塔网络&#xff08;BiFPN&#xff09;&#xff0c;进行简单、快速的多尺度特征融合&#xff1b;其次&#xff0c;作者提出了一种复合尺度方法&#xff0c;同时统一调整所有主干、特征网络和box/类别预测网络的分辨…

kali linux的安装教程

kali linux的安装教程 在网上输入网址https://www.kali.org/get-kali/#kali-virtual-machines。 向下滚动鼠标滑轮选择如下图所示的图标进行安装iso镜像文件。 我们打开虚拟机&#xff0c;选择创建新的虚拟机 选择其中的自定义&#xff0c;随即点击下一步 点击下一步 点击下一步…

uboot通过bootargs传递内核中的模块传递参数

前言 bootargs是uboot向内核传递参数时使用的&#xff0c;本次我们要验证的是bootargs向内核启动后加载的模块传递的参数&#xff0c;真正的跨过山和大海。跟着我的脚步&#xff0c;来一次bootargs之旅。 这是一个综合性&#xff0c;系统性很强的实例验证&#xff0c;要做这个…

模式识别-期末复习题(问题集锦)

1.什么是模式&#xff1f;监督模式识别和非监督模式识别的典型过程分别是什么&#xff1f; 模式&#xff1a;指需要识别且可测量的对象的描述 监督模式识别&#xff1a;分析问题→原始特征提取→特征提取与选择→分类器设计 非监督模式识别&#xff1a;分析问题→原始特征提…

C++ Reference: Standard C++ Library reference: Containers: map: map: insert

C官网参考链接&#xff1a;https://cplusplus.com/reference/map/map/insert/ 公有成员函数 <map> std::map::insert C98 single element (1) pair<iterator,bool> insert (const value_type& val); with hint (2) iterator insert (iterator positio…

【密码学】MD5、UUID,加盐,JWT的理解与使用范例

文章目录MD5加密&#xff1a;1、MD5加密安全访问认证示例代码&#xff1a;2、UUID简介&#xff1a;使用&#xff1a;3、加盐原理&#xff1a;示例代码&#xff1a;4、jwt认知&#xff1a;JWT 结构&#xff1a;范例代码&#xff1a;MD5加密&#xff1a; 1、MD5加密 Message Di…

计算机毕业设计springboot+vue基本微信小程序的疫情防控平台系统

项目介绍 当今社会疫情防控平台是必不可少的,大家都在听从政府的号召在居家隔离,不管是在城市还是在乡镇、农村,这引起我的注目,设计一套社区疫情防控系统,疫情防控需要大家共同努力、团结对社区居民进行了新型冠状病毒肺炎防控知识普及和宣传教育。针对这一需求,本文设计并实现…

LVS详细介绍,这么讲不信你不明白负载均衡

Linux virtual server&#xff0c;是一个基于集群技术和Linux操作系统&#xff0c;目的是实现一个高性能、高可用的服务器&#xff0c;主要工作在网络层。 他采取IP负载均衡&#xff0c;也叫三层负载均衡&#xff08;因为工作在OSI模型的第三层--网络层&#xff09;&#xff0…

java计算机毕业设计springboot+vue旅游攻略平台

项目介绍 目前,我国旅游业正处于高度发展的状态。越来越多的人在假日里选择出游作为放松自己身心的手段。随着网络的普及和发展,人们开始习惯性地在做某事之前先在网络上浏览相关的内容。旅游网站能够帮助游客了解景点相关信息,推出相应的线路信息供游客们选择,并查看相应的旅…

计算机网络实验——路由器的配置静态与RIP配置

前言 由于几个资料和老师给的ppt说的都不清楚&#xff0c;自己也没想到什么很巧妙的归纳方法&#xff0c;写个总结记录一下。 想必静态路由配置的过程中唯一的难点就是ip route这个指令&#xff0c;其他的什么添加接口&#xff0c;设置ip啥的都是基础路由配置中的内容&#xf…

2023春招面试专题:JAVA基础高频面试

ArrayList和LinkedList有哪些区别 ArrayList扩容机制: ArrayList() 会使用长度为零的数组ArrayList(int initialCapacity) 会使用指定容量的数组public ArrayList(Collection<? extends E> c) 会使用 c 的大小作为数组容量add(Object o) 首次扩容为 10&#xff0c;再次…