一文详解去噪扩散概率模型(DDPM)

节前,我们星球组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、参加社招和校招面试的同学。

针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。

合集:

《AIGC 面试宝典》已圈粉无数!


去噪扩散概率模型(DDPM)是一种新颖的高质量图像生成方法。现在事实证明,扩散模型可以轻松超越标准生成对抗网络(GAN)。

我们有一个正向过程和一个反向过程。前向过程向图像添加高斯噪声。这将导致均值和单位方差为零的高斯分布。在相反的过程中,我们尝试从高斯噪声分布​​中重新创建图像。

正向和反向过程是参数化的随机马尔可夫链,我们在其中重复应用转换内核。转变以逐步的方式发生。每一步仅依赖于上一步。

在这里插入图片描述

DDPM的前向和后向过程

转发过程

我们可以将扩散过程定义为随机微分方程。它包含确定性部分和随机部分。论文中,这与朗之万动力学有关。

前向过程定义如下。

我们可以通过以下方式重新参数化和离散化上述方程。

假设 t=T 是最后一个时间步。我们可以通过以下方式简化时间步 T 的分布。

现在,我们可以考虑收敛标准来推导出以下结果。

这意味着重复使用上述重新参数化最终会导致零均值单位方差高斯分布。

我们不使用固定方差 β,而是使用方差表 βₜ。我们随时间改变方差。

方差项定义了从一个样本到另一个样本的跳跃。在相反的过程中,在最初的步骤中,我们可以快速改变(我们有非常嘈杂的图像)。因此,我们使用更大的方差。然而,在最后的步骤中,我们必须小心地改变图像。因此,我们使用较小的方差。

然而,这是一个递归过程。如果我们想要计算 t=1000 时的分布,我们必须递归执行上述方程 1000 次。我们可以简化算法,直接计算任意时间步的分布。

我们可以使用上面的等式来避免递归。

在这里插入图片描述

逆向过程

我们想要从随机高斯噪声生成图像。这也是具有高斯转移的随机马尔可夫链。我们可以用下面的方式来写。

这是一个极其困难的问题。计算均值和方差涉及处理整个图像。因此,我们使用变分推理。由于后验分布的复杂性,我们将其描述为优化问题。现在,均值和方差是可学习的参数。

我们正在尝试近似反向分布。这类似于变分自动编码器中使用的方法。

变分自动编码器(VAE)

我们没有尝试优化对数概率,而是尝试最小化下限。

变分自编码器和 DDPM 有许多相似之处。然而,DDPM 以逐步的方式执行正向和反向过程。因此,我们可以用稍微不同的方式重新计算DDPM的优化过程。

现在我们可以使用马尔可夫链属性来进一步简化这一点。

所有项看起来都像 KL 散度,我们希望将它们最小化。最后一项包含解释相反过程的类似术语。第一项和第二项是常数。我们使用第三项来计算损失。

将上式乘以-1,我们可以推导出下式。

现在我们将通过以下方式进一步简化散度项。

所得分布也是高斯分布。我们可以重写,

我们可以用类似的方式编写反向步骤的参数化版本。我们使用与上面相同的方差。

在本文中,我们计算了我们的模型对噪声的近似程度。因此,损失略有不同。

现在,我们可以忽略常数项,并将损失定义为噪声之间的差异。

现在我们可以定义我们的训练算法。

我们向神经网络输入带有高斯噪声的图像。所得噪声必须接近真实噪声。

对于图像生成,我们执行相反的过程。这个过程类似于朗之万动力学。

在这里插入图片描述

CelebA-HQ 256 × 256 生成的样本

参考

Ho, J.、Jain, A. 和 Abbeel, P. (2020)。去噪扩散概率模型。

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

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

相关文章

Django之云存储(二)

