【深度学习】概率图模型(一)概率图模型理论简介

文章目录

  • 一、概率图模型
    • 1. 联合概率表
    • 2. 条件独立性假设
    • 3. 三个基本问题
  • 二、模型表示
    • 1. 有向图模型(贝叶斯网络)
    • 2. 无向图模型(马尔可夫网络)
  • 三、学习
  • 四、推断

在这里插入图片描述

  概率图模型(Probabilistic Graphical Model,PGM)是一种用图结构来表示和推断多元随机变量之间条件独立性的概率模型。图模型提供了一种直观且有效的方式来描述高维空间中的概率分布,通过图结构表示随机变量之间的关系,使得模型的参数量得以减少。

一、概率图模型

  • 在概率图模型中
    • 随机变量通常用斜体的大写字母表示,取值用斜体的小写字母表示。
    • 随机向量用粗斜体的大写字母表示,其取值用粗斜体的小写字母表示。

  考虑一个由 K K K 个离散随机变量 X 1 , X 2 , … , X K X_1, X_2, \ldots, X_K X1,X2,,XK 组成的随机向量 X = [ X 1 , X 2 , … , X K ] T \mathbf{X} = [X_1, X_2, \ldots, X_K]^T X=[X1,X2,,XK]T,其中每个变量都有 M M M 个可能的取值,其联合概率在高维空间中的分布很难直接建模。在没有任何独立性假设的情况下,我们需要为每一种组合分配一个概率值。每个变量有 M M M 个可能的取值,因此有 M K M^K MK 种可能的组合。由于概率的总和必须等于1,所以最后一个概率值可以通过对其他概率值进行补充得到,因此,我们需要 M K − 1 M^K - 1 MK1 个参数。
  当𝑀 = 2且𝐾 = 100时,参数量(约为 1 0 30 10^{30} 1030)将远远超出目前计算机的存储能力。为了有效减少参数量,可以使用独立性假设。一个𝐾维随机向量𝑿的联合概率可以分解为𝐾个条件概率的乘积。如果某些变量之间存在条件独立性,参数量就可以显著减少。
  对于一个 K K K 维随机向量 X \mathbf{X} X,其联合概率可以根据条件独立性假设分解为条件概率的乘积:
p ( x ) ≜ P ( X = x ) = ∏ k = 1 K p ( x k ∣ x 1 , … , x k − 1 ) p(\mathbf{x}) \triangleq P(\mathbf{X} = \mathbf{x}) = \prod_{k=1}^{K} p(x_k | \mathbf{x}_1, \ldots, x_{k-1}) p(x)P(X=x)=k=1Kp(xkx1,,xk1)其中, x = [ x 1 , x 2 , … , x K ] \mathbf{x} = [x_1, x_2, \ldots, x_K] x=[x1,x2,,xK] 表示变量 X \mathbf{X} X 的取值。通过这种分解,我们可以将原本需要 M K M^K MK 个参数的问题,降低到对每个变量的条件概率的参数的数量之和。如果某些变量之间存在条件独立关系,那么相应的条件概率的参数量就可以大幅减少。
  概率图模型中,贝叶斯网络和马尔可夫网络都利用了这种条件独立性的结构,以更紧凑的方式表示联合概率分布,从而提高了模型的可解释性和计算效率。

1. 联合概率表

  假设有四个二值变量 X 1 , X 2 , X 3 , X 4 X_1, X_2, X_3 , X_4 X1,X2,X3,X4

  • 在不知道这几个变量依赖关系的情况下,可以用一个联合概率表来记录每一种取值的概率,需要 M K − 1 = 2 4 − 1 = 15 M^K − 1 = 2^4 − 1 = 15 MK1=241=15个参数。
    • 联合概率表包含了每个可能的组合及其对应的概率。在这个情况下,由于每个二值变量有两个可能的取值,总共有 2 4 = 16 2^4 = 16 24=16种可能的组合。下面是一个简化的例子,其中假设概率分布是均匀的,即 p ( x ) = 1 16 p(\mathbf{x}) = \frac{1}{16} p(x)=161

