【机器学习6】概率图模型

用观测结点表示观测到的数据, 用隐含结点表示潜在的知识, 用边来描述知识与数据的相互关系, 最后基于这样的关系图获得一个概率分布 。
概率图中的节点分为隐含节点和观测节点, 边分为有向边和无向边。 从概率论的角度, 节点对应于随机变量, 边对应于随机变量的依赖或相关关系, 其中有向边表示单向的依赖, 无向边表示相互依赖关系。
概率图模型分为贝叶斯网络(Bayesian Network) 和马尔可夫网络(MarkovNetwork) 两大类。 贝叶斯网络可以用一个有向图结构表示, 马尔可夫网络可以表示成一个无向图的网络结构。 更详细地说, 概率图模型包括了朴素贝叶斯模型、最大熵模型、 隐马尔可夫模型、 条件随机场、主题模型等。

1 贝叶斯网络与马尔科夫网络

1.1 贝叶斯网络

在这里插入图片描述

1.2 马尔科夫网络

对于图中所有节点x={x1,x2,…,xn}所构成的一个子集, 如果在这个子集中, 任意两点之间都存在边相连, 则这个子集中的所有节点构成了一个团。 如果在这个子集中加入任意其他节点, 都不能构成一个团, 则称这样的子集构成了一个最大团。
在这里插入图片描述

2 朴素贝叶斯模型和最大熵模型

2.1 朴素贝叶斯模型

朴素贝叶斯模型通过预测指定样本属于特定类别的概率P(yi|x)来预测该样本的所属类别:

在这里插入图片描述

x=(x1,x2,…,xn)为样本对应的特征向量, P(x)为样本的先验概率。 对于特定的样本x和任意类别yi, P(x)的取值均相同, 并不会影响P(yi|x)取值的相对大小, 因此在计算中可以被忽略。 假设特征x1,x2,…,xn相互独立,

在这里插入图片描述

可以看到后验概率P(xj|yi)的取值决定了分类的结果, 并且任意特征xj都由yi的取值所影响。变量y同时对x1,x2,…,xN这N个变量产生影响, 因此概率图模型可以用图表示。

在这里插入图片描述

2.2 最大熵模型

最大熵原理是概率模型学习的一个准则, 指导思想是在满足约束条件的模型集合中选取熵最大的模型, 即不确定性最大的模型。
假设离散随机变量x的分布是P(x), 则关于分布P的熵定义为:
在这里插入图片描述
给定离散随机变量x和y上的条件概率分布P(y|x), 定义在条件概率分布上的条件熵为:
在这里插入图片描述
其中 (x)为样本在训练数据集上的经验分布, 即x的各个取值在样本中出现的频率统计.
最大熵模型就是要学习到合适的分布P(y|x), 使得条件熵H§的取值最大。 在对训练数据集一无所知的情况下, 最大熵模型认为P(y|x)是符合均匀分布的。有了训练数据集之后, 特征函数f描述了输入x和输出y之间的一个规律, 例如当x=y时, f(x,y)等于一个比较大的正数。 为了使学习到的模型P(y|x)能够正确捕捉训练数据集中的这一规律(特征) , 我们加入一个约束, 使得特征函数f(x,y)关于经验分布 (x,y)的期望值与关于模型P(y|x)和经验分布 (x)的期望值相等, 即:
在这里插入图片描述
综上, 给定训练数据集 , 以及M个特征函数,最大熵模型的学习等价于约束最优化问题:
在这里插入图片描述
求解之后可以得到最大熵模型的表达形式为:
在这里插入图片描述
最大熵模型归结为学习最佳的参数w, 使得Pw(y|x)最大化。
P
w(y|x)的表达形式非常类似于势函数为指数函数的马尔可夫网络, 其中变量x和y构成了一个最大团:
在这里插入图片描述

3生成式模型和判别式模型

假设可观测到的变量集合为X, 需要预测的变量集合为Y, 其他的变量集合为Z。

定义代表性模型
生成式模型对联合概率分布P(X,Y,Z)进行建模, 在给定观测集合X的条件下, 通过计算边缘分布来得到对变量集合Y的推断朴素贝叶斯、贝叶斯网络、 pLSA、 LDA、隐马尔可夫模型等
判别式模型直接对条件概率分布P(Y,Z/X)进行建模, 然后消掉无关变量Z就可以得到对变量集合Y的预测最大熵模型、最大熵马尔可夫模型、条件随机场