一、Django使用云存储 建立项目 django-admin startproject project_demo创建子应用 python manage.py startapp app_name修改配置文件,设置模板视图路径 settings.py TEMPLATES = [{BACKEND: django.template.backends.django.DjangoTemplates,DIRS: [os.path.join(BASE_DIR,…

如何在 MySQL 中导入和导出数据库以及重置 root 密码

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 如何导入和导出数据库 导出 要导出数据库,打开终端,确保你没有登录到 MySQL 中,然后输入以下命令&…

sd StableDiffusion库学习笔记

目录 torchmetrics准确率计算 ConsistencyDecoder DeepSpeed realesrgan BasicSR超分辨率,去噪,去模糊,去 JPEG 压缩噪声 segment_anything mmengine controlnet_aux accelerate transfersformer pytorch_fid einops compel tra…

Ike-scan一键发现通过互联网的IPsec VPN服务器(KALI工具系列二十八)

目录 1、KALI LINUX 简介 2、Ike-scan工具简介 3、信息收集 3.1 目标主机IP(服务器) 3.2 KALI的IP 4、操作示例 4.1 简单扫描 4.2 范围扫描 4.3 扫描多个目标 4.4 输出扫描结果 4.5 特殊扫描 5、总结 1、KALI LINUX 简介 Kali Linux 是一个功…

基于Vue-cli脚手架搭建项目使用ElementUI组件

项目结构 node_modules 项目依赖的外部组件文件放在此处,例如vue public index.html是对外提供的唯一的html文件 src assets 存放静态文件 例如图片 css js等文件 components 里面存放的是组件 App.vue是组件 main.js是项目配置文件 package.json存放的是项目依赖的…

IEEE RAL 具有高运动性能的仿旗鱼机器人协同运动机制研究

水下机器人作为军用侦察、监测及攻击装置备受关注,目前传统水下机器人普遍采用螺旋桨作为推进器,但高噪音、高能耗等问题限制了应用范围。鱼类通过自然选择进化出优异的运动性能,特别是在海洋中游动速度快、机动性强的旗鱼。为了探究快速和高…

redis持久化操作【随记】

持久化 Redis它是将数据保存到内存当中,内存里的数据最大特点: 断电易失.保存在内存的数据就没有了.如果如果这些数据还有用,业务使用啥的,不能就让它这么没有了. redis当中提供持久化机制, 说白了,将内存的数据 —-> 写入到磁盘. –> 持久化. 1 rdb方式 redis database,…

车载测试系列:CAN协议之远程帧

远程帧(也叫遥控帧):是接收单元向发送单元请求发送具有标识符的数据所用的帧,由 6 个段组成,没有数据段。 当某个节点需要数据时,可以发送远程帧请求另一节点发送相应数据帧。 简单的说:发起方…

示例:推荐一个基于第三方开源控件库DataGridFilter封装的FilterColumnDataGrid,可以像Excel拥有列头筛选器

一、目的:基于第三方开源控件库DataGridFilter封装的FilterColumnDataGrid,可以像Excel拥有列头筛选器,感兴趣的可以去下方链接地址查看开源控件库地址。本控件封装的目的在于将第三方库的皮肤和样式封装到皮肤库中可统一设置样式&#xff0c…

【Python Cookbook】S03E01 对数值进行取整 int() round() math.ceil() math.floor() 函数

目录 问题解决方案int 函数round 函数math.floor() 函数math.ceil() 函数 讨论(1)参数 ndigits 可以为负数(2)不要与格式化混为一谈(3)精度上有需求请选择 decimal 在 Python 中对整数和浮点数进行数学计算…

hdfs java客户端使用,文件上传下载,预览的实现

1. 环境部署 1.1 Linux hadoop集群搭建 Hadoop大数据集群搭建(超详细)_hadoop集群搭建-CSDN博客 1.2 windows hadoop util 安装 Hadoop——Windows系统下Hadoop单机环境搭建_hadoop windows开发环境搭建-CSDN博客 1.3 温馨提示,如果要使用ja…

QT中QSettings的使用系列之三:QSettings操作注册表

1、核心代码 #include "widget.h" #include "ui_widget.h" #include <QSettings> #include <QDebug>Widget::Widget

轮廓系数【python,机器学习,算法】

用途 使用轮廓系数评估聚类质量。聚类质量的评价方法&#xff0c;本质上&#xff0c;都是根据簇内和簇间的效果对比进行衡量。 定义 假设样本集合为 S a 1 , a 2 , a 3 , . . . , a n S{a_1,a_2,a_3,...,a_n} Sa1​,a2​,a3​,...,an​&#xff0c;该样划分成 4 个聚类 G 1…

[数据概念]一分钟弄懂数据治理

“ 数据治理是数据资产化的起点。” 数据资产化的趋势正愈演愈烈。然而&#xff0c;我们必须清醒地认识到&#xff0c;资产化的前提条件是拥有实际的数据资产。那么&#xff0c;这些宝贵的数据资产究竟源自何处呢&#xff1f;答案显而易见&#xff0c;它们源自企业日常运营中积…

任务5.2 掌握DStream基础操作

实战&#xff1a;DStream基础操作 了解DStream编程模型&#xff1a;DStream是Spark Streaming中对实时数据流的抽象&#xff0c;可以看作一系列持续的RDD。DStream可以通过外部数据源获取或通过现有DStream的高级操作获得。 操作本质&#xff1a;DStream上的操作最终会转化为对…

kettle从入门到精通 第七十三课 ETL之kettle kettle调用http分页接口教程

场景&#xff1a;kettle调用http接口获取数据&#xff08;由于数据量比较大&#xff0c;鉴于网络和性能考虑&#xff0c;所以接口是个分页接口&#xff09;。 方案&#xff1a;构造页码list&#xff0c;然后循环调用接口。 1、总体设计 1&#xff09;、初始化分页参数pageNum1…

[MYSQL] 数据库基础

1.什么是数据库 从数据库的名字可以看出,它是用来操作(增删查改....)数据的,事实上也的确如此,通过数据库,我们可以更方便.更高效的来操作.管理数据 以文件形式存储数据的缺点 文件的安全问题文件不利于数据的查询和删除文件不利于存储海量数据操作文件并不方便 为了解决上述问…

深度神经网络DNN概念科普

深度神经网络DNN概念科普 深度神经网络&#xff08;Deep Neural Network, DNN&#xff09;是机器学习领域中一类具有多层结构的神经网络模型&#xff0c;它能够通过学习数据中的复杂模式来解决非线性问题。下面是对深度神经网络的详细解析&#xff1a; 基本组成部分 输入层&…

Day 31:100334. 包含所有1的最小矩形面积Ⅰ

Leetcode 100334. 包含所有1的最小矩形面积Ⅰ 给你一个二维 **二进制 **数组 grid。请你找出一个边在水平方向和竖直方向上、面积 最小 的矩形&#xff0c;并且满足 grid 中所有的 1 都在矩形的内部。 返回这个矩形可能的 **最小 **面积。 确定首次出现 1 的第一行 top&#xf…

VB6.0中的ADO

在VB6.0中&#xff0c;使用ADO&#xff08;ActiveX Data Objects&#xff09;可以进行各种数据库操作&#xff0c;包括连接数据库、执行查询、更新数据等。以下是一些常见的ADO操作应用&#xff1a; 1、连接数据库&#xff1a; Dim conn As ADODB.Connection Set conn New A…