X 1 X 2 X 3 X 4 p ( x ) 0 0 0 0 1 16 0 0 0 1 1 16 0 0 1 0 1 16 0 0 1 1 1 16 0 1 0 0 1 16 0 1 0 1 1 16 0 1 1 0 1 16 0 1 1 1 1 16 1 0 0 0 1 16 1 0 0 1 1 16 1 0 1 0 1 16 1 0 1 1 1 16 1 1 0 0 1 16 1 1 0 1 1 16 1 1 1 0 1 16 1 1 1 1 1 16 \begin{array}{cccc|c} X_1 & X_2 & X_3 & X_4 & p(\mathbf{x}) \\ \hline 0 & 0 & 0 & 0 & \frac{1}{16} \\ 0 & 0 & 0 & 1 & \frac{1}{16} \\ 0 & 0 & 1 & 0 & \frac{1}{16} \\ 0 & 0 & 1 & 1 & \frac{1}{16} \\ 0 & 1 & 0 & 0 & \frac{1}{16} \\ 0 & 1 & 0 & 1 & \frac{1}{16} \\ 0 & 1 & 1 & 0 & \frac{1}{16} \\ 0 & 1 & 1 & 1 & \frac{1}{16} \\ 1 & 0 & 0 & 0 & \frac{1}{16} \\ 1 & 0 & 0 & 1 & \frac{1}{16} \\ 1 & 0 & 1 & 0 & \frac{1}{16} \\ 1 & 0 & 1 & 1 & \frac{1}{16} \\ 1 & 1 & 0 & 0 & \frac{1}{16} \\ 1 & 1 & 0 & 1 & \frac{1}{16} \\ 1 & 1 & 1 & 0 & \frac{1}{16} \\ 1 & 1 & 1 & 1 & \frac{1}{16} \\ \end{array} X10000000011111111X20000111100001111X30011001100110011X40101010101010101p(x)161161161161161161161161161161161161161161161161

2. 条件独立性假设

  • 联合概率分布:
    p ( x 1 , x 2 , x 3 , x 4 ) = p ( x 1 ) ⋅ p ( x 2 ∣ x 1 ) ⋅ p ( x 3 ∣ x 1 , x 2 ) ⋅ p ( x 4 ∣ x 1 , x 2 , x 3 ) p(x_1, x_2, x_3, x_4) = p(x_1) \cdot p(x_2 | x_1) \cdot p(x_3 | x_1, x_2) \cdot p(x_4 | x_1, x_2, x_3) p(x1,x2,x3,x4)=p(x1)p(x2x1)p(x3x1,x2)p(x4x1,x2,x3)

  • 通过引入条件独立性假设,可以减少参数量:

    • 例如,在已知 X 1 X_1 X1时, X 2 X_2 X2 X 3 X_3 X3独立,即有: p ( x 2 ∣ x 1 , x 3 ) = p ( x 2 ∣ x 1 ) p(x_2|x_1, x_3) = p(x_2|x_1) p(x2x1,x3)=p(x2x1) p ( x 3 ∣ x 1 , x 2 ) = p ( x 3 ∣ x 1 ) p(x_3|x_1, x_2) = p(x_3|x_1) p(x3x1,x2)=p(x3x1)
    • 在已知 X 2 X_2 X2 X 3 X_3 X3时, X 4 X_4 X4也和 X 1 X_1 X1独立,即有: p ( x 4 ∣ x 1 , x 2 , x 3 ) = p ( x 4 ∣ x 2 , x 3 ) p(x_4|x_1, x_2, x_3) = p(x_4|x_2, x_3) p(x4x1,x2,x3)=p(x4x2,x3)
    • 这样可以将联合概率分解为四个局部条件概率的乘积,从而减少参数量。 p ( x ) = p ( x 1 ) ⋅ p ( x 2 ∣ x 1 ) ⋅ p ( x 3 ∣ x 1 ) ⋅ p ( x 4 ∣ x 2 , x 3 ) p(\mathbf{x}) = p(x_1) \cdot p(x_2 | x_1) \cdot p(x_3 | x_1) \cdot p(x_4 | x_2, x_3) p(x)=p(x1)p(x2x1)p(x3x1)p(x4x2,x3)
      • p ( x 1 ) p(x_1) p(x1) 的参数数量为 1
        • M K − 1 = 2 1 − 1 = 1 M^K − 1 = 2^1 − 1 = 1 MK1=211=1
      • p ( x 2 ∣ x 1 ) p(x_2 | x_1) p(x2x1) 的参数数量为 2(在给定 X 1 X_1 X1 的条件下)
        • x 1 x_1 x1有两种情况
        • 2 ∗ ( M K − 1 ) = 2 ∗ ( 2 1 − 1 ) = 1 2*(M^K − 1) = 2*(2^1 − 1)= 1 2(MK1)=2(211)=1
      • p ( x 3 ∣ x 1 ) p(x_3 | x_1) p(x3x1) 的参数数量为 2(在给定 X 1 X_1 X1 的条件下)
      • p ( x 4 ∣ x 2 , x 3 ) p(x_4 | x_2, x_3) p(x4x2,x3) 的参数数量为 4(在给定 X 2 X_2 X2 X 3 X_3 X3 的条件下)
        • x 2 , x 3 x_2, x_3 x2,x3取值有4种情况
    • 总的独立参数数量为 1 + 2 + 2 + 4 = 9 1 + 2 + 2 + 4 = 9 1+2+2+4=9