4 马尔科夫模型/隐马尔科夫模型/最大熵马尔科夫模型/条件随机场

假设一个随机过程中, tn时刻的状态xn的条件分布, 仅仅与其前一个状态xn−1有关, 即P(xn|x1,x2…xn−1)=P(xn|xn−1), 则将其称为马尔可夫过程, 时间和状态的取值都是离散的马尔可夫过程也称为马尔可夫链。

在这里插入图片描述
简单的马尔可夫模型中, 所有状态对于观测者都是可见的, 因此在马尔可夫模型中仅仅包括状态间的转移概率。 而在隐马尔可夫模型中, 隐状态xi对于观测者而言是不可见的, 观测者能观测到的只有每个隐状态xi对应的输出yi, 而观测状态yi的概率分布仅仅取决于对应的隐状态xi。 在隐马尔可夫模型中, 参数包括了隐状态间的转移概率、 隐状态到观测状态的输出概率、隐状态x的取值空间、 观测状态y的取值空间以及初始状态的概率分布。
在这里插入图片描述
假设有3个不同的葫芦, 每个葫芦里有好药和坏药若干, 现在从3个葫芦中按以下规则倒出药来。
(1) 随机挑选一个葫芦。
(2) 从葫芦里倒出一颗药, 记录是好药还是坏药后将药放回。
(3) 从当前葫芦依照一定的概率转移到下一个葫芦。
(4) 重复步骤(2) 和(3) 。
在整个过程中, 我们并不知道每次拿到的是哪一个葫芦。 用隐马尔可夫模型来描述以上过程, 隐状态就是当前是哪一个葫芦, 隐状态的取值空间为{葫芦1,葫芦2, 葫芦3}, 观测状态的取值空间为{好药, 坏药}, 初始状态的概率分布就是第(1) 步随机挑选葫芦的概率分布, 隐状态间的转移概率就是从当前葫芦转移到下一个葫芦的概率, 而隐状态到观测状态的输出概率就是每个葫芦里好药和坏药的概率。 记录下来的药的顺序就是观测状态的序列, 而每次拿到的葫芦的顺序就是隐状态的序列。

在隐马尔可夫模型中, 假设隐状态(即序列标注问题中的标注) xi的状态满足马尔可夫过程, t时刻的状态xt的条件分布, 仅仅与其前一个状态xt−1有关,即P(xt|x1,x2,…,xt−1)=P(xt|xt−1); 同时隐马尔可夫模型假设观测序列中各个状态仅仅取决于它对应的隐状态P(yt|x1,x2,…,xn,yi,y2,…,yt−1,yt+1,…)=P(yt|xt)。 隐马尔可夫模型建模时考虑了隐状态间的转移概率和隐状态到观测状态的输出概率。实际上, 在序列标注问题中, 隐状态(标注) 不仅和单个观测状态相关, 还和观察序列的长度、 上下文等信息相关。 例如词性标注问题中, 一个词被标注为动词还是名词, 不仅与它本身以及它前一个词的标注有关, 还依赖于上下文中的其他词, 于是引出了最大熵马尔可夫模型。
最大熵马尔可夫模型在建模时, 去除了隐马尔可夫模型中观测状态相互独立的假设, 考虑了整个观测序列, 因此获得了更强的表达能
力。 同时, 隐马尔可夫模型是一种对隐状态序列和观测状态序列的联合概率P(x,y)进行建模的生成式模型, 而最大熵马尔可夫模型是直接对标注的后验概率P(y|x)进行建模的判别式模型。
在这里插入图片描述
最大熵马尔可夫模型存在标注偏置问题:状态1倾向于转移到状态2, 状态2倾向于转移到状态2本身。 但是实际计算得到的最大概率路径是1->1->1->1, 状态1并没有转移到状态2,这是因为, 从状态2转移出去可能的状态包括1、 2、 3、 4、 5, 概率在可能的状态上分散了,而状态1转移出去的可能状态仅仅为状态1和2, 概率更加集中。
在这里插入图片描述

