论文阅读的附录(七):Understanding Diffusion Models: A Unified Perspective(二):公式46的推导

Understanding Diffusion Models: A Unified Perspective(二):公式46的推导

文章概括

引用:

@article{luo2022understanding,title={Understanding diffusion models: A unified perspective},author={Luo, Calvin},journal={arXiv preprint arXiv:2208.11970},year={2022}
}
Luo, C., 2022. Understanding diffusion models: A unified perspective. arXiv preprint arXiv:2208.11970.

原文: https://arxiv.org/abs/2208.11970
代码、数据和视频:https://arxiv.org/abs/2208.11970


文章解析原文:
论文笔记(六十三)Understanding Diffusion Models: A Unified Perspective(二)


要推导的公式

目标是推导公式:
q ( x t ∣ x t − 1 , x 0 ) = q ( x t − 1 ∣ x t , x 0 ) q ( x t ∣ x 0 ) q ( x t − 1 ∣ x 0 ) . (46) q(x_t|x_{t-1}, x_0) = \frac{q(x_{t-1}|x_t, x_0) q(x_t|x_0)}{q(x_{t-1}|x_0)}. \tag{46} q(xtxt1,x0)=q(xt1x0)q(xt1xt,x0)q(xtx0).(46)


1. 条件概率的定义

条件概率的基本定义为:
q ( A ∣ B ) = q ( A ∩ B ) q ( B ) , 其中  q ( B ) > 0. q(A|B) = \frac{q(A \cap B)}{q(B)}, \quad \text{其中 } q(B) > 0. q(AB)=q(B)q(AB),其中 q(B)>0.
对于多个条件的情况,比如 ( q(A|B, C) ),可以扩展为:
q ( A ∣ B , C ) = q ( A , B , C ) q ( B , C ) . q(A|B, C) = \frac{q(A, B, C)}{q(B, C)}. q(AB,C)=q(B,C)q(A,B,C).

在我们的目标公式中, q ( x t ∣ x t − 1 , x 0 ) q(x_t|x_{t-1}, x_0) q(xtxt1,x0) 表示在 x t − 1 x_{t-1} xt1 x 0 x_0 x0 已知的条件下, x t x_t xt 的分布。因此:
q ( x t ∣ x t − 1 , x 0 ) = q ( x t , x t − 1 , x 0 ) q ( x t − 1 , x 0 ) . (1) q(x_t|x_{t-1}, x_0) = \frac{q(x_t, x_{t-1}, x_0)}{q(x_{t-1}, x_0)}. \tag{1} q(xtxt1,x0)=q(xt1,x0)q(xt,xt1,x0).(1)


2. 联合分布的分解

我们需要分解联合分布 q ( x t , x t − 1 , x 0 ) q(x_t, x_{t-1}, x_0) q(xt,xt1,x0)。以下是基础逻辑:

2.1 联合分布的定义

联合分布 q ( x t , x t − 1 , x 0 ) q(x_t, x_{t-1}, x_0) q(xt,xt1,x0) 表示 x t , x t − 1 , x 0 x_t, x_{t-1}, x_0 xt,xt1,x0 同时发生的概率。根据 概率链式法则(Chain Rule of Probability),联合分布可以逐步分解为条件概率的乘积:
q ( x t , x t − 1 , x 0 ) = q ( x t − 1 ∣ x t , x 0 ) q ( x t ∣ x 0 ) . (2) q(x_t, x_{t-1}, x_0) = q(x_{t-1}|x_t, x_0) q(x_t|x_0). \tag{2} q(xt,xt1,x0)=q(xt1xt,x0)q(xtx0).(2)

这一步基于条件概率的定义:

  • q ( x t − 1 ∣ x t , x 0 ) q(x_{t-1}|x_t, x_0) q(xt1xt,x0):在 x t x_t xt x 0 x_0 x0 已知的条件下, x t − 1 x_{t-1} xt1 的分布。
  • q ( x t ∣ x 0 ) q(x_t|x_0) q(xtx0):在 x 0 x_0 x0 已知的情况下, x t x_t xt 的边际分布。

2.2 为什么可以这样分解?

