第14章 西瓜书——概率图模型

概率图模型

        概率图模型(Probabilistic Graphical Model)是用图结构来表示多元随机变量之间条件依赖关系的模型。在图模型中,节点表示随机变量,边表示变量之间的依赖关系。概率图模型可以分为有向图模型(如贝叶斯网络)和无向图模型(如马尔可夫网络或马尔可夫随机场)。

1.隐马尔可夫模型

(1)马尔科夫模型

        马尔科夫模型是一种统计模型,它描述了状态之间的转换关系。以天气为例,如果昨天是晴天,那么根据马尔科夫模型,我们可以根据一定的概率推断出今天可能是晴天、阴天或雨天。如下图:

        通过今天的状态,我们可以预测明天的情况;同理,借助明天的状态,我们也能推知后天的情况。这种连续的状态转换,就如同一个链条,一环扣一环。为了实现这一系列的预测,我们首先需要定义一个初始状态,它将成为我们预测的起点。

        在一阶马尔科夫模型中,虽然后面的天气跟前面很多天的天气都有关,但是为了简化问题,我们定义后一天的状态只和前一天的状态有关系。在上面这个例子中:

状态:晴天,多云,雷雨

状态转换概率:三种天气状态间的转换概率

初始概率:

根据以上条件,可以计算今天(t=1)的天气状况:

        今天为晴天的概率=初始晴天概率X晴天转晴天概率+初始多云概率X多云转晴天概率+初始雷雨概率X雷雨转晴天概率。

 (2)隐马尔可夫模型

        隐马尔可夫模型(HMM)的核心思想是对一个被假设为具有不可观测(隐藏)状态的马尔可夫过程系统进行建模。HMM允许你基于一系列观察事件预测一系列隐藏状态。

         现在假设我们无法直接观察到天气状况,我们只能观察到海藻的状况,海藻状态和天气有着密切的关联。海藻是能看到的,那它就是观察状态,天气信息看不到就是隐藏状态。我们的目标是通过观察状态预测隐藏状态。

          

  首先,引入隐马尔科夫模型假设,它的目的是简化条件概率的求解:

  • 齐次马尔可夫假设:当前的状态只和前一状态有关
  • 观测独立假设:某个观测只和生成它的状态有关

 隐马尔可夫模型关注的3个问题:

         给定初始概率(π),隐藏状态转移概率矩阵(A),生成观测状态概率矩阵(B)。

模型为:

 即模型与观测序列之间的匹配程度。

 

即训练模型得到参数,以更好的描述观测序列。 

即根据观测序列推断模型的隐状态。

(3)暴力求解方式

         我们要求的是在给定模型下观测序列出现的概率,那如果我能把所有的隐藏序列都给列出来,也就可以知道联合概率分布 

          其中,隐藏状态和观测状态的联合概率分布为隐藏序列的条件概率乘以生成观测状态概率矩阵

          在给定模型下,一个隐藏序列出现的概率,那就由初始状态求得,T时刻的状态等于T-1时刻的状态乘以状态转移矩阵,依此类推。因此,隐藏状态的条件概率可求为:

        因此,对于固定的隐藏序列,得到观察序列

 的概率为:(观测状态由隐藏状态决定,它们之间假设是独立的)

        联合概率:

         观测序列概率(上面得到的是一个隐藏序列的联合概率,而我们需要得到所有的隐藏序列的联合概率,然后求和):

         复杂度:如果隐藏状态数有N个,时间复杂度为

         解释:当有N个隐藏状态的时候,T时刻的隐藏序列将有N^T个,每个隐藏序列的计算的时间复杂度为2T。

(4) 前向算法

利用动态规划求解,即以空间换取时间,避免重复的计算

        给定t时刻的隐藏状态为i,观测序列为o1,o2...ot的概率叫做前向概率:这是很容易求的

        如果我们求出所有可能状态,不就能够求解了吗

         

         第一个时刻:

        表示第一时刻的隐藏状态为i,观测序列为y1,

 现在到了第t时刻,状态为j,那t+1时刻状态为i表示为:

 现在到了第t时刻,状态为j,那t+1时刻状态为i表示为

 其中t时状态为j的前向概率为:转移到t+1时刻状态为i的概率为

 但是这里要考虑t时刻所有的可能:还要得到t+1的观测

 最终结果依然是需要对各种隐藏状态下的观测状态的条件概率求和。

