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

news2024/10/4 5:23:28

序言

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

从图模型中采样

  • 图模型同样简化了从模型中采样的过程。
  • 有向图模型的一个优点是,可以通过一个简单高效的被称作是原始采样 ( 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) x1P(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)) x2P(x2PaG(x2)),以此类推,直到最后我们从 P ( x n ∣ P a G ( x n ) ) P(\text{x}_n \mid P_{a\mathcal{G}}(\text{x}_n)) P(xnPaG(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)) xiP(xiPaG(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(xixi)中抽样。
    • 由于图模型的分离性质,抽取 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(马尔可夫链蒙特卡洛)等,我们能够高效地探索图模型定义的复杂概率空间,生成既多样又逼真的样本。随着计算能力的提升和算法的不断优化,从图模型中采样将变得更加高效和精确,进一步推动深度学习及相关领域的发展,为我们解决复杂现实问题提供更加有力的支持。

往期内容回顾

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

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

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

相关文章

Stream流的终结方法(二)——collect

1.Stream流的终结方法 2. collect方法 collect方法用于收集流中的数据放到集合中去,可以将流中的数据放到List,Set,Map集合中 2.1 将流中的数据收集到List集合中 package com.njau.d10_my_stream;import java.util.*; import java.util.f…

Leetcode—560. 和为 K 的子数组【中等】(unordered_map)

2024每日刷题&#xff08;166&#xff09; Leetcode—560. 和为 K 的子数组 C实现代码 class Solution { public:int subarraySum(vector<int>& nums, int k) {unordered_map<int, int> mp{{0, 1}};int ans 0;int prefix 0;for(int i 0; i < nums.size…

深度学习----------------------------编码器、解码器架构

目录 重新考察CNN重新考察RNN编码器-解码器架构总结编码器解码器架构编码器解码器合并编码器和解码器 重新考察CNN 编码器&#xff1a;将输入编码成中间表达形式&#xff08;特征&#xff09; 解码器&#xff1a;将中间表示解码成输出。 重新考察RNN 编码器&#xff1a;将文…

(11)MATLAB莱斯(Rician)衰落信道仿真2

文章目录 前言一、莱斯衰落信道仿真模型二、仿真代码与结果1.仿真代码2.仿真结果画图 三、后续&#xff1a;四、参考文献&#xff1a; 前言 首先给出莱斯衰落信道仿真模型&#xff0c;该模型由直射路径分量和反射路径分量组成&#xff0c;其中反射路径分量由瑞利衰落信道模型构…

水下垃圾识别数据集支持yolov5、yolov6、yolov7、yolov8、yolov9、yolov10总共3131张数据训练集1886张带标注的txt文件

水下垃圾识别数据集 支持yolov5、yolov6、yolov7、yolov8、yolov9、yolov10 总共3131张数据 训练集1886张 带标注的txt文件 水下垃圾识别数据集介绍 数据集名称 水下垃圾识别数据集 (Underwater Trash Detection Dataset) 数据集概述 该数据集专为训练和评估基于YOLO系列目…

【一文理解】conda install pip install 区别

大部分情况下&#xff0c;conda install & pip install 二者安装的package都可以正常work&#xff0c;但是混装多种package后容易版本冲突&#xff0c;出现各种报错。 目录 检查机制 支持语言 库的位置 环境隔离 编译情况 检查机制 conda有严格的检查机制&#xff0c…

python-线程与进程

进程 程序编写完没有运行称之为程序。正在运行的代码&#xff08;程序&#xff09;就是进程。在Python3语言中&#xff0c;对多进程支持的是multiprocessing模块和subprocess模块。multiprocessing模块为在子进程中运行任务、通讯和共享数据&#xff0c;以及执行各种形式的同步…

【Java数据结构】 链表

【本节目标】 1. ArrayList 的缺陷 2. 链表 3. 链表相关 oj题目 一. ArrayList的缺陷 上节课已经熟悉了ArrayList 的使用&#xff0c;并且进行了简单模拟实现。通过源码知道&#xff0c; ArrayList 底层使用数组来存储元素&#xff1a; public class ArrayList<E>…

探索Spring Boot:实现“衣依”服装电商平台

1系统概述 1.1 研究背景 如今互联网高速发展&#xff0c;网络遍布全球&#xff0c;通过互联网发布的消息能快而方便的传播到世界每个角落&#xff0c;并且互联网上能传播的信息也很广&#xff0c;比如文字、图片、声音、视频等。从而&#xff0c;这种种好处使得互联网成了信息传…

深入理解 CSS 浮动(Float):详尽指南

“批判他人总是想的太简单 剖析自己总是想的太困难” 文章目录 前言文章有误敬请斧正 不胜感恩&#xff01;目录1. 什么是 CSS 浮动&#xff1f;2. CSS 浮动的历史背景3. 基本用法float 属性值浮动元素的行为 4. 浮动对文档流的影响5. 清除浮动clear 属性清除浮动的技巧1. 使用…

从零开始讲PCIe(1)——PCI概述

一、前言 在之前的内容中&#xff0c;我们已经知道了PCIe是一种外设总线协议&#xff0c;其前身是PCI和PCI-X&#xff0c;虽然PCIe在硬件上有了很大的进步&#xff0c;但其使用的软件与PCI系统几乎保持不变。这种向后兼容性设计&#xff0c;目的是使从旧设计到新设计的迁移更加…

【QGis】生成规则网格/渔网(Fishnet)

【QGis】生成规则网格/渔网&#xff08;Fishnet&#xff09; QGis操作案例参考 QGIS下载安装及GIS4WRF插件导入可参见另一博客-【QGIS】软件下载安装及GIS4WRF插件使用。 QGis操作案例 1、加载中国省级边界&#xff0c;QGis界面如下&#xff1a; 查看坐标系&#xff1a; 如…

详解JVM类加载机制

❝ 前几篇文章我们分别详细描述了 JVM整体的内存结构 JVM对象内存是如何布局的以及内存分配的详细过程 但是对JVM内存结构各个模块没有深入的分析&#xff0c;为了熟悉JVM底层结构&#xff0c;接下来将把JVM运行时数据区的各个模块逐一分析&#xff0c;体系化的理解JVM的各个模…

【S32K3 RTD LLD篇5】K344 ADC SW+HW trigger

【S32K3 RTD LLD篇5】K344 ADC SWHW trigger 一&#xff0c;文档简介二&#xff0c;ADC SW HW 触发2.1 软硬件平台2.2 SWADC 软件触发2.3 SWBCTUADC 软件BCTU触发2.4 PITTRIGMUXADC 硬件PIT TRIGUMX触发2.5 EMIOSBCTUHWADC硬件EMIOS BCTU触发2.6 EMIOSBCTUHW LISTADC硬件EMIOS …

【计算机毕业设计】springboot游戏分享网站

摘 要 网络的广泛应用给生活带来了十分的便利。所以把游戏分享管理与现在网络相结合&#xff0c;利用java技术建设游戏分享网站&#xff0c;实现游戏分享的信息化。则对于进一步提高游戏分享管理发展&#xff0c;丰富游戏分享管理经验能起到不少的促进作用。 游戏分享网站能够…

Oracle架构之物理存储中各种文件详解

文章目录 1 物理存储1.1 简介1.2 数据文件&#xff08;data files&#xff09;1.2.1 定义1.2.2 分类1.2.2.1 系统数据文件1.2.2.2 撤销数据文件1.2.2.3 用户数据文件1.2.2.4 临时数据文件 1.3 控制文件&#xff08;Control files&#xff09;1.3.1 定义1.3.2 查看控制文件1.3.3…

【重学 MySQL】五十五、浮点和定点数据类型

【重学 MySQL】五十五、浮点和定点数据类型 种类选择数据精度说明浮点数据精度定点数据精度总结 精度误差说明浮点数据精度误差定点数据精度误差总结 示例注意事项开发中经验 在MySQL中&#xff0c;浮点和定点数据类型用于存储小数和实数。 种类 MySQL提供了两种主要的浮点数…

SuiteCRM系统 responseEntryPoint SQL注入复现(CVE-2024-36412)

0x01 产品描述&#xff1a; SuiteCRM是一款开源的CRM&#xff08;客户关系管理&#xff09;系统&#xff0c;它致力于为世界各地的用户提供高效、灵活和可定制的CRM解决方案。它为企业和组织提供了一套完整的客户关系管理解决方案&#xff0c;无论是中小型企业还是大型企业&…

Python和R及Julia妊娠相关疾病生物剖析算法

&#x1f3af;要点 算法使用了矢量投影、现代优化线性代数、空间分区技术和大数据编程利用相应向量空间中标量积和欧几里得距离的紧密关系来计算使用妊娠相关疾病&#xff08;先兆子痫&#xff09;、健康妊娠和癌症测试算法模型使用相关性投影利用相关性和欧几里得距离之间的关…

linux第二课:常用命令

Kali Linux&#xff0c;黑客必备神器。跟着我&#xff0c;带你从入门到入狱&#xff01; 第二课&#xff0c;常用命令。 1.whoami 翻译为中文&#xff1a;我是谁 用途&#xff1a;输出现在自己的用户身份(用户名) 参数&#xff1a;无参数 好吧&#xff0c;这透明度一调都不…