3. 三个基本问题

  1. 表示问题:这个问题涉及如何选择和设计图结构,以有效地表示变量之间的依赖关系。在贝叶斯网络中,这通常涉及到选择合适的有向边,而在马尔可夫网络中,涉及到选择无向边。图结构的选择直接影响了概率模型的表达能力和推断效率。

  2. 学习问题:学习问题可以进一步分为两个部分:图结构的学习和参数的学习。在图结构的学习中,目标是从数据中推断出最合适的图结构,描述变量之间的依赖关系。在参数的学习中,已知图结构的情况下,目标是估计模型中的参数,使得模型与观测数据的拟合最好。

  3. 推断问题:推断问题涉及在给定部分变量的观测值时,计算其他变量的条件概率分布。这可以通过贝叶斯推断、变分推断等方法来解决。推断在概率图模型中是一个关键的任务,因为它允许我们根据观测到的证据来推断未观测到的变量的状态,从而进行概率推理。

二、模型表示

  概率图模型主要分为两类:有向图模型和无向图模型。

1. 有向图模型(贝叶斯网络)

  有向图模型使用有向非循环图(DAG)来描述变量之间的关系。在有向图中,节点表示随机变量,有向边表示因果关系。如果图中有一条从节点 (A) 到节点 (B) 的有向边,表示 (A) 是 (B) 的一个直接因果。在这种模型中,边的方向表示了变量之间的因果关系,而节点之间的有向路径可以表示条件独立性关系。例如,对于三个变量 X 1 , X 2 , X 3 X_1, X_2, X_3 X1,X2,X3,有向图可能是 X 1 → X 2 → X 3 X_1 \rightarrow X_2 \rightarrow X_3 X1X2X3,表示 X 1 X_1 X1 影响 X 2 X_2 X2 X 2 X_2 X2 影响 X 3 X_3 X3

2. 无向图模型(马尔可夫网络)

  无向图模型使用无向图来描述变量之间的关系。在无向图中,节点表示随机变量,无向边表示变量之间有概率依赖关系,但不指明因果关系。每一条无向边表示两个变量之间存在概率依赖关系。 例如,对于三个变量 X 1 , X 2 , X 3 X_1, X_2, X_3 X1,X2,X3,无向图可能是 X 1 ∼ X 2 ∼ X 3 X_1 \sim X_2 \sim X_3 X1X2X3,表示 X 1 X_1 X1 X 2 X_2 X2 之间、 X 2 X_2 X2 X 3 X_3 X3 之间都存在概率依赖。

