第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.mfbz.cn/a/443224.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【XMU学科实践二】豆瓣爬虫实践

文章目录 分析豆瓣阅读网站具体步骤构造headersBeautiful soup中的定位函数find() 、find_all() 完整爬虫代码 叠甲:仅供学习。。 XMU的小朋友实在不会了可以参考我的思路,但还是建议自己敲一遍哈。 学科实践二还是挺有意思的! 分析豆瓣阅读网…

人才推荐 | 毕业于美国凯斯西储大学的博士,专业知识广泛

编辑 / 木子 审核 / 朝阳 伟骅英才 伟骅英才致力于以大数据、区块链、AI人工智能等前沿技术打造开放的人力资本生态,用科技解决职业领域问题,提升行业数字化服务水平,提供创新型的产业与人才一体化服务的人力资源解决方案和示范平台&#x…

前端实现生成图片并批量下载,下载成果物是zip包

简介 项目上有个需求,需要根据表单填写一些信息,来生成定制的二维码图片,并且支持批量下载二维码图片。 之前的实现方式是直接后端生成二维码图片,点击下载时后端直接返回一个zip包即可。但是项目经理说后端实现方式每次改个东西…

Qt 自绘进度条 QProgressBar使用

文章目录 效果图控件介绍绘制函数总结 效果图 控件介绍 QProgressBar是Qt框架中提供的一个控件,用于在界面上显示任务的进度。它通常用于向用户展示一个操作完成的百分比,比如文件复制、数据加载等操作的进度。 QProgressBar的主要特性: 范…

BUUCTF----[极客大挑战 2019]HardSQL

输入1’ 单引号闭合 进行永真式判断 竟然说我是臭弟弟----八嘎(肯定是进行了过滤) 经过手法判断,过滤了,空格,and等报错注入updatexml() 报错注入顾名思义就是,通过特殊函数错误使用并使其输出错误结果来获…

实现鼠标移动el-select下拉框的label上面显示出table悬浮窗

首先是对vue代码 实现思路就是在el-option里面放一个span来包裹el-popover&#xff0c;里面在放tabe实现悬浮表格 <el-form-item label"原理图编号"><el-select v-model"data.number" placeholder"请选择" clearable multiple collaps…

操作系统笔记(进程)

注&#xff1a; 下面图片资源来源于 王道计算机考研 操作系统 1.进程概念 进程&#xff08;process&#xff09;&#xff1a;是动态的&#xff0c;是程序的一次执行过程&#xff08;同一程序多次执行&#xff0c;会产生多个进程&#xff09;程序&#xff1a;是静态的&…

ChatGPT提示技巧:种子词提示

ChatGPT提示技巧&#xff1a;种子词提示 种子词提示是一种通过提供特定种子词或短语来控制 ChatGPT 输出的技术。 种子词提示符的提示公式是种子词或短语&#xff0c;然后是指令 “请根据以下种子词生成文本”。 示例&#xff1a; 文本生成&#xff1a; 任务&#xff1a; …

MVC,MVP的对比(附代码)一次搞懂!

首先看下我们的页面 一个edittext&#xff0c;一个获取用户信息的button&#xff0c;一个展示用户信息的textview 实现&#xff1a;点击按钮&#xff0c;根据用户输入的账号&#xff0c;获取账号信息并显示在textview上 现在我们用三种方式实现 &#xff08;1&#xff09;不使…

Unity性能优化篇(十) 模型优化之网格合并 Easy Mesh Combine Tool插件使用以及代码实现网格合并

把多个模型的网格合并为一个网格。可以使用自己写代码&#xff0c;使用Unity自带的CombineMeshes方法&#xff0c;也可以使用资源商店的插件&#xff0c;在资源商店搜Mesh Combine可以搜索到相关的插件&#xff0c;例如Easy Mesh Combine Tool等插件。 可大幅度减少Batches数量…

Nginx实现高并发

