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

本文主要是介绍Diffusion Models/Score-based Generative Models背后的深度学习原理(5):伪似然和蒙特卡洛近似配分函数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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):噪声对比估计

蒙特卡罗近似配分函数及其梯度需要直接处理配分函数。有些其他方法通过训 练不需要计算配分函数的模型来绕开这个问题。这些方法大多数都基于以下观察: 无向概率模型中很容易计算概率的比率。这是因为配分函数同时出现在比率的分子 和分母中,互相抵消:

伪似然正是基于条件概率可以采用这种基于比率的形式,因此可以在没有配分 函数的情况下进行计算。假设我们将 x 分为 a,b 和 c,其中 a 包含我们想要的条件分布的变量,b 包含我们想要条件化的变量,c 包含除此之外的变量:

以上计算需要边缘化 a,假设 a 和 c 包含的变量并不多,那么这将是非常高效的操 作。在极端情况下,a 可以是单个变量,c 可以为空,那么该计算仅需要估计与单 个随机变量值一样多的 \widetilde{p}

不幸的是,为了计算对数似然,我们需要边缘化很多变量。如果总共有 n 个变 量,那么我们必须边缘化 n  1 个变量。根据概率的链式法则,我们有:

在这种情况下,我们已经使 a 尽可能小,但是 c 可以大到 x2:n。如果我们简单地将 c 移 到 b 中以减少计算代价,那么会发生什么呢?这便产生了 伪似然(pseudolikelihood)(Besag, 1975)目标函数,给定所有其他特征 x_{-i},预测特征 x_{i}的值:

如果每个随机变量有 k 个不同的值,那么计算 \widetilde{p} 需要 k * n次估计,而计算配 分函数需要 k^n 次估计。

这看起来似乎是一个没有道理的策略,但可以证明最大化伪似然的估计是渐近 一致的 (Mase, 1995)。当然,在数据集不趋近于大采样极限的情况下,伪似然可能表 现出与最大似然估计不同的结果。

基于伪似然的方法的性能在很大程度上取决于模型是如何使用的。对于完全联 合分布 p(x) 模型的任务(例如密度估计和采样),伪似然通常效果不好。对于在训练期间只需要使用条件分布的任务而言,它的效果比最大似然更好,例如填充少量 的缺失值。如果数据具有规则结构,使得 S 索引集可以被设计为表现最重要的相关 性质,同时略去相关性可忽略的变量,那么广义伪似然策略将会非常有效。例如,在 自然图像中,空间中相隔很远的像素也具有弱相关性,因此广义伪似然可以应用于 每个 S 集是小的局部空间窗口的情况。

伪似然估计的一个弱点是它不能与仅在 ~p(x) 上提供下界的其他近似一起使用, 例如第十九章中介绍的变分推断。这是因为 ~p 出现在了分母中。分母的下界仅提供 了整个表达式的上界,然而最大化上界没有什么意义。这使得我们难以将伪似然方 法应用于诸如深度玻尔兹曼机的深度模型,因为变分方法是近似边缘化互相作用的 多层隐藏变量的主要方法之一。尽管如此,伪似然仍然可以用在深度学习中,它可 以用于单层模型,或使用不基于下界的近似推断方法的深度模型中。

伪似然比 SML 在每个梯度步骤中的计算代价要大得多,这是由于其对所有条 件进行显式计算。但是,如果每个样本只计算一个随机选择的条件,那么广义伪 似然和类似标准仍然可以很好地运行,从而使计算代价降低到和 SML 差不多的程 度 (Goodfellow et al., 2013d)。

虽然伪似然估计没有显式地最小化 log Z,但是我们仍然认为它具有类似负相的 效果。每个条件分布的分母会使得学习算法降低所有仅具有一个变量不同于训练样本的状态的概率。

这篇关于Diffusion Models/Score-based Generative Models背后的深度学习原理(5):伪似然和蒙特卡洛近似配分函数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/762343

相关文章

51单片机学习记录———定时器

文章目录 前言一、定时器介绍二、STC89C52定时器资源三、定时器框图四、定时器模式五、定时器相关寄存器六、定时器练习 前言 一个学习嵌入式的小白~ 有问题评论区或私信指出~ 提示:以下是本篇文章正文内容,下面案例可供参考 一、定时器介绍 定时器介绍:51单片机的定时器属于单片机的内部资源,其电路的连接和运转均在单片机内部完成。 定时器作用: 1.用于计数系统,可

