【经典论文阅读】DDPM(Diffusion)

DDPM(Diffusion)

denoising diffusion probabilistic models

【生成模型】DDPM概率扩散模型(原理+代码)-CSDN博客

【DDPM】一文看懂去噪扩散概率模型,公式讲解、代码实现与最全详解(一)-CSDN博客

【DDPM】一文看懂去噪扩散概率模型,公式讲解、代码实现与最全详解(二)_扩散模型ddpm如何测试-CSDN博客

摘要

高质量图像合成

a novel connection between diffusion probabilistic models (扩散概率模型) and denoising score (去噪分数) matching with Langevin dynamics (朗之万动力学)

渐进的有损解压方案 a progressive lossy decompression scheme ==> 自回归解码的推广(autoregressive decoding)

【1】引言

生成式模型:GANs、autoregressive模型、flow模型、VAEs、

扩散模型是参数化的马尔科夫链,通过变分推断进行训练,在有限时间内生成与数据匹配的样本

我们模型中的无损编码长度,大部分都被用于描述难以察觉的图像细节

扩散模型的采样过程是一种渐进式解码,类似于自回归解码的比特排序,极大地拓宽了自回归模型的通常可能性

X0到XT:前向过程,加噪

XT到X0:逆向过程,减噪

【2】背景

正态分布 Normal Distribution

数学公式:

扩散模型是隐变量模型:

x1,…,xT 是与数据 x0∼q(x0) 具有相同维度的隐变量

reverse process

联合分布

起始:

马尔可夫过程:

forward/diffusion process

根据方差调度 β1,…,βT,逐步向数据添加高斯噪声

马尔可夫过程:

训练 ==> 优化负对数似然的常规变分界限

前向过程的方差βT,由重参数化方法学习(reparameterization),或作为超参数保持常数

反向过程的表现力,部分通过选择高斯条件来保证

前向过程允许在任意时间步 t,以封闭形式进行采样:

训练 ==> 用随机梯度下降法优化 L 的随机项

利用 KL 散度,将与前向过程的后验分布进行比较,重写 L:

KL 散度是一种不对称统计距离度量,用于衡量一个概率分布 P 与另外一个概率分布 Q 的差异程度。

前向过程的后验分布(forward process posteriors)在条件 x_0 下是可处理:

其他内容

对两个概率分布进行卷积操作,实质上是计算这两个分布的所有可能的组合情况,并得到这些组合情况得到概率分布,即:叠加后的概率分布

  • 蓝色曲线:正态分布1的概率密度

  • 黄色曲线:正态分布2对称翻转后的概率密度

  • 红色曲线:两个分布在当前位置的概率密度的乘积

  • 绿色曲线:两个分布叠加后的概率密度

两个正态分布的卷积,是一个新的正态分布:

【3】扩散模型和去噪自动编码器

3.1 forward process L_T

(1) βT,固定为常数

(2) 近似后验q,没有可学习的参数

==>L_T 在训练中是一个常数

前向过程定义的内容

1:后一时刻与前一时刻的关系

2:从原图X0到加噪后任意时间步图像Xt的关系

3.2 reverse process and L_1:T-1

可以看做拉近 2 个分布的距离

第一个分布:高斯分布

第一个分布的均值和方差:

第二个分布:网络期望拟合的目标分布,也是高斯分布

上述两个分布的方差均是常数,和优化无关

优化目标 ==> Min两个分布均值的二范数

训练反向过程的均值函数近似器 μθ来预测

3.3 data scaling, reverse process decoder, and L_0

将反向过程的最后一项设定为一个基于高斯分布的独立离散解码器

  • D 是数据的维度

  • 上标 i 表示提取某一维度的数据

训练 & 测试伪代码

训练过程:

  • for ... in range(iterations)

  • 从数据集里面取出一个x0

  • 从均匀分布(1, T)里面取一个数

  • 从标准高斯分布,采样1个噪声ϵ

  • 梯度下降,最小化二范数损失

  • 训练到收敛