注&#xff1a;文章是4年前在自己网站上写的&#xff0c;迁移过来了。现在看我之前写的这篇文章&#xff0c;描述得不是特别详细&#xff0c;但描述了Nginx的整体架构思想。如果对Nginx玩得透得或者想了解深入的&#xff0c;可以在网上找找其他的文章。 ......................…

C++顺序结构实例

1.计算浮点数相除的余数 计算两个双精度浮点数a和b相除的余数,a和b都是双精度浮点数。这里的余数r的定义是: a=k * 吧+r,其中k是整数,0<=r<b。 输入 一行,包括两个双精度浮点数a和b 输出 一行,a➗b的余数 样例输入 73.263 0.9973 样例输出 0.4301 #i…

机器学习--循环神经网络(RNN)3

本篇文章结合具体的例子来介绍一下LSTM运算方式以及原理。请结合上篇文章的介绍食用。 一、具体例子 如上图所示&#xff0c;网络里面只有一个 LSTM 的单元&#xff0c;输入都是三维的向量&#xff0c;输出都是一维的输出。 这三维的向量跟输出还有记忆元的关系是这样的。 假设…

小小磁珠对EMC的作用竟然这么大?

磁珠&#xff0c;作为一种电感型的EMI静噪滤波器&#xff0c;其外观与电感颇为相似。目前&#xff0c;应用最为广泛的磁珠类型是铁氧体磁珠&#xff0c;也称作Ferrite Bead。它的度量单位是欧姆&#xff0c;根据型号的不同&#xff0c;磁珠能够抑制的频率范围广泛&#xff0c;覆…

考研数学——高数:重积分

直角坐标系下二重积分 助记1&#xff1a; 因为一重积分求出的是二维平面的面积&#xff0c;类比得到二重积分得到的是三维的体积 而用之前求旋转体体积的思路&#xff1a;已知截面面积可求得体积。来表示二重积分 在控制一个变量不变&#xff08;x / y&#xff09;时&#x…

AVL树讲解

AVL树 1. 概念2. AVL节点的定义3. AVL树插入3.1 旋转 4.AVL树的验证 1. 概念 AVL树是一种自平衡二叉搜索树。它的每个节点的左子树和右子树的高度差&#xff08;平衡因子&#xff0c;我们这里按右子树高度减左子树高度&#xff09;的绝对值不超过1。AVL的左子树和右子树都是AV…

论文阅读笔记 | MetaIQA: Deep Meta-learning for No-Reference Image Quality Assessment

文章目录 文章题目发表年限期刊/会议名称论文简要动机主要思想或方法架构实验结果 文章链接&#xff1a;https://doi.org/10.48550/arXiv.2004.05508 文章题目 MetaIQA: Deep Meta-learning for No-Reference Image Quality Assessment 发表年限 2020 期刊/会议名称 Publi…

vue router 解决路由带参数跳转时出现404问题

我的页面是从一个vue页面router跳转到另一个vue页面&#xff0c;并且利用windows.open() 浏览器重新创建一个页签。但是不知道为什么有时候可以有时候又不行&#xff0c;经过反复测试与分析&#xff0c;最终发现是因为有一个参数的值里包含了小数点., 小数点是浏览器合法字符&a…

visualization_msgs::Marker 的pose设置,map坐标系的3d box显示问题

3D框显示 3D框显示可以使用visualization_msgs::Marker::LINE_LIST或者LINE_STRIP&#xff0c;前者使用方法需要指明线的两个端点&#xff0c;后者自动连接相邻两个点。 姿态问题 网上看了一些&#xff0c;没有涉及到朝向设置&#xff0c;Pose.orientation默认构造为4个0 至…

域控操作十:安装包exe转msi软件下发

需要的文件 Advanced Installer 软件用来将exe转换成msi因为域控只能下发msi格式 一个exe安装包这里拿微信举例 一个没有密码的共享文件夹 1.exe转MSI 2&#xff0c;开始下发 服务器和用户刷新策略 #完成
最新文章