根据概率论的链式规则:
q ( A , B , C ) = q ( A ∣ B , C ) q ( B , C ) . q(A, B, C) = q(A|B, C) q(B, C). q(A,B,C)=q(AB,C)q(B,C).
在这里,设 A = x t − 1 A = x_{t-1} A=xt1 B = x t B = x_t B=xt C = x 0 C = x_0 C=x0,我们可以写成:
q ( x t − 1 , x t , x 0 ) = q ( x t − 1 ∣ x t , x 0 ) q ( x t , x 0 ) . q(x_{t-1}, x_t, x_0) = q(x_{t-1}|x_t, x_0) q(x_t, x_0). q(xt1,xt,x0)=q(xt1xt,x0)q(xt,x0).

接着,再对 q ( x t , x 0 ) q(x_t, x_0) q(xt,x0) 应用链式规则:
q ( x t , x 0 ) = q ( x t ∣ x 0 ) q ( x 0 ) . q(x_t, x_0) = q(x_t|x_0) q(x_0). q(xt,x0)=q(xtx0)q(x0).

因此:
q ( x t − 1 , x t , x 0 ) = q ( x t − 1 ∣ x t , x 0 ) q ( x t ∣ x 0 ) q ( x 0 ) . q(x_{t-1}, x_t, x_0) = q(x_{t-1}|x_t, x_0) q(x_t|x_0) q(x_0). q(xt1,xt,x0)=q(xt1xt,x0)q(xtx0)q(x0).

在本问题中, q ( x 0 ) q(x_0) q(x0) 是常量,不影响条件概率的形式,所以我们可以简化为:
q ( x t , x t − 1 , x 0 ) = q ( x t − 1 ∣ x t , x 0 ) q ( x t ∣ x 0 ) . q(x_t, x_{t-1}, x_0) = q(x_{t-1}|x_t, x_0) q(x_t|x_0). q(xt,xt1,x0)=q(xt1xt,x0)q(xtx0).

2.3 具体意义

  • 分解的直观意义:假设我们已经知道 x t x_t xt 和全局变量 x 0 x_0 x0 的值,那么我们可以首先用 q ( x t − 1 ∣ x t , x 0 ) q(x_{t-1}|x_t, x_0) q(xt1xt,x0) 表示 x t − 1 x_{t-1} xt1 的条件概率,再用 q ( x t ∣ x 0 ) q(x_t|x_0) q(xtx0) 表示 x t x_t xt 的边际分布。

  • 为什么分解成这两项?

    • 这是因为 q ( x t ∣ x 0 ) q(x_t|x_0) q(xtx0) 表示的是全局信息(全局分布)。
    • q ( x t − 1 ∣ x t , x 0 ) q(x_{t-1}|x_t, x_0) q(xt1xt,x0) 捕捉的是局部的条件关系。

3. 分母的分解:边际化规则

分母 q ( x t − 1 , x 0 ) q(x_{t-1}, x_0) q(xt1,x0) x t − 1 x_{t-1} xt1 x 0 x_0 x0 的联合分布,可以通过边际化 x t x_t xt 得到:
q ( x t − 1 , x 0 ) = ∫ q ( x t , x t − 1 , x 0 ) d x t . (4) q(x_{t-1}, x_0) = \int q(x_t, x_{t-1}, x_0) dx_t. \tag{4} q(xt1,x0)=q(xt,xt1,x0)dxt.(4)

将公式 (2) 中的分解 q ( x t , x t − 1 , x 0 ) = q ( x t − 1 ∣ x t , x 0 ) q ( x t ∣ x 0 ) q(x_t, x_{t-1}, x_0) = q(x_{t-1}|x_t, x_0) q(x_t|x_0) q(xt,xt1,x0)=q(xt1xt,x0)q(xtx0) 代入公式 (4):
q ( x t − 1 , x 0 ) = ∫ q ( x t − 1 ∣ x t , x 0 ) q ( x t ∣ x 0 ) d x t . (5) q(x_{t-1}, x_0) = \int q(x_{t-1}|x_t, x_0) q(x_t|x_0) dx_t. \tag{5} q(xt1,x0)=q(xt1xt,x0)q(xtx0)dxt.(5)


4. 最终公式的推导

