深度学习中的结构化概率模型 - 从图模型中采样篇

序言

在深度学习的广阔领域里,结构化概率模型占据了举足轻重的地位,它们为处理复杂数据结构和高维数据空间提供了强大的工具。这些模型不仅能够捕捉数据之间的依赖关系,还能生成符合数据分布的新样本,为机器学习应用注入了无限的创意与可能。其中,从图模型中采样是理解和利用结构化概率模型的核心技术之一。图模型,如贝叶斯网络、马尔可夫随机场等,通过节点表示变量,边表示变量间的依赖关系,构建了一个直观且强大的框架来描述复杂数据的统计特性。从图模型中采样,意味着我们能够基于这个框架生成符合其定义的概率分布的随机样本,这些样本在训练数据不足或需要进行创造性扩展时尤为宝贵。

从图模型中采样

  • 图模型同样简化了从模型中采样的过程。
  • 有向图模型的一个优点是,可以通过一个简单高效的被称作是原始采样 ( Ancestral Sampling \text{Ancestral Sampling} Ancestral Sampling) 的过程从由模型表示的联合分布中抽取样本。
  • 其基本思想是将图中的变量 x i \text{x}_i xi 使用拓扑排序,使得对于所有 i i i 和 j j j,如果 x i \text{x}_i xi是 x j \text{x}_j xj 的一个父亲结点,则 j j j 大于 i i i。
    • 然后可以按此顺序对变量进行采样。
    • 换句话说,我们可以首先采 x 1 ∼ P ( x 1 ) \text{x}_1 \sim P(\text{x}_1) x1∼P(x1),然后采 x 2 ∼ P ( x 2 ∣ P a G ( x 2 ) ) \text{x}_2 \sim P(\text{x}2 \mid P{a\mathcal{G}}(\text{x}_2)) x2∼P(x2∣PaG(x2)),以此类推,直到最后我们从 P ( x n ∣ P a G ( x n ) ) P(\text{x}n \mid P{a\mathcal{G}}(\text{x}_n)) P(xn∣PaG(xn)) 中采样。
    • 只要从每个条件分布 x i ∼ P ( x i ∣ P a G ( x i ) ) x_i \sim P(\text{x}i \mid P{a\mathcal{G}}(\text{x}_i)) xi∼P(xi∣PaG(xi)) 中采样都是很容易的,那么很容易从整个模型中抽样。
    • 拓扑排序操作保证我们可以按照深度学习中的结构化概率模型 - 使用图来描述模型结构篇 - 公式1中条件分布的顺序依次采样。
    • 如果没有拓扑排序,我们可能会尝试在其父节点可用之前对该变量进行抽样。
  • 对于一些图,可能有多个拓扑排序。原始采样可以使用这些拓扑排序中的任何一个。
  • ++原始采样++ 通常非常快(假设从每个条件分布中采样都是很容易的)并且方便。
    • 原始采样的一个缺点是其仅适用于有向图模型。
    • 另一个缺点是它并不是每次采样都是条件采样操作。
    • 当我们希望从有向图模型中变量的子集中抽样时,给定一些其他变量,我们经常要求所有给定的条件变量在图中比要抽样的变量的顺序要早。
    • 在这种情况下,我们可以从模型分布指定的局部条件概率分布进行抽样。
    • 否则,我们需要采样的条件分布是给定观测变量的后验分布。
    • 这些后验分布在模型中通常没有明确指定和参数化。
    • 推断这些后验分布的代价可能是昂贵的。在这种情况下的模型中,原始采样不再有效。
  • 不幸的是,原始采样仅适用于有向模型。
    • 我们可以通过将无向模型转换为有向模型来实现从无向模型中抽样,但是这通常需要解决棘手的推断问题(以确定新有向图的根节点上的边缘分布),或者需要引入许多边从而会使得到的有向模型变得难以处理。
    • 从无向模型抽样,而不首先将其转换为有向模型的做法似乎需要解决循环依赖的问题。
    • 每个变量与每个其他变量相互作用,因此对于抽样过程没有明确的起点。
    • 不幸的是,从无向模型中抽取样本是一个昂贵的多次迭代的过程。
    • 理论上最简单的方法是Gibbs采样 ( Gibbs Sampling \text{Gibbs Sampling} Gibbs Sampling)。
    • 假设我们在一个 n n n 维向量的随机变量 x \textbf{x} x 上有一个图模型。
    • 我们迭代地访问每个变量 x i x_i xi,在给定其他变量的条件下从 p ( x i ∣ x − i ) p(\text{x}i \mid \text{x}{−i}) p(xi∣x−i)中抽样。
    • 由于图模型的分离性质,抽取 x i x_i xi 的时候我们可以等价地仅对 x i \text{x}_i xi 的邻居条件化。
    • 不幸的是,在我们遍历图模型一次并采样所有 n n n 个变量之后,我们仍然无法得到一个来自 p ( x ) p(\textbf{x}) p(x) 的客观样本。
    • 相反,我们必须重复该过程并使用它们邻居的更新值对所有 n n n 个变量重新取样。
    • 在多次重复之后,该过程渐近地收敛到正确的目标分布。
    • 很难确定样本何时达到所期望分布的足够精确的近似。

总结

在图模型中进行采样,是深度学习及结构化概率模型研究中的一个关键步骤,它不仅深化了我们对数据内在结构和生成机制的理解,还为数据增强、模拟仿真、艺术创作等领域开辟了新途径。通过精心设计的采样算法,如 Gibbs \text{Gibbs} Gibbs(吉布斯采样)、 MCMC \text{MCMC} MCMC(马尔可夫链蒙特卡洛)等,我们能够高效地探索图模型定义的复杂概率空间,生成既多样又逼真的样本。随着计算能力的提升和算法的不断优化,从图模型中采样将变得更加高效和精确,进一步推动深度学习及相关领域的发展,为我们解决复杂现实问题提供更加有力的支持。

往期内容回顾

深度学习中的结构化概率模型 - 使用图来描述模型结构篇

相关推荐
极客小张6 分钟前
基于STM32的智能家居语音控制系统:集成LD3320、ESP8266设计流程
c语言·stm32·物联网·算法·毕业设计·课程设计·语言识别
拜刊物苏哲15 分钟前
【机器学习(九)】分类和回归任务-多层感知机 (MLP) -Sentosa_DSML社区版
机器学习·分类·回归
曳渔25 分钟前
Java-数据结构-反射、枚举 |ू・ω・` )
java·开发语言·数据结构·算法
唐 城29 分钟前
毕业设计——物联网设备管理系统后台原型设计
人工智能·深度学习·yolo·数据挖掘·imagen
꧁༺❀氯ྀൢ躅ྀൢ❀༻꧂37 分钟前
算法与程序课程设计——观光铁路
c语言·c++·算法·课程设计·dijkstra 算法·spfa算法
会飞的Anthony40 分钟前
基于Python的人工智能应用案例系列(14):Fashion MNIST图像分类CNN
人工智能
工业机器视觉设计和实现43 分钟前
cnn突破六(四层bpnet网络公式)
人工智能·神经网络·cnn
985小水博一枚呀1 小时前
【深度学习基础模型】稀疏自编码器 (Sparse Autoencoders, SAE)详细理解并附实现代码。
人工智能·python·深度学习·学习·sae·autoencoder
忘梓.1 小时前
C嘎嘎入门篇:类和对象番外(时间类)
c++·算法
好看资源平台1 小时前
深度学习在计算机视觉中的应用
人工智能·深度学习·计算机视觉