采样过程:

  • 从标准高斯分布,采样1个噪声xT

  • 从时间步T正向扩散到时间步1

  • 如果时间步大于1,则从标准高斯分布,采样1个噪声z;否则z = 0

  • 根据高斯分布,计算每个时间步t的噪声图

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

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

相关文章

RPC设计--TcpConnection和TcpServer

TcpConnection 对于服务端来说用来封装clientfd,对于client端来说,就是封装connect函数返回后的fd. 处理此fd上的读写,因此需要为其提供read\write方法,其方法内部调用系统的read\write函数,从fd中读写数据。 当Fd上…

重拾Java:穿越最具多功能性的编程语言之旅

你知道Java是世界上最广泛使用的编程语言之一吗?无论是用于Web应用、企业系统,还是Android开发,Java始终是各级开发者的可靠选择。 在完成SESI SENAI的系统开发技术培训后,我决定重新学习这门语言。现在,我将其与我正…

Swagger四种定义UI界面

以下四种UI必须基于springfox-boot-starter <dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter</artifactId><version>3.0.0</version> </dependency> 创建swagger相关的配置类如下: pack…

Kafka 常见面试题深度解析

一、基础概念 1. 请简要介绍 Kafka 的基本架构。 Kafka 主要由生产者&#xff08;Producer&#xff09;、消费者&#xff08;Consumer&#xff09;、代理&#xff08;Broker&#xff09;、主题&#xff08;Topic&#xff09;和分区&#xff08;Partition&#xff09;等组成。…

高级java每日一道面试题-2024年12月08日-JVM篇-什么是类加载器?

如果有遗漏,评论区告诉我进行补充 面试官: 什么是类加载器? 我回答: 在Java高级面试中&#xff0c;类加载器&#xff08;ClassLoader&#xff09;是一个重要的概念&#xff0c;它涉及到Java类的加载和初始化机制。以下是对类加载器的详细解释&#xff1a; 定义与作用 类加…

MySQL--用户权限

1.使用root用户登录MySQL客户端&#xff0c;创建一个名为userl的用户&#xff0c;初始密码为123456;创建一个名为user2的用户&#xff0c;无初始密码。然后&#xff0c;分别使用uesr1、user2登录MySQL 客户端。 创建两个用户 使用user1登录 使用user2登录 2.使用root用户登录&a…

LabVIEW断路器检测系统

随着电网技术的快速发展&#xff0c;对电力系统的可靠性和安全性要求不断提高&#xff0c;塑壳断路器作为关键的保护设备&#xff0c;其出厂前的检测非常重要。开发了一种基于LabVIEW软件平台开发的塑壳断路器智能脱扣器检测系统&#xff0c;该系统能够有效提高检测的自动化水平…

Python实现Excel中数据条显示

Python中要实现百分比数据条的显示&#xff0c;可以使用pandas库&#xff0c;pandas图表样式的设置与Excel中的条件格式设置比较类似&#xff0c;比如Excel里常用的数据条的用法&#xff0c;在pandas中使用代码进行高亮显示&#xff0c;用来突出重点数据&#xff0c;下面一起来…

使用Vue3+Echarts实现加载中国地图,点击省份地图下钻(完整教程)

一. 前言 在众多 ECharts 图表类型中&#xff0c;开发者始终绕不开的有各种各样的地图开发&#xff0c;关于地图开发&#xff0c;可能比其他图表相对繁琐一些&#xff0c;其实说简单也简单&#xff0c;说复杂也复杂&#xff0c;其中不乏有层级地图、3D 地图等&#xff0c;感觉…

腾讯混元部署笔记 HunyuanVideo

目录 Download Text Encoder attention 默认改为了torch flash_atten安装 GitHub - Tencent/HunyuanVideo: HunyuanVideo: A Systematic Framework For Large Video Generation Model Training Download Text Encoder HunyuanVideo uses an MLLM model and a CLIP model as …

【机器学习】——windows下安装anaconda并在vscode上进行配置

