当前位置: 首页 > 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的…...

学习笔记:数据库简介

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

2026前端面试题

1.vue的通信方式Vue组件通信方式根据组件间的关系&#xff08;父子、兄弟、跨级、任意组件&#xff09;可分为多种方案。一、父子组件通信props&#xff08;父-子&#xff09;父组件通过属性向子组件传递数据&#xff0c;子组件通过defineProps接收<!-- 父组件 --> <C…...

TVBoxOSC:电视盒子全能播放解决方案终极指南

TVBoxOSC&#xff1a;电视盒子全能播放解决方案终极指南 【免费下载链接】TVBoxOSC TVBoxOSC - 一个基于第三方项目的代码库&#xff0c;用于电视盒子的控制和管理。 项目地址: https://gitcode.com/GitHub_Trending/tv/TVBoxOSC 你是否曾经为电视盒子播放视频时遇到格式…...

Czkawka:智能存储管理的5个核心解决方案

Czkawka&#xff1a;智能存储管理的5个核心解决方案 【免费下载链接】czkawka Multi functional app to find duplicates, empty folders, similar images etc. 项目地址: https://gitcode.com/GitHub_Trending/cz/czkawka 1.0 现象剖析&#xff1a;数字存储管理的现实困…...

QT 基于qcustomplot实现热力图(四):动态数据流与交互优化实战

1. 动态数据流的核心实现策略 在实时监控系统中&#xff0c;热力图的数据往往需要持续更新。我遇到过不少开发者直接粗暴地全量刷新整个数据集&#xff0c;结果界面卡顿得像老式幻灯片。这里分享三种经过实战检验的动态更新方案&#xff0c;每种都有其适用场景。 增量更新法最适…...

3种Cookie管理方案对比:为什么本地导出才是开发者最佳选择?

3种Cookie管理方案对比&#xff1a;为什么本地导出才是开发者最佳选择&#xff1f; 【免费下载链接】Get-cookies.txt-LOCALLY Get cookies.txt, NEVER send information outside. 项目地址: https://gitcode.com/gh_mirrors/ge/Get-cookies.txt-LOCALLY 在Web开发和自动…...

springboot+vue基于web的演唱会音乐会购票管理系统设计系统

目录同行可拿货,招校园代理 ,本人源头供货商系统功能模块分析技术架构设计核心业务流程安全防护措施项目技术支持源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作同行可拿货,招校园代理 ,本人源头供货商 系统功能模块分析 用户模块 注册登…...

软考高项“上岸”指南:三位宝藏老师,专治你的备考焦虑

备战软考高项&#xff0c;尤其是面对2026年可能更加灵活的考情&#xff0c;选择一位对的引路人至关重要。今天&#xff0c;就为大家深度介绍软考老金团队的三位王牌导师——尹老师、金老师、秦老师。他们风格互补&#xff0c;却有着共同的目标&#xff1a;陪你稳稳上岸。尹老师…...

忍者像素绘卷镜像免配置部署:自动检测GPU型号并加载最优配置

忍者像素绘卷镜像免配置部署&#xff1a;自动检测GPU型号并加载最优配置 1. 产品概览&#xff1a;打破次元壁的像素艺术工作站 忍者像素绘卷是一款基于Z-Image-Turbo深度优化的图像生成工作站&#xff0c;专为像素艺术创作而设计。它将传统漫画创作与现代AI技术相结合&#x…...

Kandinsky-5.0-I2V-Lite-5s效果展示:建筑图纸→镜头平移漫游视频生成案例

Kandinsky-5.0-I2V-Lite-5s效果展示&#xff1a;建筑图纸→镜头平移漫游视频生成案例 1. 惊艳效果预览 Kandinsky-5.0-I2V-Lite-5s带来的建筑漫游视频生成效果令人印象深刻。想象一下&#xff0c;你有一张静态的建筑设计图纸&#xff0c;通过这个模型&#xff0c;只需简单描述…...

PDF-Extract-Kit-1.0保姆级部署教程:4090D单卡一键启动Jupyter实战

PDF-Extract-Kit-1.0保姆级部署教程&#xff1a;4090D单卡一键启动Jupyter实战 你是不是经常需要从PDF里提取表格、公式或者分析文档布局&#xff1f;手动操作不仅费时费力&#xff0c;还容易出错。今天&#xff0c;我要给你介绍一个神器——PDF-Extract-Kit-1.0。这是一个功能…...