在这里插入图片描述
条件随机场(Conditional Random Field, CRF) 在最大熵马尔可夫模型的基础上, 进行了全局归一化,
在这里插入图片描述
条件随机场建模如下:
在这里插入图片描述
其中归一化因子Z(y1…n)是在全局范围进行归一化, 枚举了整个隐状态序列x1…n的全部可能, 从而解决了局部归一化带来的标注偏置问题。

5 主题模型:pLSA(Probabilistic Latent Semantic Analysis) , LDA(Latent DirichletAllocation)

主题模型是一种特殊的概率图模型。 假设有K个主题, 我们就把任意文章表示成一个K维的主题向量, 其中向量的每一维代表一个主题, 权重代表这篇文章属于这个特定主题的概率。 主题模型所解决的事情, 就是从文本库中发现有代表性的主题(得到每个主题上面词的分
布) , 并且计算出每篇文章对应着哪些主题。
pLSA是用一个生成模型来建模文章的生成过程。 假设有K个主题, M篇文章; 对语料库中的任意文章d, 假设该文章有N个词, 则对于其中的每一个词, 我们首先选择一个主题z, 然后在当前主题的基础上生成一个词w。
在这里插入图片描述
LDA可以看作是pLSA的贝叶斯版本, 其文本生成过程与pLSA基本相同, 不同的是为主题分布和词分布分别加了两个狄利克雷(Dirichlet) 先验。 pLSA采用的是频率派思想, 将每篇文章对应的主题分布p(zk|dm)和每个主题对应的词分布p(wn|zk)看成确定的未知常数, 并可以求解出来; 而LDA采用的是贝叶斯学派的思想, 认为待估计的参数(主题分布和词分布) 不再是一个固定的常数, 而是服从一定分布的随机变量。 这个分布符合一定的先验概率分布(即狄利克雷分布) , 并且在观察到样本信息之后, 可以对先验分布进行修正, 从而得到后验分布。
在这里插入图片描述

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

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

相关文章

AH8691-60V降压至3.3V电源芯片:ESOP8封装解决方案

AH8691-60V降压至3.3V电源芯片:ESOP8封装解决方案 随着电子设备的日益普及,电源管理芯片的重要性也日益凸显。一款高效率、低功耗的电源芯片可以大大提高电子设备的性能和可靠性。今天,我们将介绍一款60V降压至3.3V电源芯片,采用…

JS进阶——构造函数数据常用函数

1、深入对象 1.1 创建对象三种方式 1.1.1 利用对象字面量创建对象 1.1.2 利用new Object创建对象 1.1.3 利用构造函数创建对象 1.2 构造函数 构造函数:是一种特殊的函数,主要用来初始化对象 使用场景:常规的{...}语法允许创建一个对象。…

【备忘】websocket学习之挖坑埋自己

背景故事 以前没有好好学习过websocket,只知道它有什么用途,也知道是个好东西,平时在工作中没用过,所以对它并不知所以然。如今要做个自己的项目,要在付款的时候实时播报声音。自己是个开发者,也不想用别人…

Linux C 线程间同步机制

线程间同步机制 概述保护机制互斥锁创建互斥锁  pthread_mutex_init加锁  pthread_mutex_lock解锁  pthread_mutex_unlock删除锁  pthread_mutex_destroy 条件变量创建条件变量  pthread_cond_init激活条件变量  pthread_cond_signal等待条件变量  pthread_cond_…

PHP项目学习笔记-萤火商城-增加一个模块(表涉及到的操作和文件)

背景 是在store的后台添加一个页面,显示的如满意度调查的页面 在router.config.js里面配置一个新的菜单 路径:yoshop2.0-store\src\config\router.config.js 代码如下,很简单,定义了这菜单点击的时候进入的页面,和下面…

Xrdp+内网穿透实现远程访问Linux Kali桌面

XrdpCpolar实现远程访问Linux Kali桌面 文章目录 XrdpCpolar实现远程访问Linux Kali桌面前言1. Kali 安装Xrdp2. 本地远程Kali桌面3. Kali 安装Cpolar 内网穿透4. 配置公网远程地址5. 公网远程Kali桌面连接6. 固定连接公网地址7. 固定地址连接测试 前言 Kali远程桌面的好处在于…

破解tomcat密码并上传webshell

