当前位置: 首页 > news >正文

扩散模型原理记录

1 扩散模型原理记录

参考资料:

[1]【54、Probabilistic Diffusion Model概率扩散模型理论与完整PyTorch代码详细解读】 https://www.bilibili.com/video/BV1b541197HX/?share_source=copy_web&vd_source=7771b17ae75bc5131361e81a50a0c871

[2] https://t.bilibili.com/700526762586538024?spm_id_from=333.999.0.0

以下内容为对上述资料的补充理解,理解不对的地方,请多指教。

以下序号与资料中的章节序号一致。

七、目标数据分布的似然函数

扩散模型本质为生成模型,所以最本质的目标是最大化对数据分布真值的预测概率

这里可以假设成一个分类问题,不同的类别表示不同的数据分布,其中包括与数据分布真值相近的和不相近的。模型会预测不同数据分布的概率。我们的目标是,使网络对数据分布真值对应的类别的预测概率最高。

用公式表示: m a x p θ ( x 0 ) max~p_{\theta}(x_0) max pθ(x0),其中, p θ ( x 0 ) p_{\theta}(x_0) pθ(x0)为模型对数据分布真值预测的概率分布(注意模型不只是网络,在扩散模型里,网络是模型的一部分,模型还包括对网络输出结果的后处理,因此网络输出值可能多种多样)。

但是 p θ ( x 0 ) p_{\theta}(x_0) pθ(x0)范围是 0 − 1 0-1 01,直接最大化不好计算,因此一般转化为最小化对数似然函数 − l o g p θ ( x 0 ) -log~p_{\theta}(x_0) log pθ(x0)。直接最小化 − l o g p θ ( x 0 ) -log~p_{\theta}(x_0) log pθ(x0)也不好求,所以扩散模型转而最小化 − l o g p θ ( x 0 ) -log~p_{\theta}(x_0) log pθ(x0)上界,这个上界就是 L V L B L_{VLB} LVLB(需要乘 q ( x 0 ) q(x_0) q(x0))。

下面的目标就是最小化 L V L B L_{VLB} LVLB

L V L B L_{VLB} LVLB最终转化为 L V L B = E q [ L T + L t − 1 ] L_{VLB}=E_q[L_T+L_{t-1}] LVLB=Eq[LT+Lt1] L 0 L_0 L0 L t − 1 L_{t-1} Lt1合并到一起了),其中, L T L_T LT L t − 1 L_{t-1} Lt1都是两个高斯分布的KL散度,结果只与两个高斯分布的均值和方差有关。 L T L_T LT中两个分布的均值和方差都是已知(在 x 0 x_0 x0分布已知的情况下已知)且不可优化的,因此直接去除。下面计算 L t − 1 L_{t-1} Lt1,如下式(方差是设定的固定值,所以省略了):

其中, μ ~ ( x t , x 0 ) \tilde\mu(x_t, x_0) μ~(xt,x0) q ( x t − 1 ∣ x t , x 0 ) q(x_{t-1}|x_t, x_0) q(xt1xt,x0)高斯分布的均值, μ θ ( x t , t ) \mu_{\theta}(x_t,t) μθ(xt,t) p θ ( x t − 1 ∣ x t ) p_{\theta}(x_{t-1}|x_t) pθ(xt1xt)高斯分布的均值。

p θ ( x t − 1 ∣ x t ) p_{\theta}(x_{t-1}|x_t) pθ(xt1xt)是模型的预测分布,也可以写成 p θ ( x t − 1 ∣ x t , t ) p_{\theta}(x_{t-1}|x_t, t) pθ(xt1xt,t)

对上式展开,其中 q ( x t − 1 ∣ x t , x 0 ) q(x_{t-1}|x_t, x_0) q(xt1xt,x0)的均值 μ ~ ( x t , x 0 ) \tilde\mu(x_t, x_0) μ~(xt,x0)已经在前面计算出来了,直接代入:

上式中 ϵ \epsilon ϵ与上文的 z z z一样,都是加的噪声。下面的问题是,我们要最小化 L t − 1 − C L_{t-1}-C Lt1C,网络在模型中扮演什么角色?可选择的是:

  • 预测 μ θ ( x t , t ) \mu_{\theta}(x_t,t) μθ(xt,t),使其逼近 μ ~ ( x t , x 0 ) \tilde\mu(x_t, x_0) μ~(xt,x0),即损失是他俩的差;
  • 预测 x 0 ′ x_0' x0,使其直接逼近 x 0 x_0 x0,损失是他俩的差;
  • 预测 ϵ \epsilon ϵ,这样对应的 x 0 ′ x_0' x0就可以一步步地推出来(只是可以这么干,但是这样的话就与上个选择一样了,直接一步到位其实效果不好),这样 p θ ( x t − 1 ∣ x t , t ) p_{\theta}(x_{t-1}|x_t,t) pθ(xt1xt,t)分布的均值 μ θ ( x t , t ) \mu_{\theta}(x_t,t) μθ(xt,t)就与 q ( x t − 1 ∣ x t , x 0 ′ ) q(x_{t-1}|x_t,x_0') q(xt1xt,x0)的均值公式一样,即下式。这样就可以逼近 μ ~ ( x t , x 0 ) \tilde\mu(x_t, x_0) μ~(xt,x0),即损失是他俩的差(可以简化计算);

扩散模型的作者选择用网络来预测 ϵ \epsilon ϵ,这样, μ θ ( x t , t ) \mu_{\theta}(x_t,t) μθ(xt,t)的计算公式如下:

再简化 L t − 1 − C L_{t-1}-C Lt1C,如下:

到这里,网络的损失就确定了,即最小化预测的噪声实际添加的噪声的差,网络输入是时刻t时刻t对应的xt

有了网络输出的噪声后,就可以通过 p θ ( x t − 1 ∣ x t , t ) p_{\theta}(x_{t-1}|x_t,t) pθ(xt1xt,t)分布的均值 μ θ ( x t , t ) \mu_{\theta}(x_t,t) μθ(xt,t)和方差(方差是预定义的 β \beta β)来采样出 x t − 1 x_{t-1} xt1,训练过程和反扩散过程的伪代码如下:

反扩散过程用到了重参数化采样,上图中的 σ t \sigma_t σt就是标准差 β t \sqrt{\beta_t} βt

相关文章:

扩散模型原理记录

1 扩散模型原理记录 参考资料: [1]【54、Probabilistic Diffusion Model概率扩散模型理论与完整PyTorch代码详细解读】 https://www.bilibili.com/video/BV1b541197HX/?share_sourcecopy_web&vd_source7771b17ae75bc5131361e81a50a0c871 [2] https://t.bili…...

Metasploit高级技术【第九章】

预计更新第一章 Metasploit的使用和配置 1.1 安装和配置Metasploit 1.2 Metasploit的基础命令和选项 1.3 高级选项和配置 第二章 渗透测试的漏洞利用和攻击方法 1.1 渗透测试中常见的漏洞类型和利用方法 1.2 Metasploit的漏洞利用模块和选项 1.3 模块编写和自定义 第三章 Met…...

RK3568平台开发系列讲解(调试篇)IS_ERR函数的使用

🚀返回专栏总目录 文章目录 一、IS_ERR函数用法二、IS_ERR函数三、内核错误码沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将介绍 IS_ERR 函数的使用。 一、IS_ERR函数用法 先看下用法: 二、IS_ERR函数 对于任何一个指针来说,必然存在三种情况: 一种是合…...

TouchGFX界面开发 | TouchGFX软件安装

TouchGFX软件安装 TouchGFX和STemWin类似,都是一个GUI框架,可以方便的在STM32 Cortex-M4 以及更高级别的STM32芯片上创建GUI应用程序。 本文中的TouchGFX软件安装,是基于已经安装有STM32CubeMX Keil MDK-ARM开发环境的情况下进行的&#x…...

使用 IDEA 远程 Debug 调试

背景 有时候我们需要进行远程的debug,本文研究如何进行远程debug,以及使用 IDEA 远程debug的过程中的细节。看完可以解决你的一些疑惑。 配置 远程debug的服务,以springboot微服务为例。首先,启动springboot需要加上特定的参数。…...

红黑树和平衡二叉树的优缺点及应用场景