问题:第一次世界大战的起止时间是 #其他#学习方法#微信

问题:第一次世界大战的起止时间是 A.1913 ~1918 年 B.1913 ~1918 年 C.1914 ~1918 年 D.1914 ~1919 年 参考答案如图所示

[word] word设置上标快捷键 #学习方法#其他#媒体

word设置上标快捷键 办公中,少不了使用word,这个是大家必备的软件,今天给大家分享word设置上标快捷键,希望在办公中能帮到您! 1、添加上标 在录入一些公式,或者是化学产品时,需要添加上标内容,按下快捷键Ctrl+shift++就能将需要的内容设置为上标符号。 word设置上标快捷键的方法就是以上内容了,需要的小伙伴都可以试一试呢!

AssetBundle学习笔记

AssetBundle是unity自定义的资源格式,通过调用引擎的资源打包接口对资源进行打包成.assetbundle格式的资源包。本文介绍了AssetBundle的生成,使用,加载,卸载以及Unity资源更新的一个基本步骤。 目录 1.定义: 2.AssetBundle的生成: 1)设置AssetBundle包的属性——通过编辑器界面 补充:分组策略 2)调用引擎接口API

Javascript高级程序设计(第四版)--学习记录之变量、内存

原始值与引用值 原始值:简单的数据即基础数据类型,按值访问。 引用值:由多个值构成的对象即复杂数据类型,按引用访问。 动态属性 对于引用值而言,可以随时添加、修改和删除其属性和方法。 let person = new Object();person.name = 'Jason';person.age = 42;console.log(person.name,person.age);//'J

大学湖北中医药大学法医学试题及答案,分享几个实用搜题和学习工具 #微信#学习方法#职场发展

今天分享拥有拍照搜题、文字搜题、语音搜题、多重搜题等搜题模式,可以快速查找问题解析,加深对题目答案的理解。 1.快练题 这是一个网站 找题的网站海量题库,在线搜题,快速刷题~为您提供百万优质题库,直接搜索题库名称,支持多种刷题模式:顺序练习、语音听题、本地搜题、顺序阅读、模拟考试、组卷考试、赶快下载吧! 2.彩虹搜题 这是个老公众号了 支持手写输入,截图搜题,详细步骤,解题必备

《offer来了》第二章学习笔记

1.集合 Java四种集合:List、Queue、Set和Map 1.1.List:可重复 有序的Collection ArrayList: 基于数组实现,增删慢,查询快,线程不安全 Vector: 基于数组实现,增删慢,查询快,线程安全 LinkedList: 基于双向链实现,增删快,查询慢,线程不安全 1.2.Queue:队列 ArrayBlockingQueue:

硬件基础知识——自学习梳理

计算机存储分为闪存和永久性存储。 硬盘(永久存储)主要分为机械磁盘和固态硬盘。 机械磁盘主要靠磁颗粒的正负极方向来存储0或1,且机械磁盘没有使用寿命。 固态硬盘就有使用寿命了,大概支持30w次的读写操作。 闪存使用的是电容进行存储,断电数据就没了。 器件之间传输bit数据在总线上是一个一个传输的,因为通过电压传输(电流不稳定),但是电压属于电势能,所以可以叠加互相干扰,这也就是硬盘,U盘

人工智能机器学习算法总结神经网络算法(前向及反向传播)

1.定义,意义和优缺点 定义: 神经网络算法是一种模仿人类大脑神经元之间连接方式的机器学习算法。通过多层神经元的组合和激活函数的非线性转换,神经网络能够学习数据的特征和模式,实现对复杂数据的建模和预测。(我们可以借助人类的神经元模型来更好的帮助我们理解该算法的本质,不过这里需要说明的是,虽然名字是神经网络,并且结构等等也是借鉴了神经网络,但其原型以及算法本质上还和生物层面的神经网络运行原理存在

Python应用开发——30天学习Streamlit Python包进行APP的构建(9)

st.area_chart 显示区域图。 这是围绕 st.altair_chart 的语法糖。主要区别在于该命令使用数据自身的列和指数来计算图表的 Altair 规格。因此,在许多 "只需绘制此图 "的情况下,该命令更易于使用,但可定制性较差。 如果 st.area_chart 无法正确猜测数据规格,请尝试使用 st.altair_chart 指定所需的图表。 Function signa