一、安装anaconda 1.进入清华的镜像网站&#xff0c;下载自己电脑对应的anaconda版本。网站&#xff1a;https://repo.anaconda.com/archive/ 这里我下载的版本是anaconda3-2024.10-1-Windows-x86-64 2.下载完毕后开始安装anaconda 3.配置anaconda环境变量 在设置中找到编…

如何查看电脑生产日期

查看电脑的生产日期通常可以通过以下方法实现&#xff0c;具体方式取决于操作系统和电脑类型&#xff1a; 方法 1&#xff1a;检查电脑 BIOS 生产日期通常记录在 BIOS 中。可以通过以下步骤查看&#xff1a; 重启电脑并进入 BIOS&#xff1a; 启动时按下特定的键&#xff08;…

《蓝桥杯比赛规划》

一、比赛简介 蓝桥杯全国软件和信息技术专业人才大赛是一项具有较高影响力的编程竞赛&#xff0c;旨在促进软件和信息技术领域专业技术人才的培养&#xff0c;提升高校毕业生的就业竞争力。比赛涵盖了多个编程语言和专业方向&#xff0c;包括 C/C、Java、Python 等。 二、目标…

数据仓库和数据建模中,维度表、度量表、事实表和大宽表是什么

在数据仓库和数据建模中&#xff0c;维度表、度量表、事实表和大宽表是常用的术语&#xff0c;它们各自扮演着不同的角色。下面是对每个概念的详细解释。 1. 维度表 (Dimension Table) 定义&#xff1a;维度表是用来存储描述性信息的表&#xff0c;通常包含对业务实体的属性。…

总结FastDFS的面试题

目录 一&#xff1a;FastDFS的基础知识 1&#xff1a;定义 2&#xff1a;FastDFS的优点 3&#xff1a;tracker server 4&#xff1a;storage server 二&#xff1a;FastDFS的存储原理 1&#xff1a;小文件存储的问题 2&#xff1a;小文件合并存储 3&#xff1a;文件上…

Leetcode打卡:骑士在棋盘上的概率

执行结果&#xff1a;通过 题目&#xff1a;骑士在棋盘上的概率 在一个 n x n 的国际象棋棋盘上&#xff0c;一个骑士从单元格 (row, column) 开始&#xff0c;并尝试进行 k 次移动。行和列是 从 0 开始 的&#xff0c;所以左上单元格是 (0,0) &#xff0c;右下单元格是 (n - …

E卷-分割数组的最大差值

分割数组的最大差值 问题描述 给定一个由若干整数组成的数组 n u m s nums nums,可以在数组内的任意位置进行分割,将该数组分割成两个非空子数组(即左数组和右数组)。分别对子数组求和得到两个值,然后计算这两个值的差值。请输出所有分割方案中,差值的最大值。 输入格…

Oceanbase离线集群部署

准备工作 两台服务器 服务器的配置参照官网要求来 服务器名配置服务器IPoceanbase116g8h192.168.10.239oceanbase216g8h192.168.10.239 这里选oceanbase1作为 obd机器 oceanbase安装包 选择社区版本的时候自己系统的安装包 ntp时间同步rpm包 联网机器下载所需的软件包 …

Python爬虫实战:抓取拼多多商品详情数据(基于pdd.item_get接口)

在当前的电商市场中&#xff0c;拼多多以其独特的拼团模式和优惠价格吸引了大量用户&#xff0c;成为继淘宝、京东之后的又一大电商平台。对于数据分析和市场研究者来说&#xff0c;获取拼多多的商品详情数据显得尤为重要。本文将介绍如何使用Python爬虫技术&#xff0c;通过调…

漫画之家Spring Boot:漫画资源的跨设备访问

摘 要 随着信息技术和网络技术的飞速发展&#xff0c;人类已进入全新信息化时代&#xff0c;传统管理技术已无法高效&#xff0c;便捷地管理信息。为了迎合时代需求&#xff0c;优化管理效率&#xff0c;各种各样的管理系统应运而生&#xff0c;各行各业相继进入信息管理时代&a…