三、学习

  图模型的学习可以分为两部分:一是网络结构学习,即寻找最优的网络结构;二是网络参数估计,即已知网络结构,估计每个条件概率分布的参数.网络结构学习比较困难,一般是由领域专家来构建.图模型的参数估计问题又分为不包含隐变量时的参数估计问题和包含隐变量时的参数估计问题.

持续更新ing……

四、推断

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

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

相关文章

Leetcode 2943. Maximize Area of Square Hole in Grid

Leetcode 2943. Maximize Area of Square Hole in Grid 1. 解题思路2. 代码实现 题目链接:2943. Maximize Area of Square Hole in Grid 1. 解题思路 这一题的话其实横轴和竖轴可以分开来独立考察,因为两者互不影响,我们最终的答案一定是两…

ROS知识:卡尔曼滤波

https://en.wikipedia.org/wiki/Kalman_filter 一、提要 在卡尔曼滤波的相关技术文献中,其数学表达看起来都非常晦涩和不透明。这很糟糕,如果您以正确的方式看待卡尔曼滤波器,它实际上非常简单易懂。这里的叙述简单,先决条件也很简单;您所需要的只是对概率和矩阵的基本了解…

【C++】友元

1. 友元的概念 友元的目的就是让一个函数或者类 访问另一个类中私有成员。 友元的三种实现&#xff1a; 全局函数做友元类做友元成员函数做友元 2. 友元的实现方式 2.1 全局函数做友元 #include <iostream> using namespace std; class Building {// 告诉编译器 go…

【Android Gradle】之一小时 Gradle及 wrapper 入门

&#x1f604;作者简介&#xff1a; 小曾同学.com,一个致力于测试开发的博主⛽️&#xff0c;主要职责&#xff1a;测试开发、CI/CD 如果文章知识点有错误的地方&#xff0c;还请大家指正&#xff0c;让我们一起学习&#xff0c;一起进步。 &#x1f60a; 座右铭&#xff1a;不…

PC删除数据,并提示删除成功

<template<el-button size"mini" type"text">分配权限</el-button><el-button size"mini" type"text" click"btnEditRow(row)">编辑</el-button ><el-popconfirmtitle"这是一段内容确定…

计算机毕业设计springboot+vue高校田径运动会报名管理系统61s38

高校田径运动会管理采用java技术&#xff0c;基于springboot框架&#xff0c;mysql数据库进行开发&#xff0c;实现了首页、个人中心、运动员管理、裁判员管理、场地信息管理、项目类型管理、比赛项目管理、比赛报名管理、比赛成绩管理、通知公告管理、留言板管理、交流论坛、系…

Git设置多个仓库同时推送

Git设置多个仓库同时推送 添加 在Git中&#xff0c;有时我们需要将同一份代码推送到不同的远程仓库&#xff0c;只是URL地址不同。 下面是一种优化的方法来设置多个仓库同时推送&#xff1a; # 添加一个新的远程仓库 git remote set-url --add origin2 新的仓库地址这样&am…

微软发布了Orca 2,一对小型语言模型,它们的性能超越了体积更大的同类产品

尽管全球目睹了OpenAI的权力斗争和大规模辞职&#xff0c;但作为AI领域的长期支持者&#xff0c;微软并没有放慢自己的人工智能努力。今天&#xff0c;由萨提亚纳德拉领导的公司研究部门发布了Orca 2&#xff0c;这是一对小型语言模型&#xff0c;它们在零样本设置下对复杂推理…

数据结构---顺序表

文章目录 线性表线性表的定义线性表分类 顺序表顺次表的存储结构实现顺序表的主要接口函数初始化顺序表顺序表尾插顺序表尾删顺序表头插顺序表头删在指定位置插入数据在指定的位置删除数据头插&#xff0c;头删&#xff0c;尾插&#xff0c;尾删新写法打印顺序表销毁顺序表 线性…

AcWing105. 七夕祭

题目 七夕节因牛郎织女的传说而被扣上了「情人节」的帽子。 于是 TYVJ 今年举办了一次线下七夕祭。 Vani 同学今年成功邀请到了 cl 同学陪他来共度七夕&#xff0c;于是他们决定去 TYVJ 七夕祭游玩。 TYVJ 七夕祭和 11 区的夏祭的形式很像。 矩形的祭典会场由 N N N 排 …

