Diffusion Models/Score-based Generative Models背后的深度学习原理(7):估计配分函数

news2024/11/15 11:20:40

Diffusion Models专栏文章汇总:入门与实战

前言:有不少订阅我专栏的读者问diffusion models很深奥读不懂,需要先看一些什么知识打下基础?虽然diffusion models是一个非常前沿的工作,但肯定不是凭空产生的,背后涉及到非常多深度学习的知识,我将从配分函数、基于能量模型、马尔科夫链蒙特卡洛采样、得分匹配、比率匹配、降噪得分匹配、桥式采样、深度玻尔兹曼机、对比散度、随机最大似然、伪似然、噪声对比估计等方面,总结一些经典的知识点,供读者参考。

系列文章目录:

1、Diffusion Models/Score-based Generative Models背后的深度学习原理(1):配分函数

2、Diffusion Models/Score-based Generative Models背后的深度学习原理(2):基于能量模型和受限玻尔兹曼机

3、Diffusion Models/Score-based Generative Models背后的深度学习原理(3):蒙特卡洛采样法和重要采样法

4、Diffusion Models/Score-based Generative Models背后的深度学习原理(4):随机最大似然和对比散度

5、Diffusion Models/Score-based Generative Models背后的深度学习原理(5):伪似然和蒙特卡洛近似配分函数

6、Diffusion Models/Score-based Generative Models背后的深度学习原理(6):噪声对比估计

7、Diffusion Models/Score-based Generative Models背后的深度学习原理(7):估计配分函数

目录

直接估计配分函数

退火重要采样(Annealed Importance Sampling, AIS)

桥式采样(Bridge Sampling)


直接估计配分函数

当我们需要评估模型,监控训练性能,和比较模型时,还是需要直接估计配分函数,我们可以考虑蒙塔卡洛的方法去估计它。

首先找到一个简单的提议分布(proposal distribution):p0(x)=1Z0p̃ 0(x)p0(x)=1Z0p~0(x),其在配分函数Z0和未归一化分布p̃ 0(x)p~0(x)上易于采样和估计。

那么:

Z1=∫p̃ 1(x)dx=∫p0(x)p0(x)p̃ 1(x)dx=Z0∫p0(x)p̃ 1(x)p̃ 0(x)dxZ1=∫p~1(x)dx=∫p0(x)p0(x)p~1(x)dx=Z0∫p0(x)p~1(x)p~0(x)dx

可以使用简单重要采样(importance sampling)来估计:

Ẑ 1=Z0K∑k=1Kp̃ 1(x(k))p̃ 0(x(k));;s.t.;:;x(k)∼p0Z^1=Z0K∑k=1Kp~1(x(k))p~0(x(k));;s.t.;:;x(k)∼p0

退火重要采样(Annealed Importance Sampling, AIS)

在DKL(p0|p1)DKL(p0|p1)很大的情况下(即p0p0和p1p1之间几乎没有重叠),退火重要采样通过引入中间分布来缩小这种差距。

考虑分布序列pη0,…,pηnpη0,…,pηn,其中0=η0<η1<⋯<ηn−1<ηn=10=η0<η1<⋯<ηn−1<ηn=1,分布序列中的第一个和最后一个分别是p0和p1。

Z1Z0Z1Z0写作Z1Z0=∏n−1j=0Zηj+1ZηjZ1Z0=∏j=0n−1Zηj+1Zηj。

如果对于所有的0≤j≤n−10≤j≤n−10≤j≤n−10≤j≤n−1,分布pηjpηj和pηj+1pηj+1足够接近,那么能够使用简单的重要采样来估计每个因子Zηj+1ZηjZηj+1Zηj,然后使用这些得到Z1Z0Z1Z0的估计。

中间分布的一个通用和流行选择是使用目标分布p1和建议分布p0的加权几何平均:pηj∝pηj1p1−ηj0pηj∝p1ηjp01−ηj。

桥式采样(Bridge Sampling)

桥式采样依赖于单个分布p∗(被称为桥),在已知配分函数的分布p0p0和分布p1p1之间插值。

$$\frac{Z_1}{Z_0} ≈ \frac{\sum_{k=1}^K \frac{ \tilde{p}(x_0^{(k)}) }{\tilde{p}_0(x_0^{(k)}) }} {\sum_{k=1}^K \frac{ \tilde{p}(x_1^{(k)}) }{\tilde{p}_1(x_1^{(k)}) }} $$