tomcat基础认证爆破 暴力破解 进入vulnhub的tomcat8目录,启动环境 由于tomcat密码默认最大尝试错误次数为5次,需要修改server.xml,修改下面字段 failureCount"10000000000" lockOutTime"0"tomcat默认界面,…

Clickhouse学习笔记(15)—— Clickhouse备份

手动备份 参考官网:Backup and Restore | ClickHouse Docs 简单来说,就是我们可以通过ALTER TABLE ... FREEZE PARTITION ...命令为表分区创建一个本地副本,然后这个副本硬链接到/var/lib/clickhouse/shadow/文件夹,因此其不会耗…

【大话Presto 】- 核心概念

文章目录 前言Operator Model And Iterator Model系统组成Connector数据模型查询执行模型StatementStageTaskSplitDriverOperatorExchangePipeLine 总结 前言 Presto(PrestoDB)是一个FaceBook开源的分布式MPP SQL引擎,旨在处理大规模数据的查…

Karmada调度器

调度器就像一个发动机,如果没有了发动机输入动力,是无法正常运行的。就像 Kubernetes 的调度器,它会负责根据节点的资源状态、Pod 的运行状态,判断 Pod 是调度到怎样的集群节点上去。对于 Karmada 这样的多云能力的调度器来说&…

APP安全加固怎么做?加固技术、加固方法、加固方案

​ 前面的文章中我们为大家介绍了移动应用安全检测的测试依据、测试方法、和测试内容,本文我们着重分享App安全加固的相关内容。 ​ (安全检测内容) 通过前面的文章我们知道了app安全检测要去检测哪些内容,发现问题后我们如何去修…

Flutter应用-使用sqflite升级数据库

文章目录 问题描述具体做法代码示例更多条件限制升级 数据库迁移和备份简介数据库迁移数据库备份 问题描述 使用fluttter开发的应用程序发布后,发现数据库有些设计不合理。如何来更新数据库呢? 使用sqflite来处理数据库,但是第一版软件发布后…

竞赛选题 深度学习验证码识别 - 机器视觉 python opencv

文章目录 0 前言1 项目简介2 验证码识别步骤2.1 灰度处理&二值化2.2 去除边框2.3 图像降噪2.4 字符切割2.5 识别 3 基于tensorflow的验证码识别3.1 数据集3.2 基于tf的神经网络训练代码 4 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 &#x…

k8s自定义Endpoint实现内部pod访问外部应用

自定义endpoint实现内部pod访问外部应用 endpoint除了可以暴露pod的IP和端口还可以代理到外部的ip和端口 使用场景 公司业务还还没有完成上云, 一部分云原生的,一部分是实体的 业务上云期间逐步实现上云,保证各个模块之间的解耦性 比如使…

【Android】设置全局标题栏

序言 在做项目的时候,有时候需要一个全局统一的标题栏,保证项目风格的统一,但是如果在每个activity上面都写一遍这个标题栏就很麻烦了,我们经常用的方法就是写个基类Activity,然后当某个Activity需要这个统一的标题栏…

ES Kibana 安装

ES & Kibana 本文基于Docker安装部署使用 Kibana的版本和ElasticSearch的版本,以及IK分词器的版本一一对应 Kibana 安装 安装Kibana # 创建网络 [rootiZ2zeg7mctvft5renx1qvbZ ~]# docker network create --driver bridge --subnet 192.168.0.0/16 --gateway …

2023年软件安装管家目录最新

软件目录 ①【电脑办公】电脑系统(直接安装)Win7Win8Win10OfficeOffice激活office2003office2007office2010office2013office2016office2019office365office2021wps2021Projectproject2007project2010project2016project2019project2013project2021Visio…

为React Ant-Design Table增加字段设置 | 京东云技术团队

最近做的几个项目经常遇到这样的需求,要在表格上增加一个自定义表格字段设置的功能。就是用户可以自己控制那些列需要展示。 在几个项目里都实现了一遍,每个项目的需求又都有点儿不一样,迭代了很多版,所以抽时间把这个功能封装了…

TCP-Modbus通信过程解析与实例演示

大家好!今天我将简要介绍一下如何使用TCP-Modbus方式与信捷PLC(XD5E型号)进行通讯,并演示整个过程。 TCP-Modbus通信过程解析与实例演示 首先,我们需要在PLC软件中设置相应的IP地址。PLC作为服务器,我们将其…