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

扩散模型的数学基础 —— 贝叶斯

  • 贝叶斯定理基础
  • 贝叶斯定理在条件扩散模型中的应用
    • 利用贝叶斯定理分解
      • 第一项:无条件得分项(prior score)
      • 第二项:条件得分项(guidance term)
    • 分类器引导(Classifier Guidance)
    • DPS(Diffusion Posterior Sampling)
    • 重建引导(Reconstruction Guidance)
  • 总结:贝叶斯得分引导公式的作用

贝叶斯定理基础

给定两个事件 AAABBB,条件概率定义为:

P(A∣B)=P(A∩B)P(B),P(B∣A)=P(A∩B)P(A)P(A \mid B) = \frac{P(A \cap B)}{P(B)}, \quad P(B \mid A) = \frac{P(A \cap B)}{P(A)} P(AB)=P(B)P(AB),P(BA)=P(A)P(AB)

由此得:

P(A∩B)=P(A∣B)P(B)=P(B∣A)P(A)P(A \cap B) = P(A \mid B) P(B) = P(B \mid A) P(A) P(AB)=P(AB)P(B)=P(BA)P(A)

移项得贝叶斯定理:

P(A∣B)=P(B∣A)P(A)P(B)\boxed{P(A \mid B) = \frac{P(B \mid A) P(A)}{P(B)}} P(AB)=P(B)P(BA)P(A)

贝叶斯定理在条件扩散模型中的应用

在扩散模型中,设想我们希望生成满足某个条件 yyy 的样本 x0x_0x0。我们研究的是在某一时刻 ttt,扩散模型下的 条件分布的梯度(得分)

∇xtlog⁡pt(xt∣y)\nabla_{x_t} \log p_t(x_t \mid y) xtlogpt(xty)

这是生成满足条件 yyy 的样本所需的梯度方向。

利用贝叶斯定理分解

对数形式的贝叶斯定理:

log⁡pt(xt∣y)=log⁡pt(xt)+log⁡pt(y∣xt)−log⁡pt(y)\log p_t(x_t \mid y) = \log p_t(x_t) + \log p_t(y \mid x_t) - \log p_t(y) logpt(xty)=logpt(xt)+logpt(yxt)logpt(y)

xtx_txt 求梯度时,注意 log⁡pt(y)\log p_t(y)logpt(y)xtx_txt 无关,因此它的梯度为 0:

∇xtlog⁡pt(xt∣y)=∇xtlog⁡pt(xt)+∇xtlog⁡pt(y∣xt)\boxed{ \nabla_{x_t} \log p_t(x_t \mid y) = \nabla_{x_t} \log p_t(x_t) + \nabla_{x_t} \log p_t(y \mid x_t) } xtlogpt(xty)=xtlogpt(xt)+xtlogpt(yxt)

第一项:无条件得分项(prior score)

∇xtlog⁡pt(xt)\nabla_{x_t} \log p_t(x_t) xtlogpt(xt)

  • 表示当前时刻 xtx_txt 下的 无条件得分函数
  • 通常由训练好的扩散模型(如噪声预测网络)直接提供;
  • 是去噪方向的重要组成部分。

第二项:条件得分项(guidance term)

∇xtlog⁡pt(y∣xt)\nabla_{x_t} \log p_t(y \mid x_t) xtlogpt(yxt)

  • 是使生成样本满足条件 yyy 的“引导项”;
  • 可以使用不同策略近似或显式计算:

分类器引导(Classifier Guidance)

  • 训练一个分类器 Cϕ(xt)≈pt(y∣xt)C_\phi(x_t) \approx p_t(y \mid x_t)Cϕ(xt)pt(yxt)
  • 然后使用分类器对数输出的梯度作为引导:

∇xtlog⁡pt(y∣xt)≈∇xtlog⁡Cϕ(xt)\nabla_{x_t} \log p_t(y \mid x_t) \approx \nabla_{x_t} \log C_\phi(x_t) xtlogpt(yxt)xtlogCϕ(xt)

DPS(Diffusion Posterior Sampling)

  • 不需要配对数据训练分类器;
  • 假设已知无噪声数据下的条件概率 p(y∣x0)p(y \mid x_0)p(yx0)
  • 使用扩散模型的 MMSE 估计 x^t≈E[x0∣xt]\hat{x}_t \approx \mathbb{E}[x_0 \mid x_t]x^tE[x0xt]
  • 将梯度近似为:

∇xtlog⁡pt(y∣xt)≈∇xtlog⁡p(y∣x^t)\boxed{ \nabla_{x_t} \log p_t(y \mid x_t) \approx \nabla_{x_t} \log p(y \mid \hat{x}_t) } xtlogpt(yxt)xtlogp(yx^t)

  • 只要 p(y∣x0)p(y \mid x_0)p(yx0)x0x_0x0 可微,这一项就对 xtx_txt 可导。

重建引导(Reconstruction Guidance)

DPS 的特例:假设 p(y∣x0)p(y \mid x_0)p(yx0) 为高斯分布,如:

p(y∣x0)=N(y;x0,σ2I)p(y \mid x_0) = \mathcal{N}(y; x_0, \sigma^2 I) p(yx0)=N(y;x0,σ2I)

则:
∇xtlog⁡pt(y∣xt)≈x^t−yσ2⋅∂x^t∂xt\nabla_{x_t} \log p_t(y \mid x_t) \approx \frac{\hat{x}_t - y}{\sigma^2} \cdot \frac{\partial \hat{x}_t}{\partial x_t} xtlogpt(yxt)σ2x^tyxtx^t

总结:贝叶斯得分引导公式的作用

最终,通过贝叶斯定理将 条件得分 分解为:

∇xtlog⁡pt(xt∣y)=∇xtlog⁡pt(xt)⏟模型本身+∇xtlog⁡pt(y∣xt)⏟外部引导\nabla_{x_t} \log p_t(x_t \mid y) = \underbrace{\nabla_{x_t} \log p_t(x_t)}_{\text{模型本身}} + \underbrace{\nabla_{x_t} \log p_t(y \mid x_t)}_{\text{外部引导}} xtlogpt(xty)=模型本身xtlogpt(xt)+外部引导xtlogpt(yxt)

  • 第一项由扩散模型训练得到;
  • 第二项可以 用分类器、DPS 或其他方法近似
  • 总体目标是指导模型采样路径向着满足 yyy 的方向前进。
http://www.dtcms.com/a/278690.html

相关文章:

  • 【LeetCode240.搜索二维矩阵Ⅱ】以及变式
  • ASP.NET Core中数据绑定原理实现详解
  • C++-多态
  • mybatis-plus-jpa-support
  • 基于MATLAB的LSTM长短期记忆神经网络的数据回归预测方法应用
  • 穿透、误伤与回环——Redis 缓存防御体系的负向路径与治理艺术
  • LightGBM 在处理**不均衡二分类任务**时,能在 **AUC 和 Accuracy** 两个指标上表现良好
  • 三轴云台之姿态调节技术篇
  • 【2025】Global Mapper中文版安装教程保姆级一键安装教程(附安装包)
  • 海外货运物流系统多语言系统实现
  • 蜻蜓I即时通讯水银版系统直播功能模块二次开发文档-详细的直播功能模块文档范例-卓伊凡|麻子
  • 【PTA数据结构 | C语言版】字符串替换算法
  • mitt全局通信
  • Boost.Asio 异步写:为什么多次 async_write_some 会导致乱序,以及如何解决
  • Angular 框架下 AI 驱动的企业级大前端应用开
  • 2025/7/14——java学习总结
  • Ubuntu安装Mongodb
  • 《甘肃棒球》国家级运动健将标准·棒球1号位
  • 九、官方人格提示词汇总(下)
  • OpenCV 视频处理与摄像头操作详解
  • 面试题--xxl-job分布式任务调度
  • 全面解析WOFOST与PCSE农作物生长模型;农作物生长和产量预测
  • 基于esp32系列的开源无线dap-link项目使用介绍
  • 空间智能-李飞飞团队工作总结(至2025.07)
  • 【工具】AndroidStudio修改中文语言汉化
  • Python数据容器-通用功能
  • 九、官方人格提示词汇总(中-1)
  • Usage of standard library is restricted (arkts-limited-stdlib) <ArkTSCheck>
  • 【leetcode】231. 2的幂
  • 13.7 Meta LLaMA2-Chat核心技术突破:三重强化学习实现91.4%安全评分,超越ChatGPT的对话模型架构全解析