最优的桥式采样是p(opt)∗(x)∝p̃ 0(x)p̃ 1(x)rp̃ 0(x)+p̃ 1(x)p∗(opt)(x)∝p~0(x)p~1(x)rp~0(x)+p~1(x),其中r=Z1/Z0。可以从粗糙的r开始估计,然后使用得到的桥式采样逐步迭代以改进估计。

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

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

相关文章

【水文】LLM 成文测试|探索嵌入式硬件编程的奥秘:入门基础知识的全面解析

这次用的是智谱清言的&#xff0c;文字质量比百度的高一些。 但是在按要求改写的方面还是需要给出太过明确的指令&#xff0c;麻烦。 探索嵌入式硬件编程的奥秘&#xff1a;入门基础知识的全面解析 嵌入式硬件作为现代科技的核心&#xff0c;广泛应用于各种设备和系统中。对于…

【OSS安全最佳实践】对OSS内身份证图片中身份证号进行脱敏

为确保存储在私有OSS Bucket特定文件夹中包含中国内地身份证信息的PNG、JPG、JPEG、BMP或WEBP格式图片&#xff0c;在与其他用户共享时身份证信息不被泄露&#xff0c;可使用数据安全中心 DSC&#xff08;Data Security Center&#xff09;的图片脱敏功能。DSC目前仅支持对身份…

计算机前沿技术-人工智能算法-大语言模型-最新论文阅读-2024-09-22

计算机前沿技术-人工智能算法-大语言模型-最新论文阅读-2024-09-22 引言: 全球最热销的国产游戏-《黑神话: 悟空》不仅给世界各地玩家们带来愉悦&#xff0c;而且对计算机人工智能研究也带来新的思考。在本期的论文速读中&#xff0c;我们带来一篇关于视觉语言模型&#xff0…

【C++高阶】深入理解C++ I/O流:标准库中的隐藏宝石

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ ⏩收录专栏⏪&#xff1a;C “ 登神长阶 ” &#x1f921;往期回顾&#x1f921;&#xff1a;C 特殊类 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀ C IO流 &#x1f4d2;1. C语言的输入…

Linux中的动静态库

目录 前言 1.库的文件名 2.库的制作 对于动态库&#xff1a; 对于静态库&#xff1a; 3.库文件的查找 4.库的加载与使用 对于动态库&#xff1a; 对于静态库&#xff1a; 可执行程序分段&#xff1a; 程序的编址于动态库&#xff1a; 总结 前言 在刚开始学习C语言…

NASA:ASTER L1A 重建未处理仪器数据 V003

ASTER L1A 重建未处理仪器数据 V003 简介 先进星载热发射和反射辐射计&#xff08;ASTER&#xff09;1A 级&#xff08;AST_L1A&#xff09;包含重建的仪器数字编号&#xff08;DN&#xff09;&#xff0c;这些数字编号来自所获取的望远镜遥测数据流&#xff1a; 可见光和近红…

综合题第一题(地址表的填写)

题目 第一题的形式大概就是这样的&#xff0c;通常IP地址和子网掩码会给我们。 地址类别 补充知识 IP地址&#xff08;Internet Protocol Address&#xff09;是分配给网络中设备的数字标签&#xff0c;用于标识设备在网络中的位置。IP地址分为IPv4和IPv6两种版本&#xff0…

用Qt 对接‌百度AI平台

很多同学想利用几大模型AI弄点东西&#xff0c;但又不知道如何去介入&#xff1f;&#xff1f;最近帮同学弄点东西&#xff0c;刚好要接入到AI平台&#xff0c;就顺便研究了一下&#xff0c;并记录下来。 首先我们选择的 AI模型是百度的&#xff0c;然后注册&#xff0c;申请密…

vue实现数据栏无缝滚动实现方式-demo

效果 方式一 通过实现两个item 进行循环 <!--* Author: Jackie* Date: 2023-08-16 21:27:42* LastEditTime: 2023-08-16 21:41:51* LastEditors: Jackie* Description: scroll 水平滚动 - 效果基本满足需求* FilePath: /vue3-swiper-demo/src/components/scroll/Scroll12.…

开始场景的制作+气泡特效的添加

3D场景或2D场景的切换 1.新建项目时选择3D项目或2D项目 2.如下图操作&#xff1a; 开始前的固有流程 按照如下步骤进行操作&#xff0c;于步骤3中更改Company Name等属性&#xff1a; 本案例分辨率可以如下设置&#xff0c;有能力者可根据需要自行调整&#xff1a; 场景制作…