《C++ 新经典》设计模式前言

文章目录 本章内容概述一、概念二、模式分类本章总结 本章内容概述 本系列将详细剖析王建伟老师编著的 《C 新经典 设计模式》一书&#xff0c;结合书中知识与笔者个人分析&#xff0c;对设计模式进行详细讲解&#xff0c;希望对初学者能够有所帮助。本文将作为此系列的引言&a…

基于halo框架采用docker-compose快速部署个人博客

halo快速部署个人博客 技术方案 dockerdocker-composenginxmysql halo简介 Halo是一款现代化的开源博客/CMS系统&#xff0c;所有代码开源在GitHub上且处于积极维护状态。它是基于 Java Spring Boot 构建的&#xff0c;易于部署&#xff0c;支持REST API、模板系统、附件系…

关于微服务的思考

目录 什么是微服务 定义 特点 利弊 引入时机 需要哪些治理环节 从单体架构到微服务架构的演进 单体架构 集群和垂直化 SOA 微服务架构 如何实现微服务架构 服务拆分 主流微服务解决方案 基础设施 下一代微服务架构Service Mesh 什么是Service Mesh&#xff1f…

vue3 element-plus el-table表头冻结,表头吸顶

一.使用方式 在main.ts页面创建 vue指令 import { createSticky } from /utils/stickyconst app createApp(App)createSticky(app)...app.mount(#app);在el-table标签上使用 v-sticky <div class"table-box"><!--此处的 .table-box 是会出现滚动条的DOM元…

java线程三种方式

1.继承Thread类 线程1.2交替执行 public class MyThread extends Thread {Overridepublic void run() {for (int i 0; i < 100; i) {System.out.println(getName()"------""HelloWorld");}} } /*** desc 继承Thread类&#xff0c;线程1 2 交替执行* …

python实现自动刷平台学时

背景 前一阵子有个朋友让我帮给小忙&#xff0c;因为他每学期都要看视频刷学时&#xff0c;一门平均需要刷500分钟&#xff0c;一学期有3-4门需要刷的。 如果是手动刷的话&#xff0c;比较麻烦&#xff0c;能否帮他做成自动化的。搞成功的话请我吃饭。为了这顿饭&#xff0c;咱…

京东秒杀之商品展示

1 在gitee上添加.yml文件 1.1 添加good-server.yml文件 server:port: 8084 spring:datasource:url: jdbc:mysql://localhost:3306/shop_goods?serverTimezoneGMT%2B8driverClassName: com.mysql.cj.jdbc.Drivertype: com.alibaba.druid.pool.DruidDataSourceusername: rootpa…

SQL 查询优化的 10 个案例!

在应用开发的早期&#xff0c;数据量少&#xff0c;开发人员开发功能时更重视功能上的实现&#xff0c;随着生产数据的增长&#xff0c;很多SQL语句开始暴露出性能问题&#xff0c;对生产的影响也越来越大&#xff0c;有时可能这些有问题的SQL就是整个系统性能的瓶颈。 SQL优化…

多功能音乐沙漏的设计与实现

【摘要】随着当今社会快节奏生活的发展&#xff0c;当代大学生越来忽视时间管理的重要性&#xff0c;在原本计划只看几个视频只玩几个游戏的碎片化娱乐中耗费了大量的时光&#xff0c;对于自己原本的学习生活产生了巨大的影响。为更加有效的反映时间的流逝&#xff0c;特设计该…

智慧公厕客流统计,是通过什么原理实现的?

在这个信息爆炸的时代&#xff0c;科技已经深刻地渗透到我们生活的方方面面&#xff0c;就连那些看似与现代社会脱节的公厕&#xff0c;也迎来了智慧时代的冲击。智慧公厕客流统计系统的崭新面貌&#xff0c;不仅实现了对卫生间使用情况的精准监测&#xff0c;更为城市管理者提…