将公式 (5) 的分母代入公式 (3),得到:
q ( x t ∣ x t − 1 , x 0 ) = q ( x t − 1 ∣ x t , x 0 ) q ( x t ∣ x 0 ) ∫ q ( x t − 1 ∣ x t , x 0 ) q ( x t ∣ x 0 ) d x t . q(x_t|x_{t-1}, x_0) = \frac{q(x_{t-1}|x_t, x_0) q(x_t|x_0)}{\int q(x_{t-1}|x_t, x_0) q(x_t|x_0) dx_t}. q(xtxt1,x0)=q(xt1xt,x0)q(xtx0)dxtq(xt1xt,x0)q(xtx0).

现在,我们需要注意的是:

  1. 分子部分完全匹配公式 (46)。
  2. 分母部分的归一化形式也与公式 (46) 一致。

为了便于理解,分母中的积分项 ∫ q ( x t − 1 ∣ x t , x 0 ) q ( x t ∣ x 0 ) d x t \int q(x_{t-1}|x_t, x_0) q(x_t|x_0) dx_t q(xt1xt,x0)q(xtx0)dxt 在公式 (46) 中直接用 q ( x t − 1 ∣ x 0 ) q(x_{t-1}|x_0) q(xt1x0) 表示。


5. 为什么分母可以表示为 q ( x t − 1 ∣ x 0 ) q(x_{t-1}|x_0) q(xt1x0)

通过边际化定义:
q ( x t − 1 ∣ x 0 ) = ∫ q ( x t − 1 , x t ∣ x 0 ) d x t . q(x_{t-1}|x_0) = \int q(x_{t-1}, x_t|x_0) dx_t. q(xt1x0)=q(xt1,xtx0)dxt.

进一步分解 q ( x t − 1 , x t ∣ x 0 ) q(x_{t-1}, x_t|x_0) q(xt1,xtx0)
q ( x t − 1 , x t ∣ x 0 ) = q ( x t − 1 ∣ x t , x 0 ) q ( x t ∣ x 0 ) . q(x_{t-1}, x_t|x_0) = q(x_{t-1}|x_t, x_0) q(x_t|x_0). q(xt1,xtx0)=q(xt1xt,x0)q(xtx0).

1. 条件概率的链式规则

根据条件概率的定义,联合概率 q ( A , B ∣ C ) q(A, B|C) q(A,BC) 可以分解为: q ( A , B ∣ C ) = q ( A ∣ B , C ) q ( B ∣ C ) . q(A, B|C) = q(A|B, C) q(B|C). q(A,BC)=q(AB,C)q(BC).


符号解释:

  • q ( A , B ∣ C ) q(A, B|C) q(A,BC):表示在 C C C 已知的条件下,事件 A A A B B B 同时发生的概率。
  • q ( A ∣ B , C ) q(A|B, C) q(AB,C):表示在 B B B C C C 已知的条件下,事件 A A A 的条件概率。
  • q ( B ∣ C ) q(B|C) q(BC):表示在 C C C 已知的条件下,事件 B B B 的条件概率。

代入后得到:
q ( x t − 1 ∣ x 0 ) = ∫ q ( x t − 1 ∣ x t , x 0 ) q ( x t ∣ x 0 ) d x t . q(x_{t-1}|x_0) = \int q(x_{t-1}|x_t, x_0) q(x_t|x_0) dx_t. q(xt1x0)=q(xt1xt,x0)q(xtx0)dxt.

因此,分母 q ( x t − 1 ∣ x 0 ) q(x_{t-1}|x_0) q(xt1x0) 确实是公式 (46) 中的形式。


6. 公式 (46) 的最终形式

结合以上推导,公式 (46) 的最终形式是:
q ( x t ∣ x t − 1 , x 0 ) = q ( x t − 1 ∣ x t , x 0 ) q ( x t ∣ x 0 ) q ( x t − 1 ∣ x 0 ) . q(x_t|x_{t-1}, x_0) = \frac{q(x_{t-1}|x_t, x_0) q(x_t|x_0)}{q(x_{t-1}|x_0)}. q(xtxt1,x0)=q(xt1x0)q(xt1xt,x0)q(xtx0).