python是什么语言写的

Python是一种计算机程序设计语言。是一种面向对象的动态类型语言。现今Python语言很火&#xff0c;可有人提问&#xff0c;这么火的语言它的底层又是什么语言编写的呢&#xff1f; python是C语言编写的&#xff0c;它有很多包也是用C语言写的。 所以说&#xff0c;C语言还是很…

算法.图论-并查集

文章目录 1. 并查集介绍2. 并查集的实现2.1 实现逻辑2.2 isSameSet方法2.3 union方法(小挂大优化)2.4 find方法(路径压缩优化) 3. 并查集模板4. 并查集习题4.1 情侣牵手4.2 相似字符串组 1. 并查集介绍 定义&#xff1a; 并查集是一种树型的数据结构&#xff0c;用于处理一些不…

(学习记录)使用 STM32CubeMX——配置时钟(入门)

使用STM32CubeMX配置STM32F103C8T6时钟部分 选择芯片 ①&#xff1a;选择MCU型号 ①&#xff1a;这里使用英文输入法&#xff0c;输入你想要的芯片型号&#xff0c;我这里采用STM32F103C8T6 ②&#xff1a;这里能看到搜索后出来的芯片具体型号&#xff0c;选择匹配度最高的一个…

类和对象(2)(重点)

个人主页&#xff1a;Jason_from_China-CSDN博客 所属栏目&#xff1a;C系统性学习_Jason_from_China的博客-CSDN博客 所属栏目&#xff1a;C知识点的补充_Jason_from_China的博客-CSDN博客 类的默认成员函数 概念概述 默认成员函数就是用户没有显式实现&#xff0c;编译器会自…

【CSS in Depth 2 精译_034】5.4 Grid 网格布局的显式网格与隐式网格(下)

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 第一章 层叠、优先级与继承&#xff08;已完结&#xff09; 1.1 层叠1.2 继承1.3 特殊值1.4 简写属性1.5 CSS 渐进式增强技术1.6 本章小结 第二章 相对单位&#xff08;已完结&#xff09; 2.1 相对…

ACM MM24 | Hi3D: 3D生成领域再突破!新视角生成和高分辨率生成双SOTA(复旦智象等)

文章链接&#xff1a;https://arxiv.org/pdf/2409.07452 Github 链接&#xff1a;https://github.com/yanghb22-fdu/Hi3D-Official 亮点直击 本文提出了高分辨率图像到3D模型&#xff08;Hi3D&#xff09;&#xff0c;这是一种基于视频扩散的新范式&#xff0c;将单个图像重新定…

计算机毕业设计python+spark知识图谱房价预测系统 房源推荐系统 房源数据分析 房源可视化 房源大数据大屏 大数据毕业设计 机器学习

《PythonSpark知识图谱房价预测系统》开题报告 一、研究背景与意义 随着城市化进程的加速和房地产市场的不断发展&#xff0c;房价成为影响人们生活质量的重要因素之一。准确预测房价不仅有助于政府制定科学的房地产政策&#xff0c;还能为开发商提供市场参考&#xff0c;同时…

NLP-transformer学习:(7)evaluate实践

NLP-transformer学习&#xff1a;&#xff08;7&#xff09;evaluate 使用方法 打好基础&#xff0c;为了后面学习走得更远。 本章节是单独的 NLP-transformer学习 章节&#xff0c;主要实践了evaluate。同时&#xff0c;最近将学习代码传到&#xff1a;https://github.com/Mex…

c++类与对象一

C类与对象(一) 面向对象初步认识 在c语言中&#xff0c;编程是面向过程编程&#xff0c;注重求解问题列出过程&#xff0c;然后调用函数求解问题。 在日常生活中。我们经常会遇到面向过程的问题 手洗衣服就是面向过程 而C是基于面向对象的。关注的是对象&#xff0c;把事情…

SpringSecurity -- 入门使用

文章目录 什么是 SpringSesurity &#xff1f;细节使用方法 什么是 SpringSesurity &#xff1f; 在我们的开发中&#xff0c;安全还是有些必要的 用 拦截器 和 过滤器 写代码还是比较麻烦。 SpringSecurity 是 SpringBoot 的底层安全默认选型。一般我们需要认证和授权&#xf…