红黑树和平衡二叉树都是为了解决二叉搜索树的缺陷而提出的自平衡二叉树结构。它们的优缺点和应用场景如下: 红黑树: 优点: 时间复杂度为O(logN),可以快速查找、插入和删除。 红黑树具有良好的平衡性,树的高度保持较小,因此查找效率较高。 缺点: 实现比较复杂,需要遵守红黑树的…...

软文推广:真实有效提升软文排名与收录的三大方法!

软文是一种具有良好传播效果的文体,可以通过在搜索引擎中排名靠前的方式,为品牌或企业带来更多曝光。但是,如何让软文在搜索引擎中得到更好的收录和排名呢?在本文中,我们将讨论如何提升软文的收录和排名,以…...

SElinux的介绍及配置

SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux历史上最杰出的新安全子系统 SELinux安全增强型Linux系统,是Linux内核子系统,旨在最大限度的减少服务进程对文件、端口等资源…...

vscode-python环境配置

vscode-python环境配置 1、环境基础 下载vscode找到python插件并安装安装python环境并配置环境变量 2、选择python解释器 尝试执行了一下,直接运行py文件,会使用c的调试工具,需要告诉vscode哪些是python Ctrl Shift P打开命令面板 执行…...

问卷调查样本量的确定方法

我们在进行问卷调查的时候,问卷的收集数量是重要的流程之一。问卷数量取决于几个因素,包括研究的目的和研究的类型。接下来,我们就聊一聊怎么确定所需的调查问卷数量。 1、确定研究目标。 确定所需问卷数量的第一步是明确研究目标。这一步是…...

ios客户端学习笔记(三):学习Swift的设计模式

设计模式是指在软件开发中常用的一些解决问题的方法和思想,它可以帮助你更好地组织代码和提高代码的可维护性。你需要学习常见的设计模式,如MVC、MVVM、单例模式、工厂模式等,在开发应用程序时应用它们。 当你学习常见的设计模式时&#xff…...

406. 根据身高重建队列

假设有打乱顺序的一群人站成一个队列,数组 people 表示队列中一些人的属性(不一定按顺序)。每个 people[i] [hi, ki] 表示第 i 个人的身高为 hi ,前面 正好 有 ki 个身高大于或等于 hi 的人。 请你重新构造并返回输入数组 peopl…...

ESP32使用ESP-NOW协议实现一对多通信和MAC地址存储

目录 介绍ESP-NOW 协议概述在 ESP32 上配置 ESP-NOW使用 ESP-NOW 进行一对多通信在 ESP32 上存储发件人的 MAC 地址代码结论 介绍 ESP32 是一款功能强大的 Wi-Fi 和蓝牙双模模块,可用于使用 ESP-NOW 协议实现低功耗、高效率的一对多通信。本文将介绍如何使用ESP-NO…...

Qt 学生信息数据库管理

1 添加样式表 我们采用了样式表 通过添加Qt resources文件 添加前缀 添加文件,将我们的图标进行添加 2 拖动部件 用到的部件 Label 标签Pushbutton 按钮table view 视图LineEdit 输入框 3 程序编写 1 配置sql环境 在 pro文件中 添加 连接数据库跟访问数据…...

相量的加减乘除计算

相量的加减乘除计算 矢量是物理学中的术语,是指具有大小(magnitude)和方向的量。如速度、加速度、力等等就是这样的量。向量是数学中的术语,也称为欧几里得向量、几何向量、矢量。与向量对应的量叫做数量,在物理学中称…...

JavaScript 代码整洁之道

文章目录 概述篇变量篇函数篇注释篇异常处理篇复杂判断函数篇重构篇代码风格常量大写先声明后调用注释 参考资料 概述篇 书写能让人读懂的代码使用英语编写代码团队协作 制定通用的规则,依靠工具让团队的代码风格保持统一,要让代码看起来是由一个人编写…...

socket 及 字节序转换(嵌入式学习)

socket 及 字节序转换 socket简介Socket为什么需要Socket?socket类型Socket通信模型 字节序主机字节序到网络字节序网络字节序到主机字节序IP地址转换 socket简介 1、1982 - Berkeley Software Distributions 操作系统引入了socket作为本地进程之间通信的接口 2、1…...