7. 逐步推导总结

  1. 从条件概率的定义出发
    q ( x t ∣ x t − 1 , x 0 ) = q ( x t , x t − 1 , x 0 ) q ( x t − 1 , x 0 ) . q(x_t|x_{t-1}, x_0) = \frac{q(x_t, x_{t-1}, x_0)}{q(x_{t-1}, x_0)}. q(xtxt1,x0)=q(xt1,x0)q(xt,xt1,x0).

  2. 联合分布的分解
    q ( x t , x t − 1 , x 0 ) = q ( x t − 1 ∣ x t , x 0 ) q ( x t ∣ x 0 ) . q(x_t, x_{t-1}, x_0) = q(x_{t-1}|x_t, x_0) q(x_t|x_0). q(xt,xt1,x0)=q(xt1xt,x0)q(xtx0).

  3. 分母的边际化
    q ( x t − 1 , x 0 ) = ∫ q ( x t − 1 ∣ x t , x 0 ) q ( x t ∣ x 0 ) d x t . q(x_{t-1}, x_0) = \int q(x_{t-1}|x_t, x_0) q(x_t|x_0) dx_t. q(xt1,x0)=q(xt1xt,x0)q(xtx0)dxt.

  4. 最终公式的组合
    q ( x t ∣ x t − 1 , x 0 ) = q ( x t − 1 ∣ x t , x 0 ) q ( x t ∣ x 0 ) q ( x t − 1 ∣ x 0 ) . q(x_t|x_{t-1}, x_0) = \frac{q(x_{t-1}|x_t, x_0) q(x_t|x_0)}{q(x_{t-1}|x_0)}. q(xtxt1,x0)=q(xt1x0)q(xt1xt,x0)q(xtx0).


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

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

相关文章

Prometheus+Grafana监控minio对象存储

1. 安装 MinIO 步骤 1:下载 MinIO 二进制文件 wget https://dl.min.io/server/minio/release/linux-amd64/miniochmod x miniosudo mv minio /usr/local/bin/ 步骤 2:创建数据目录 sudo mkdir -p /data/miniosudo chown -R $USER:$USER /data/minio …

2025数学建模美赛|F题成品论文

国家安全政策与网络安全 摘要 随着互联网技术的迅猛发展,网络犯罪问题已成为全球网络安全中的重要研究课题,且网络犯罪的形式和影响日益复杂和严重。本文针对网络犯罪中的问题,基于多元回归分析和差异中的差异(DiD)思…

期权帮|如何利用股指期货进行对冲套利?

锦鲤三三每日分享期权知识,帮助期权新手及时有效地掌握即市趋势与新资讯! 如何利用股指期货进行对冲套利? 对冲就是通过股指期货来平衡投资组合的风险。它分为正向与反向两种策略: (1)正向对冲&#xff…

QT 中 UDP 的使用

目录 一、UDP 简介 二、QT 中 UDP 编程的基本步骤 (一)包含头文件 (二)创建 UDP 套接字对象 (三)绑定端口 (四)发送数据 (五)接收数据 三、完整示例代…

Android BitmapShader简洁实现马赛克,Kotlin(二)

Android BitmapShader简洁实现马赛克,Kotlin(二) 这一篇 Android BitmapShader简洁实现马赛克,Kotlin(一)-CSDN博客 遗留一个问题,xml定义的MyView为wrap_content的宽高,如果改成其…

分布式光纤应变监测是一种高精度、分布式的监测技术

一、土木工程领域 桥梁结构健康监测 主跨应变监测:在大跨度桥梁的主跨部分,如悬索桥的主缆、斜拉桥的斜拉索和主梁,分布式光纤应变传感器可以沿着这些关键结构部件进行铺设。通过实时监测应变情况,能够精确捕捉到车辆荷载、风荷…

uniapp的插件开发发布指南

Hbuilder创建项目 项目根目录创建uni_modules 开发组件 发布到插件市场 填写发布说明(未登录需要登录) 点击提交 在终端可以看到 发布成功! 插件市场查看

大厂案例——腾讯蓝鲸DevOps类应用的设计与实践

蓝鲸体系架构图 蓝鲸CICD应用功能架构 降低DEVOPS门槛—开发者中心 CICD应用需要的后台服务 系列阅读 12306亿级流量架构分析(史上最全)实现电商平台从业务到架构的治理体系基于主数据驱动的数据治理什么时候需要分表分库?-CSDN博客

Jetson nano 安装 PCL 指南