在前项算法中,t时刻的隐藏状态有N种,t+1时刻的条件概率为N种,前向算法的时间从t=1~T进行遍历;因此时间复杂度为O(TN^2

(5)后向算法

        与前向算法类似,与前向算法相似,但它从后向前递归地计算后向变量。也就是递归求解。

(6)参数估计

        当模型的初始概率(π),隐藏状态转移概率矩阵(A),生成观测状态概率矩阵(B)未知时,此时涉及到参数估计问题,使用EM算法求解。

  1. 初始化:选定模型参数的初始值。通常,这些初始值可以是随机的,或者基于某种启发式选择的。HMM的参数通常包括初始状态概率π,状态转移概率A和观测概率B。
  2. E步(期望步):在这一步中,我们使用当前的模型参数来计算隐变量的期望。对于HMM,这涉及到计算给定观测序列和当前模型参数下,每个时刻t处于状态qi以及从状态qi转移到qj的期望值。这些期望值是通过前向-后向算法(Forward-Backward Algorithm)来计算的。
  3. M步(最大化步):在这一步中,我们使用E步计算出的隐变量的期望值来更新模型参数。对于HMM,这意味着我们要更新初始状态概率π,状态转移概率A和观测概率B。更新这些参数的方法是基于这些参数的最大似然估计,利用在E步中计算出的期望值。
  4. 迭代:重复E步和M步,直到模型参数收敛或者达到预设的迭代次数。每次迭代,我们都会使用更新后的模型参数来重新计算隐变量的期望值,然后再用这些新的期望值来更新模型参数。

2.马尔可夫随机场

        马尔可夫随机场是一种无向图模型,用于描述一组随机变量之间的空间依赖关系。在MRF中,随机变量对应于图中的节点,而变量之间的依赖关系则通过边来表示。MRF的关键特性是它具有马尔可夫性,即每个随机变量的条件概率分布仅依赖于它的邻接变量。

        在马尔可夫随机场中,联合概率使用极大团的势函数的乘积表示。 

         

         

3.条件随机场(CRF)

        条件随机场是一种判别式概率模型,它属于无向图模型的一种。在CRF中,我们给定一组输入随机变量(观测序列),目标是预测另一组输出随机变量(标记序列)的条件概率分布。CRF假设输出随机变量构成马尔可夫随机场。

CRF的概率图表示

        在CRF的概率图表示中,通常有两种类型的节点:观测节点和标记节点。观测节点对应输入序列中的每个元素,而标记节点对应输出序列中的每个标记。边则连接相邻的标记节点,表示它们之间的依赖关系。

        CRF中的条件概率分布可以通过定义在团(clique)上的势函数(potential function)来描述。团是无向图中的完全连接子图。在CRF中,我们通常关注两种类型的团:节点团和边团。节点团包含单个标记节点,而边团包含相邻的标记节点对。

        势函数定义了团中变量的兼容性或相关性。对于节点团,势函数通常与观测节点和对应的标记节点有关,它衡量了给定观测下某个标记的可能性。对于边团,势函数衡量了相邻标记之间的兼容性或转移概率。

CRF的计算与推断

        CRF的条件概率分布可以通过将所有团的势函数相乘并归一化来计算。然而,由于归一化常数的计算涉及到对所有可能的标记序列进行求和,这通常是一个难以处理的问题。因此,在实际应用中,我们通常使用近似推断方法,如动态规划(如维特比算法)或采样方法(如吉布斯采样)来找到最可能的标记序列或计算条件概率。

4.学习与推断

        推断(Inference)则是基于概率图模型所定义的联合概率分布,对目标变量的边际分布或以某些可观测变量为条件的条件分布进行推断。具体来说,推断问题可以分为两类:精确推断和近似推断。

  1. 精确推断:希望能计算出目标变量的边际分布或条件分布的精确值。然而,一般情形下,此类算法的计算复杂度随着极大团规模的增长呈指数增长,因此适用范围有限。变量消去法是最直观的精确推断算法,也是构建其他精确推断算法的基础。但它有一个明显的缺陷:若需计算多个边际分布,重复使用变量消去法将造成大量的冗余计算。
  2. 近似推断:希望在较低时间复杂度下获得原问题的近似解。此类方法在现实任务中更常用。近似推断方法大致可以分为两类:确定性近似(如变分推断)和随机近似(如马尔可夫链蒙特卡罗方法,简称MCMC)。这些方法的目标都是在可接受的计算成本下,尽可能地接近真实分布。

精确推断

(1)变量消去

        核心思想: 变量消除(VE)是一种在概率图模型中进行推理的算法,它通过系统地从方程中消除变量,简化了边缘概率的概率的计算。

         在VE中,目标是计算某些变量的边缘概率,而不必对模型中其他变量的所有可能配置进行求和。这是通过一次消除一个不相关的变量来完成的,利用模型的因子分解属性来降低计算复杂性。过程涉及以一种不再需要被消除变量的方式操纵和结合因子(概率分布),逐步简化模型,直到只剩下感兴趣的变量。

        想象你在图书馆中寻找一本特定的书。你不需要检查每一本书,而是首先排除你知道不包含它的部分(例如,如果你正在寻找一本科幻小说,你就跳过历史部分)。然后,在正确的部分内,你逐个排除书架,等等,直到找到这本书。变量消除也是类似地通过在每一步丢弃不相关的信息来简化查找你感兴趣的概率的过程。

(2)信念传播

核心思想: 信念传播(BP)是一种在图形模型中使用的推理算法,包括贝叶斯网络和马尔可夫随机场,用于计算边缘分布和每个变量的信念。它通过在图的节点(变量和因子)之间传递消息来操作,根据从其邻居收到的消息迭代更新每个节点的信念。

        这个过程从叶子(只有一个邻居的节点)开始发送它们的初始消息。然后每个节点计算一个要发送给每个邻居的消息,通过对发送节点的所有可能值进行整合,考虑来自其他邻居的传入消息和节点自己的证据(如果有的话)。这个程序重复进行,消息来回传递直到收敛,在这一点上,边缘概率可以计算为每个节点传入消息的乘积。

        想象一群人试图一起解决一个谜题,但每个人只掌握了总信息的一部分。他们开始与他们的直接邻居分享他们所知道的。基于他们学到的,他们然后更新他们对谜题的理解,并再次分享这个更新的信息。这个过程重复进行,直到每个人对整个谜题都有一个一致的理解。信念传播的工作方式类似,每个节点根据来自其邻居的信息更新其对世界状态的“信念”。

近似推断 

(1) MCMC抽样

        核心思想: MCMC抽样是一系列算法的统称,用于从概率分布中抽样,这通过构建一个具有所需分布作为其平衡分布的马尔可夫链来实现。它特别适用于直接抽样不切实际的高维空间。

        MCMC方法通过从一个随机位置开始并进行一系列步骤来生成样本,其中每一步只依赖于当前位置(马尔可夫性质)。这些步骤的方式确保了随着时间的推移,样本位置的分布将近似目标概率分布。两种众所周知的MCMC方法是Metropolis-Hastings算法和Gibbs抽样。

  1. Metropolis-Hastings算法:这种方法基于当前位置和一个提议分布提出一个新位置。新位置是基于接受比率接受或拒绝的,接受比率通过比较目标分布下新位置和当前位置的概率来确定。

  2. Gibbs抽样:这是Metropolis-Hastings算法的一个特例,用于当从每个变量的条件分布中抽样更容易时。它循环遍历每个变量,从其条件分布中抽样,同时保持所有其他变量固定。

        想象你在一个巨大的派对上,你想弄清楚哪里是最受欢迎的区域,但人太多了,一次看不到整个场景。所以,你随机穿过人群,根据你认为可能接下来会有趣的地方进行步骤(这是你的提议分布)。你使用一些规则来决定是否移动(接受比率),比如如果区域看起来更拥挤(概率更高)。随着时间的推移,你花费最多时间的区域会让你知道派对的热点在哪里。

(2)变分推断

        核心思想: 变分推断(VI)是贝叶斯统计中用于近似复杂概率分布的技术。它将推理问题转化为一个优化问题,目标是找到一个最接近真实后验分布的简化分布。

        在VI中,我们选择一个带有一组参数的分布家族(例如,高斯分布)。然后,我们调整这些参数,使我们选择的分布尽可能接近目标后验分布,通过库尔巴克-莱布勒(KL)散度来衡量。优化过程旨在最小化这种散度,有效地在选定的分布家族内找到最佳近似。

        VI的美妙之处在于,它可以比精确推理方法(如MCMC)更有效地处理大型数据集和复杂模型,尽管它提供的是近似而非精确解。

         想象你试图用很多细节勾勒一个非常复杂的风景,里面有山脉、河流和森林。变分推断就像选择绘制这个风景的简化卡通或抽象版本。你决定代表某些关键特征(分布家族),然后调整你的绘画(参数)以最好地捕捉风景的本质(目标分布)。虽然你的画不会捕捉到每一个细节,但这是一种传达总体场景的更快方式。

5.LDA主题模型

        LDA是一种用于发现文档集合中隐藏主题结构的统计模型。你可以将LDA想象成一个能够自动对文档进行主题分类的机器。这些主题是隐藏的,即它们并没有直接给出,而是由模型通过分析文档中的单词来推断出来的。

        LDA话题模型的核心思想可以概括为利用文档中的词项共现信息来发现隐藏的主题结构。它假设每个文档是由多个主题混合而成的,而每个主题则是一组相关的单词的集合。LDA通过分析文档中的单词出现情况来推断文档的主题分布以及每个主题下单词的分布。

        在LDA模型中,有两个关键的狄利克雷分布:一个是文档-主题分布,表示每篇文档在各个主题上的权重;另一个是主题-单词分布,表示每个主题下各个单词的出现概率。LDA通过训练和学习这两个分布来揭示文档集合中的主题结构。

LDA的工作过程可以大致分为两个步骤:

  1. 训练阶段:在这个阶段,LDA模型会分析整个文档集合,并尝试找出隐藏的主题。它会根据文档中的单词出现情况来推断每个文档的主题分布,以及每个主题下单词的分布。这个过程是通过贝叶斯推断和狄利克雷分布(一种多项分布的先验分布)来实现的。
  2. 推断阶段:一旦模型训练完成,它就可以用来对新的文档进行主题推断。给定一个新的文档,LDA模型会根据已经学到的主题和单词分布来预测该文档的主题构成。这可以帮助我们理解文档的主题内容,或者对文档进行主题分类。

需要注意的是,LDA模型并不直接告诉我们文档的确切主题,而是给出了文档属于各个主题的概率分布。这意味着一个文档可以同时包含多个主题,只是每个主题所占的比例不同而已。

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

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

相关文章

Oracle VM VirtualBox安装Ubuntu桌面版

背景:学习Docker操作 虚拟机软件:Oracle VM VirtualBox 7.0 系统镜像:ubuntu-20.04.6-desktop-amd64.iso 在Oracle VM VirtualBox新建一个虚拟电脑 选择好安装的目录和选择系统环境镜像 设置好自定义的用户名、密码、主机名 选择一下运行内…

交易平台开发:构建安全/高效/用户友好的在线交易生态圈

在数字化浪潮的推动下,农产品现货大宗商品撮合交易平台已成为连接全球买家与卖家的核心枢纽。随着电子商务的飞速发展,一个安全、高效、用户友好的交易平台对于促进交易、提升用户体验和增加用户黏性至关重要。本文将深入探讨交易平台开发的关键要素&…

Mac使用自动操作(Automator)发送文件到Android设备

需求场景 在Android开发调试的过程中,当需要把电脑上的文件传输到连接的Android设备时,通常的做法是通过adb push命令。那既然是通过命令操作,是否可以通过可视化的工具来操作呢?例如在Finder中,右击某一个文件或者目…

软件测试相关内容第三弹--软件测试基础

写在前:在前篇的两篇博客介绍中我们主要学习软件测试的相关概念,对软件测试进行了初步的了解,本篇博客将进一步进行学习。重点内容包括:软件测试的生命周期、如何描述一个bug、如何定义bug的级别、bug的生命周期以及在实际工作中如…

数学建模【时间序列】

一、时间序列简介 时间序列也称动态序列,是指将某种现象的指标数值按照时间顺序排列而成的数值序列。时间序列分析大致可分成三大部分,分别是描述过去、分析规律和预测未来,本篇将主要介绍时间序列分析中常用的三种模型:季节分解…

多线程扫盲篇

一:前言 多线程在java中具有举足轻重的地位,无论是平时开发中还是面试求职中,对多线程这一块的知识点考察都非常多的,本周我们将平时开发中、面试中常见的一些多线程知识进行梳理,让大家对这一块有更加深入的理解 二…

AOP切面编程,以及自定义注解实现切面

AOP切面编程 通知类型表达式重用表达式切面优先级使用注解开发,加上注解实现某些功能 简介 动态代理分为JDK动态代理和cglib动态代理当目标类有接口的情况使用JDK动态代理和cglib动态代理,没有接口时只能使用cglib动态代理JDK动态代理动态生成的代理类…

armv8/armv9不同特权程序之间的跳转模型

目录 1、前言2、4个特权等级/4个安全状态之间的跳转模型3、启动时镜像之间的跳转模型4、runtime程序之间的跳转模型推荐 本文转自 周贺贺,baron,代码改变世界ctw,Arm精选, armv8/armv9,trustzone/tee,secur…

【docker基础学习之】镜像构建

下面是在工作过遇到的一些实际例子,谨以此作为笔记参考 目录 1.背景2. 寻找方案3. 如何解决4.解决步骤4.1 DockerFile4.2 现在要做的 5. 镜像相关命令 1.背景 部署(迁移)项目时发现,项目的excel导出功能报错,错误如下…

html--彩虹马

文章目录 htmljscss 效果 html <!DOCTYPE html> <html lang"en" > <head> <meta charset"UTF-8"> <title>Rainbow Space Unicorn</title> <link rel"stylesheet" href"css/style.css"> &l…

qsort函数的使用及其模拟实现

一.基本介绍 注意&#xff1a;qsort函数是默认从小到大排序 二、qsort 函数的使用 1.排序数组 int compare(const void* e1, const void* e2) {return *(int*)e1 - *(int*)e2;//强制类型转换 }int main() {int arr[10] { 44,5,34,56,42,90,43,1,52,98 };int num sizeof(…

ubuntu18.04下zookeeper安装与简单使用

下载与解压 官网下载地址 Apache ZooKeeper 解压 tar -zxvf zookeeper-3.4.10.tar.gz 环境准备 zookeeper基于java开发&#xff0c;因此首先需要安装java的jdk包 sudo apt-get install openjdk-8-jdk修改配置 进入解压目录里的conf文件夹内 mv zoo_sample.cfg zoo.cfg …

【R语言爬虫实战】抓取省市级城市常务会议内容

&#x1f349;CSDN小墨&晓末:https://blog.csdn.net/jd1813346972 个人介绍: 研一&#xff5c;统计学&#xff5c;干货分享          擅长Python、Matlab、R等主流编程软件          累计十余项国家级比赛奖项&#xff0c;参与研究经费10w、40w级横向 文…

win11家庭版docker和milvus

docker 1、官网下载docker文件Get Started | Docker&#xff0c;选择download for windows下载。 2、双击打开下载好的文件Docker Desktop Installer.exe&#xff0c;add shortcut to desktop选择√代表同意添加快捷键到桌面&#xff0c;如果不勾选就说明不创建快捷键&#x…

基于SpringBoot的教务管理系统

1&#xff0e;引言 1.1编写目的 教务管理系统是完成学生管理、用户管理、校建管理、课程管理、教师管理、成绩管理、校内新闻、选课管理和教评管理九大管理模块&#xff0c;由教务工作人员系统给管理员、教师、以及学生多用户角色&#xff0c;各用户依据自己角色的不同而操作…

【前端】vscode快捷键和实用Api整理

vscode的快捷键 创建a.html 生成模板 !回车 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" …

AI写真,太火了

昨天晚上&#xff0c;AI大佬吴东子直播讲解了AI写真项目&#xff0c;说21点破局星球会准时放出预约链接&#xff0c;结果21点星球直接崩溃了&#xff0c;只能说这个项目太火爆了 经过星球授权&#xff0c;这里把整个项目的SOP截取一部分给到大家&#xff0c;完整的SOP太长了&am…

数据库(一)初步认识数据库系统

什么是数据库&#xff1f; 表&#xff1a;以按行按列形式组织及展现的数据 如下便是一个表&#xff0c;也叫关系&#xff0c;描述了一批相互有关联关系的数据 数据库&#xff1a;起源于规范化表&#xff08;如成绩单&#xff09;的处理&#xff0c;简称DB&#xff0c;是相互有…

【计算机视觉】图像处理算法(形态学滤波篇)

来源&#xff1a;《OpenCV3编程入门》&#xff0c;怀念毛星云大佬&#x1f56f;️ 说明&#xff1a;本系列重点关注各种图像处理算法的原理、作用和对比 形态学滤波(1 ):腐蚀与膨胀 形态学槪述 数学形态学的概念&#xff1a; 数学形态学(Mathematical morphology)是立在格论…

《深度学习风暴:掀起智能革命的浪潮》

在当今信息时代,深度学习已经成为科技领域的一股强大力量,其应用领域涵盖了从医疗到金融再到智能交互等方方面面。随着技术的不断进步和应用的不断拓展,深度学习的发展势头愈发迅猛,掀起了一股智能革命的浪潮。本文将从基本原理、应用实例、挑战与未来发展方向、与机器学习…