扩散模型逆向过程详解:如何从噪声中恢复数据?

在扩散模型中,逆向过程的目标是从噪声数据逐步恢复出原始数据。本文将详细解析逆向条件分布 q(zt−1∣zt,x)q(\mathbf{z}_{t-1} \mid \mathbf{z}_t, \mathbf{x})q(zt1zt,x)的推导过程,揭示扩散模型如何通过高斯分布实现数据重建。


1. 核心问题

在扩散模型中,我们希望学习如何从含噪数据 (zt(\mathbf{z}_t(zt) 逐步恢复原始数据 x\mathbf{x}x。直接求逆向分布 q(zt−1∣zt)q(\mathbf{z}_{t-1} \mid \mathbf{z}_t)q(zt1zt) 是困难的,但若额外已知原始数据 x\mathbf{x}x,则条件分布 q(zt−1∣zt,x)q(\mathbf{z}_{t-1} \mid \mathbf{z}_t, \mathbf{x})q(zt1zt,x)可以简化为高斯分布。


2. 贝叶斯定理的应用

利用贝叶斯定理,将条件分布分解为:
q(zt−1∣zt,x)=q(zt∣zt−1,x)q(zt−1∣x)q(zt∣x) q(\mathbf{z}_{t-1} \mid \mathbf{z}_t, \mathbf{x}) = \frac{q(\mathbf{z}_t \mid \mathbf{z}_{t-1}, \mathbf{x}) q(\mathbf{z}_{t-1} \mid \mathbf{x})}{q(\mathbf{z}_t \mid \mathbf{x})} q(zt1zt,x)=q(ztx)q(ztzt1,x)q(zt1x)

关键简化
  • 马尔可夫性质:前向过程中,zt\mathbf{z}_tzt仅依赖zt−1\mathbf{z}_{t-1}zt1,因此:
    q(zt∣zt−1,x)=q(zt∣zt−1) q(\mathbf{z}_t \mid \mathbf{z}_{t-1}, \mathbf{x}) = q(\mathbf{z}_t \mid \mathbf{z}_{t-1}) q(ztzt1,x)=q(ztzt1)
    此项由前向过程的定义给出(公式 20.4):
    q(zt∣zt−1)=N(zt;1−βtzt−1,βtI) q(\mathbf{z}_t \mid \mathbf{z}_{t-1}) = \mathcal{N}\left(\mathbf{z}_t; \sqrt{1-\beta_t} \mathbf{z}_{t-1}, \beta_t \mathbf{I}\right) q(ztzt1)=N(zt;1βtzt1,βtI)

  • 扩散核q(zt−1∣x)q(\mathbf{z}_{t-1} \mid \mathbf{x})q(zt1x)是前向过程的闭式解(公式 20.6):
    q(zt−1∣x)=N(zt−1;αt−1x,(1−αt−1)I) q(\mathbf{z}_{t-1} \mid \mathbf{x}) = \mathcal{N}\left(\mathbf{z}_{t-1}; \sqrt{\alpha_{t-1}} \mathbf{x}, (1-\alpha_{t-1}) \mathbf{I}\right) q(zt1x)=N(zt1;αt1x,(1αt1)I)
    其中αt−1=∏s=1t−1(1−βs)\alpha_{t-1} = \prod_{s=1}^{t-1} (1-\beta_s)αt1=s=1t1(1βs)

  • 分母的忽略:分母 q(zt∣x)q(\mathbf{z}_t \mid \mathbf{x})q(ztx)zt−1\mathbf{z}_{t-1}zt1无关,可视为常数。


3. 高斯分布的推导

分子部分是两个高斯分布的乘积:
q(zt∣zt−1)⋅q(zt−1∣x) q(\mathbf{z}_t \mid \mathbf{z}_{t-1}) \cdot q(\mathbf{z}_{t-1} \mid \mathbf{x}) q(ztzt1)q(zt1x)
通过配方法(completing the square),可以合并指数项,得到一个新的高斯分布:
q(zt−1∣zt,x)=N(zt−1;mt(x,zt),σt2I) q(\mathbf{z}_{t-1} \mid \mathbf{z}_t, \mathbf{x}) = \mathcal{N}\left(\mathbf{z}_{t-1}; \mathbf{m}_t(\mathbf{x}, \mathbf{z}_t), \sigma_t^2 \mathbf{I}\right) q(zt1zt,x)=N(zt1;mt(x,zt),σt2I)

均值和方差的计算
  • 均值 (\mathbf{m}_t)
    mt(x,zt)=αt−1βt1−αtx+1−βt(1−αt−1)1−αtzt \mathbf{m}_t(\mathbf{x}, \mathbf{z}_t) = \frac{\sqrt{\alpha_{t-1}} \beta_t}{1-\alpha_t} \mathbf{x} + \frac{\sqrt{1-\beta_t} (1-\alpha_{t-1})}{1-\alpha_t} \mathbf{z}_t mt(x,zt)=1αtαt1βtx+1αt1βt(1αt1)zt
    这是原始数据x\mathbf{x}x和当前噪声数据zt\mathbf{z}_tzt的线性组合。

  • 方差 σt2\sigma_t^2σt2
    σt2=(1−αt−1)βt1−αt \sigma_t^2 = \frac{(1-\alpha_{t-1}) \beta_t}{1-\alpha_t} σt2=1αt(1αt1)βt
    仅依赖噪声调度参数βt\beta_tβt和累积系数αt\alpha_tαt


4. 直观理解

  • 给定x\mathbf{x}x的重要性:若已知原始数据x\mathbf{x}x,则从 zt\mathbf{z}_tzt推断 zt−1\mathbf{z}_{t-1}zt1是一个确定性更强的去噪问题,解为高斯分布。
  • 物理意义:均值 mt\mathbf{m}_tmt是“部分去噪”的结果,方差 σt2\sigma_t^2σt2表示剩余的不确定性。

5. 与逆向过程的关系

实际训练中,我们无法直接使用 x\mathbf{x}x(因需生成新数据),因此:

  1. 用神经网络 pθ(zt−1∣zt)p_\theta(\mathbf{z}_{t-1} \mid \mathbf{z}_t)pθ(zt1zt)近似q(zt−1∣zt,x)q(\mathbf{z}_{t-1} \mid \mathbf{z}_t, \mathbf{x})q(zt1zt,x)
  2. 网络通过预测均值 mt\mathbf{m}_tmt 或噪声 ϵ\boldsymbol{\epsilon}ϵ来学习去噪。

6. 总结

  • 数学本质:通过贝叶斯定理和高斯分布的性质,显式推导出条件逆向分布的闭式解。
  • 实际意义:指导神经网络学习去噪步骤的理论基础。
  • 关键公式
    q(zt−1∣zt,x)=N(zt−1;mt(x,zt),σt2I) q(\mathbf{z}_{t-1} \mid \mathbf{z}_t, \mathbf{x}) = \mathcal{N}\left(\mathbf{z}_{t-1}; \mathbf{m}_t(\mathbf{x}, \mathbf{z}_t), \sigma_t^2 \mathbf{I}\right) q(zt1zt,x)=N(zt1;mt(x,zt),σt2I)

这种推导是扩散模型理论的核心,确保了从噪声中生成数据的数学严谨性。


在这里插入图片描述

这张图(图20.3)展示了扩散模型中逆向分布的计算过程,以下是详细解析:


1. 图的组成与含义

(1) 左子图:前向噪声过程q(zt∣zt−1)q(z_t|z_{t-1})q(ztzt1)
  • 横轴:噪声数据 ztz_tzt
  • 纵轴:概率密度
  • 曲线特征:以 zt−1z_{t-1}zt1为中心的高斯分布(钟形曲线)
  • 关键参数:方差βt\beta_tβt较大 → 曲线"宽泛"(平坦)
  • 物理意义:表示单步加噪时,ztz_tzt 可能取值的范围较大
(2) 右子图:边缘分布q(zt−1)q(z_{t-1})q(zt1)
  • 横轴:数据 zt−1z_{t-1}zt1
  • 纵轴:概率密度
  • 红色曲线:三个高斯分布的混合(多峰结构)
  • 物理意义:反映数据在t−1t-1t1 步的整体分布(可能对应不同模态的真实数据)
(3) 蓝色曲线:逆向分布q(zt−1∣zt)q(z_{t-1}|z_t)q(zt1zt)
  • 生成方式:通过贝叶斯定理将左、右子图的分布相乘并归一化
  • 特征:复杂多峰结构(多个局部最大值)
  • 物理意义:给定当前噪声ztz_tzt,可能对应多个潜在的 zt−1z_{t-1}zt1状态

2. 关键句解析

“由于左侧分布(对应大方差βt)相对宽泛,导致逆向分布q(zt−1∣zt)q(zt−1|zt)q(zt1∣zt)呈现出复杂的多峰结构。”

(1) 因果关系
  • 大方差 βt\beta_tβt → 前向分布 q(zt∣zt−1)q(z_t|z_{t-1})q(ztzt1) 平坦 → 允许 ztz_tzt 偏离 zt−1z_{t-1}zt1更远
  • 结果:一个 ztz_tzt可能由多个不同的zt−1z_{t-1}zt1生成 → 逆向分布出现多峰
(2) 多峰结构的含义
  • 每个峰:对应一个可能的zt−1z_{t-1}zt1 来源
  • 示例:若原始数据包含"猫"和"狗"两类,加噪后的ztz_tzt可能无法确定源自哪类 → 逆向分布同时保留两种可能
(3) 数学解释

贝叶斯定理中:
q(zt−1∣zt)∝q(zt∣zt−1)⏟宽泛分布⋅q(zt−1)⏟多峰分布 q(z_{t-1}|z_t) \propto \underbrace{q(z_t|z_{t-1})}_{\text{宽泛分布}} \cdot \underbrace{q(z_{t-1})}_{\text{多峰分布}} q(zt1zt)宽泛分布q(ztzt1)多峰分布q(zt1)

  • 宽泛的似然q(zt∣zt−1)q(z_t|z_{t-1})q(ztzt1)不会压制q(zt−1)q(z_{t-1})q(zt1) 的多峰性
  • 最终逆向分布继承q(zt−1)q(z_{t-1})q(zt1) 的多峰特征

3. 对扩散模型的意义

  1. 理论挑战:多峰性说明直接计算逆向分布极其困难
  2. 解决方案
    • 用神经网络pθ(zt−1∣zt)p_\theta(z_{t-1}|z_t)pθ(zt1zt)近似为单峰高斯
    • 通过训练使网络学会选择"最可能"的峰(对应高质量生成)
  3. 设计启示
    • 需控制βt\beta_tβt大小:方差过大导致多峰性增强,训练难度增加
    • 多峰性也赋予模型捕捉数据多样性的能力

4. 实例说明

假设:

  • 右子图的三个峰对应zt−1=−1,0,1z_{t-1} = -1, 0, 1zt1=1,0,1(三种潜在状态)
  • 观测到zt=0.5z_t = 0.5zt=0.5(左子图中心在某个 zt−1z_{t-1}zt1
  • 蓝色曲线可能在zt−1=0z_{t-1} = 0zt1=0zt−1=1z_{t-1} = 1zt1=1处各有一个峰
    → 说明zt=0.5z_t = 0.5zt=0.5可能由zt−1=0z_{t-1} = 0zt1=0111 加噪得到

5. 总结

该图揭示了扩散模型中逆向过程的本质困难:
前向噪声的随机性(大方差)导致逆向推断存在歧义,而模型必须通过学习解决这种歧义,才能实现高质量生成。这一现象也解释了为什么扩散模型需要复杂的网络结构和训练技巧。


在这里插入图片描述
在图20.4中,左图展示了条件概率分布q(zt∣zt−1)q(z_t | z_{t-1})q(ztzt1),其方差βt\beta_tβt较小,这意味着分布更窄。右图展示了相应的逆过程分布q(zt−1∣zt)q(z_{t-1} | z_t)q(zt1zt)

为什么分布更窄并不意味着变化更明显?

  1. 方差与变化幅度

    • 方差是衡量数据分布的离散程度的指标。较小的方差意味着数据点更集中在均值附近。
    • 在条件概率分布 q(zt∣zt−1)q(z_t | z_{t-1})q(ztzt1)中,较小的方差表示在给定 zt−1z_{t-1}zt1 的情况下, ztz_tzt 的取值更集中在某个特定值附近ztz_tzt 的变化幅度较小
  2. 逆过程分布

    • 右图中的蓝色曲线 q(zt−1∣zt)q(z_{t-1} | z_t)q(zt1zt)展示了在给定 ztz_tzt的情况下, zt−1z_{t-1}zt1 的分布。
    • 由于左图中的 q(zt∣zt−1)q(z_t | z_{t-1})q(ztzt1) 分布较窄,意味着 ztz_tzt 的取值相对集中,因此在逆过程中, zt−1z_{t-1}zt1 的分布也相对集中,接近高斯分布。
  3. 变化幅度与学习难度

    • 分布更窄意味着在每一步变换中,潜在变量的变化幅度较小。这种微小的变化使得模型更容易学习如何逆转这些变换,因为每一步的变换都是可预测的、稳定的。
    • 如果方差较大,潜在变量的变化幅度会更大,这会增加模型学习逆过程的难度,因为每一步的变换更加不可预测。

总结

  • 分布更窄(方差较小)意味着潜在变量的变化幅度较小,而不是变化更明显。
  • 这种微小的变化使得逆过程更容易学习和预测,因为每一步的变换都是相对稳定和可预测的。
  • 因此,较小的方差有助于简化模型的学习过程,但可能需要更多的步骤来达到显著的总体变化。

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

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

相关文章

2025年7月份实时最新获取地图边界数据方法,省市区县街道多级联动【文末附实时geoJson数据下载】

动态生成最新行政区划 GeoJSON 数据并结合 ECharts 实现地图下钻功能 在开发基于地图的数据可视化应用时,一个常见的挑战是获取准确且最新的行政区划边界数据(GeoJSON)。许多现有的在线资源可能数据陈旧,无法反映最新的行政区划调…

Spark实现WorldCount执行流程图

spark可以分区并行执行,同时并行执行也可以基于内存完成迭代代码对于大部分spark程序来说都是以driver开始driver结束,中间都是executor分布式运行

编程与数学 03-002 计算机网络 02_网络体系结构与协议

编程与数学 03-002 计算机网络 02_网络体系结构与协议一、网络体系结构的基本概念(一)分层体系结构的优点(二)协议、接口与服务的概念二、OSI参考模型(一)七层模型的层次划分及功能(二&#xff…

Flutter 提取图像主色调 ColorScheme.fromImageProvider

从图像中提取主色调,用于动态适配颜色主题或者界面颜色。之前在 Flutter 应用里一直用的 palette_generator 插件,可以分析图像颜色,从中提取一系列主要的色调。最近发现这个谷歌官方的插件竟然不维护了,后续没有更新计划了。 查找…

51c自动驾驶~合集8

自己的原文哦~ https://blog.51cto.com/whaosoft/11618683 #Hierarchical BEV BEV进入定制化时代!清华Hierarchical BEV:创新多模块学习框架,无痛落地无缝量产!​ 论文思路 自动驾驶指通过传感器计算设备、信息通信、自…

Excel——重复值处理

识别重复行的三种方法方法1:COUNTIF公式法在E2单元格输入公式:COUNTIF($B$2:$B2,B2)>1下拉填充至所有数据行结果为TRUE的即为重复行(会标出第二次及以后出现的重复项)方法2:排序IF公式法按商机号排序(数…

华普微Matter模块HM-MT7201,打破智能家居生态孤岛

随着智能家居渗透率与认可度的持续提升,消费者对于智能家居的功能诉求正从具备联网控制、远程控制与语音遥控等基础交互能力,升级为能通过单一的家居生态平台APP无缝控制所有的品牌设备,从而实现真正意义上的统一调度。这种从“单一设备联网控…

如何使用 minio 完成OceanBase社区版的归档和备份

自OceanBase社区版4.2.1BP7版本起,OceanBase的归档与备份功能开始兼容AWS S3及S3协议的对象存储服务,因此,许多用户选择采用 MinIO 作为其备份存储介质。因为 MinIO 兼容AWS S3云存储服务接口,成为了一个轻便的服务选项。 本文将…

Nacos-服务注册,服务发现(二)

Nacos健康检查 两种健康检查机制 Nacos作为注册中⼼, 需要感知服务的健康状态, 才能为服务调⽤⽅提供良好的服务。 Nacos 中提供了两种健康检查机制: 客⼾端主动上报机制: 客⼾端通过⼼跳上报⽅式告知服务端(nacos注册中⼼)健康状态, 默认⼼跳间隔5…

手写PPO_clip(FrozenLake环境)

参考:白话PPO训练 成功截图 算法组件 四大部分 同A2C相比,PPO算法额外引入了一个old_actor_model. 在PPO的训练中,首先使用old_actor_model与环境进行交互得到经验,然后利用一批经验优化actor_model,最后再将actor_m…

人形机器人指南(八)操作

八、环境交互与操作能力——人形机器人的“灵巧双手”环境交互与操作能力是人形机器人区别于移动平台的核心能力标志。通过仿生学设计的运动链与智能控制算法,机器人得以在非结构化环境中执行抓取、操纵、装配等复杂任务。本章将系统解析机械臂运动学架构、灵巧手设…

管理 GitHub Pages 站点的自定义域(Windows)

管理 GitHub Pages 站点的自定义域(Windows) 你可以设置或更新某些 DNS 记录和存储库设置,以将 GitHub Pages 站点的默认域指向自定义域。 谁可以使用此功能? GitHub Pages 在公共存储库中提供 GitHub Free 和 GitHub Free for organizations,在公共和私有存储库中提供 Gi…

【PCIe 总线及设备入门学习专栏 5.1.3 -- PCIe PERST# 时序要求】

文章目录 Overview 什么是PERST# 第一条要求 术语解释 要求含义 第二条要求 术语解释 要求含义 Perst 示例说明 过程如下 总结 Overview 首先我们看下 PCIe x协议对 PERST 的要求: A component must enter the LTSSM Detect state within 20 rms of the end of Fundamental R…

图像认知与OpenCV——图像预处理

目录 一、颜色加法 颜色加法 颜色加权加法 示例 二、颜色空间转换 RGB转Gray(灰度) RGB转HSV HSV转RGB 示例 三、灰度化 最大值法 平均值法 加权平均值法 四、图像二值化处理 阈值法 反阈值法 截断阈值法 低阈值零处理 超阈值法 OTSU…

Vue 3 组件通信全解析:从 Props 到 Pinia 的深入实践

引言 Vue 3 作为现代前端框架的代表之一,以其灵活性和高效性受到开发者的广泛喜爱。在 Vue 3 中,组件是构建用户界面的核心单元,而组件之间的通信则是实现动态交互和数据流动的关键环节。无论是简单的父子组件通信,还是复杂的跨组…

CodeBuddy IDE实战:用AI全栈能力快速搭建课程表网页

声明:本文仅是实践测评,并非广告 1.前言 在数字化开发的浪潮中,工具的革新往往是效率跃迁的起点。腾讯云 CodeBuddy IDE 是 “全球首个产设研一体 AI 全栈开发平台” ,它不仅打破了产品、设计与研发的职能壁垒,更重新…

11. HTML 中 DOCTYPE 的作用

总结H5 的声明HTML5 的 DOCTYPE 声明 HTML5 中的 <!DOCTYPE html> 声明用于告诉浏览器当前文档使用的是 HTML5 的文档类型。它必须是文档中的第一行内容&#xff08;在任何 HTML 标签之前&#xff09;&#xff0c;以确保浏览器能够正确地解析和渲染页面。DOCTYPE 的作用 …

Linux C 网络基础编程

基础知识在进行网络编程之前&#xff0c;我们需要简单回顾一下计算机网络五层模型的网络层和传输层&#xff0c;这两层在面向后端编程时用的最多。物理层和链路层过于底层&#xff0c;已经完全由内核协议栈实现&#xff0c;不再细述。这里假设读者已经对计算机网络有一个大致的…

循环神经网络--NLP基础

一、简单介绍NLP&#xff08;Natural Language Processing&#xff09;&#xff1a;自然语言处理是人工智能和语言领域的一个分支&#xff0c;它涉及计算机和人类语言之间的相互作用。二、NLP基础概念词表&#xff08;词库&#xff09;&#xff1a;文本数据集出现的所有单词的集…

【Android】约束布局总结(1)

三三要成为安卓糕手 零&#xff1a;创建布局文件方式 1&#xff1a;创建步骤ctrl alt 空格 设置根元素2&#xff1a;处理老版本约束布局 在一些老的工程中&#xff0c;constrainlayout可能没有办法被直接使用&#xff0c;这里需要手动添加依赖implementation androidx.const…