本指南帮助 ARM64 架构的 Jetson Nano 安装 PCL(点云库)。 安装步骤 第一步:安装依赖 在终端中运行以下命令,安装 PCL 所需的依赖: sudo apt-get update sudo apt-get install git build-essential linux-libc-dev s…

WPF基础 | WPF 基础概念全解析:布局、控件与事件

WPF基础 | WPF 基础概念全解析:布局、控件与事件 一、前言二、WPF 布局系统2.1 布局的重要性与基本原理2.2 常见布局面板2.3 布局的测量与排列过程 三、WPF 控件3.1 控件概述与分类3.2 常见控件的属性、方法与事件3.3 自定义控件 四、WPF 事件4.1 路由事件概述4.2 事…

JVM堆空间

一、堆空间的核心概述 一个JVM实例只存在一个堆内存,堆也是Java内存管理的核心区域。Java堆区在JVM启动的时候即被创建,其空间大小也就确定了。是JVM管理的最大一块内存空间。 堆内存的大小是可以调节的。堆可以处于物理上不连续的内存空间中&#xff…

【深度学习基础】多层感知机 | 数值稳定性和模型初始化

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈PyTorch深度学习 ⌋ ⌋ ⌋ 深度学习 (DL, Deep Learning) 特指基于深层神经网络模型和方法的机器学习。它是在统计机器学习、人工神经网络等算法模型基础上,结合当代大数据和大算力的发展而发展出来的。深度学习最重…

数字图像处理:实验五

uu们!大家好,欢迎来到数字图像处理第五章节内容的学习,在本章中有关空间滤波的理论学习是十分重要的,所以建议大家要去用心的学习本章,在之后的传感器的相关图像采集时,不可避免的会有噪声等的影响&#xf…

CCF开源发展委员会开源供应链安全工作组2025年第1期技术研讨会顺利举行

点击蓝字 关注我们 CCF Opensource Development Committee 2025年1月17日,CCF开源发展委员会供应链安全工作组(CCF-ODC-OSS)2025年第一期技术研讨会——“大模型时代的开源供应链安全风控技术”于北京黄大年茶思屋顺利举行。本次研讨会邀请了…

如何进行市场调研?海外问卷调查有哪些类型和示例?

什么是市场研究? 市场研究的目的,就是调查消费者的行为和当时的经济趋势,帮助企业制定和调整经营理念和经营路线,通过收集和分析数据,帮助企业了解其目标市场。 市场调查是通过对潜在客户的分析,来判断品…

DX12 快速教程(4) —— 画钻石原矿

快速导航 新建项目 "004-DrawTexture"纹理贴图纹理采样纹理过滤邻近点采样双线性过滤Mipmap 多级渐远纹理三线性过滤各向异性过滤 纹理环绕LOD 细节层次 开始画钻石原矿吧加载纹理到内存中:LoadTexture什么是 WIC如何用 WIC 读取一帧图片获取图片格式并转…

FPGA实现任意角度视频旋转(二)视频90度/270度无裁剪旋转

本文主要介绍如何基于FPGA实现视频的90度/270度无裁剪旋转,旋转效果示意图如下: 为了实时对比旋转效果,采用分屏显示进行处理,左边代表旋转前的视频在屏幕中的位置,右边代表旋转后的视频在屏幕中的位置。 分屏显示的…

Blazor-选择循环语句

今天我们来说说Blazor选择语句和循环语句。 下面我们以一个简单的例子来讲解相关的语法,我已经创建好了一个Student类,以此类来进行语法的运用 因为我们需要交互性所以我们将类创建在*.client目录下 if 我们做一个学生信息的显示,Gender为…

数据结构——实验八·学生管理系统

嗨~~欢迎来到Tubishu的博客🌸如果你也是一名在校大学生,正在寻找各种编程资源,那么你就来对地方啦🌟 Tubishu是一名计算机本科生,会不定期整理和分享学习中的优质资源,希望能为你的编程之路添砖加瓦⭐&…

在 Ubuntu22.04 上安装 Splunk

ELK感觉太麻烦了,换个日志收集工具 Splunk 是一种 IT 工具,可帮助在任何设备上收集日志、分析、可视化、审计和创建报告。简单来说,它将“机器生成的数据转换为人类可读的数据”。它支持从虚拟机、网络设备、防火墙、基于 Unix 和基于 Windo…