Java之~ Aop自定义注解日志

大纲步骤: 一,创建需要记录的日志表,创建基础方法。(省略) 二,在需要加记录日志的方法上加Aop注解1,创建一个注解类,Aop中定义一个注解import java.lang.annotation.*; /*** http 请…...

编译原理个人作业--第四章

构造FIRST和FOLLOW的大白话网站 第四章 1 考虑文法 G 1 G_1 G1​: S → a ∣ ∧ ∣ ( T ) T → T , S ∣ S S \rightarrow a|\land|(T) \\ T\rightarrow T,S|S S→a∣∧∣(T)T→T,S∣S 先复习左递归如何消除 原书p69页 类似于 P → P a ∣ b P\rightarrow Pa|b P→Pa∣b的…...

学习笔记:数据库简介

数据库是一系列可以方便的访问和修改的数据的集合。 所有数据库管理系统的主要工作都是可靠的存储数据并使其对用户可用。 目前最常见的数据库模型主要是两种,即关系型数据库和非关系型数据库。 一、按数据的组织方式 数据从组织的角度上,主要分为结…...

利用ngx_stream_return_module构建简易 TCP/UDP 响应网关

一、模块概述 ngx_stream_return_module 提供了一个极简的指令&#xff1a; return <value>;在收到客户端连接后&#xff0c;立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量&#xff08;如 $time_iso8601、$remote_addr 等&#xff09;&a…...

椭圆曲线密码学(ECC)

一、ECC算法概述 椭圆曲线密码学&#xff08;Elliptic Curve Cryptography&#xff09;是基于椭圆曲线数学理论的公钥密码系统&#xff0c;由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA&#xff0c;ECC在相同安全强度下密钥更短&#xff08;256位ECC ≈ 3072位RSA…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?

论文网址&#xff1a;pdf 英文是纯手打的&#xff01;论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误&#xff0c;若有发现欢迎评论指正&#xff01;文章偏向于笔记&#xff0c;谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...

linux 错误码总结

1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...

C++ 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

代码规范和架构【立芯理论一】(2025.06.08)

1、代码规范的目标 代码简洁精炼、美观&#xff0c;可持续性好高效率高复用&#xff0c;可移植性好高内聚&#xff0c;低耦合没有冗余规范性&#xff0c;代码有规可循&#xff0c;可以看出自己当时的思考过程特殊排版&#xff0c;特殊语法&#xff0c;特殊指令&#xff0c;必须…...

WebRTC从入门到实践 - 零基础教程

WebRTC从入门到实践 - 零基础教程 目录 WebRTC简介 基础概念 工作原理 开发环境搭建 基础实践 三个实战案例 常见问题解答 1. WebRTC简介 1.1 什么是WebRTC&#xff1f; WebRTC&#xff08;Web Real-Time Communication&#xff09;是一个支持网页浏览器进行实时语音…...

MySQL 主从同步异常处理

阅读原文&#xff1a;https://www.xiaozaoshu.top/articles/mysql-m-s-update-pk MySQL 做双主&#xff0c;遇到的这个错误&#xff1a; Could not execute Update_rows event on table ... Error_code: 1032是 MySQL 主从复制时的经典错误之一&#xff0c;通常表示&#xff…...

GraphQL 实战篇:Apollo Client 配置与缓存

GraphQL 实战篇&#xff1a;Apollo Client 配置与缓存 上一篇&#xff1a;GraphQL 入门篇&#xff1a;基础查询语法 依旧和上一篇的笔记一样&#xff0c;主实操&#xff0c;没啥过多的细节讲解&#xff0c;代码具体在&#xff1a; https://github.com/GoldenaArcher/graphql…...

热烈祝贺埃文科技正式加入可信数据空间发展联盟

2025年4月29日&#xff0c;在福州举办的第八届数字中国建设峰会“可信数据空间分论坛”上&#xff0c;可信数据空间发展联盟正式宣告成立。国家数据局党组书记、局长刘烈宏出席并致辞&#xff0c;强调该联盟是推进全国一体化数据市场建设的关键抓手。 郑州埃文科技有限公司&am…...