当前位置: 首页 > news >正文

机器学习---概率图模型(隐马尔可夫模型、马尔可夫随机场、条件随机场)

1. 隐马尔可夫模型

机器学习最重要的任务是根据已观察到的证据(例如训练样本)对感兴趣的未知变量(例如类别标

记)进行估计和推测。概率模型(probabilistic model)提供了一种描述框架,将描述任务归结为

计算变量的概率分布,在概率模型中,利用已知的变量推测未知变量的分布称为“推断

(inference)”,其核心在于基于可观测的变量推测出未知变量的条件分布。

生成式:计算联合分布𝑃(𝑌, 𝑅, 𝑂),判别式:计算条件分布𝑃(𝑌, 𝑅|𝑂)

符号约定:𝑌为关心的变量的集合,O为可观测变量集合,R为其他变量集合

概率模型直接利用概率求和规则消去变量R的时间和空间复杂度为指数级别𝑂(2^(𝑌 +|𝑅|)),需要一

种能够简洁紧凑表达变量间关系的工具。 

概率图模型(probabilistic graphical model)是一类用图来表达变量相关关系的概率模型。

图模型提供了一种描述框架,结点:随机变量(集合);边:变量之间的依赖关系

分类:有向图:贝叶斯网,使用有向无环图表示变量之间的依赖关系

无向图:马尔可夫网,使用无向图表示变量间的相关关系

概率图模型分类:有向图:贝叶斯网,无向图:马尔可夫网

隐马尔可夫模型(Hidden Markov Model,HMM)组成:状态变量:,通常假定是

隐藏的,不可被观测的。取值范围为𝑦,通常有𝑁个可能取值的离散空间

观测变量:表示第𝑖 时刻的观测值集合,观测变量可以为离散或连续型,本章中只

讨论离散型观测变量,取值范围X为

隐马尔可夫模型(Hidden Markov Model,HMM):时刻的状态 𝑥𝑡 仅依赖于𝑥(𝑡 − 1),与其余

𝑛 − 2个状态无关。马尔可夫链:系统下一时刻状态仅由当前状态决定,不依赖于以往的任何状态

HMM 的生成过程:

确定一个HMM需要三组参数𝜆 = [𝐴, 𝐵, 𝜋] 。状态转移概率:模型在各个状态间转换的概率表示在任

意时刻t,若状态为si,下一状态为sj的概率

输出观测概率:模型根据当前状态获得各个观测值的概率。在任意时刻t,若状态为Si,则在下一

时刻状态为Sj的概率

初始状态慨率:模型在初始时刻各个状态出现的慨率

通过指定状态空间𝑌,观测空间𝑋和上述三组参数,就能确定一个隐马尔可夫模型。给定𝜆 = [𝐴, 𝐵,

𝜋] ,它按如下过程生成观察序列:

①设置𝑡 = 1, 并根据初始状态𝜋选择初始状态𝑦1

②根据 𝑦𝑡 和输出观测概率𝐵 选择观测变量取值 𝑥𝑡

③根据状态 𝑦𝑡 和状态转移矩阵 𝐴 转移模型状态,即确定𝑦𝑡+1

④若 𝑡 < 𝑛, 设置 𝑡 = 𝑡 + 1,并转到②步,否则停止

HMM的基本问题:对于模型𝜆 = [𝐴, 𝐵, 𝜋] ,给出具体应用定观测序列评估模型

和观测序列之间的匹配程度:有效计算观测序列其产生的概率

根据观测序列“推测”隐藏的模型状态y=

参数学习:如何调整模型参数𝜆 = [𝐴, 𝐵, 𝜋] ,以使得该序列出现的概率最大

具体应用:根据以往的观测序列x=预测当前时刻最有可能的观测值;语音识别:根据观测的语音信

号推测最有可能的状态序列(即:对应的文字);通过数据学习参数(模型训练)

隐马尔可夫模型是关于时序的概率模型,描述由一个隐藏的马尔可夫链随机生成不可观测的状态随

机序列,再由各个状态生成一个观测而产生观测随机序列的过程。隐藏的马尔可夫链随机生成的状

态的序列,称为状态序列(state sequence):每个状态生成一个观测,而由此产生的观测的随机序

列,称为观测序列(observation sequence)。序列的每一个位置又可以看作是一个时刻。

隐马尔可夫模型由初始概率分布、状态转移概率分布以及观测概率分布确定。隐马尔可夫模型的形

式定义如下:设Q是所有可能的状态的集合,V是所有可能的观测的集合,

其中,N是可能的状态数,M是可能的观测数,I是长度为T的状态序列,O是对应的观测序列。

A是状态转移概率矩阵:

其中,是在时刻t处于状态qi的条件下在时刻t+1

转移到状态qj的概率。

B是观测概率矩阵:

其中,是在时刻t处于状态qj的条件下生成

观测vk的概率。π是初始状态概率向量:π=(πi),其中,是时刻t=1

处于状态qi的概率。

隐马尔可夫模型由初始状态概率向量π、状态转移概率矩阵A和观测概率矩阵B决定。π和A决定状

态序列,B决定观测序列。因此,隐马尔可夫模型入可以用三元符号表示,即𝜆 = [𝐴, 𝐵, 𝜋] ,𝐴, 𝐵,

𝜋称为隐马尔可夫模型的三要素。

齐次马尔可夫性假设,即假设隐藏的马尔可夫链在任意时刻t的状态只依赖于其前一时刻的状态,

与其他时刻的状态及观测无关,也与时刻t无关。

观测独立性假设,即假设任意时刻的观测只依赖于该时刻的马尔可夫链的状态,与其他观测及状态

无关。

例如,一段文字中名词、动词、形容词三类词出现的情况可由三个状态的马尔可夫模型描述:

状态S1:名词,S2:动词,S3:形容词

假设状态转移矩阵:

如果其中某一句话第一个词为名词,那么该句子中这三类词出现的顺序为0=“名动形名”的概率为:

系统初始化时可以定义一个初始状态的概率向量

隐马尔可夫链示意图:

2. 马尔可夫随机场 

马尔可夫随机场(Markov Random Field,MRF)是典型的马尔可夫网,著名的无向图模型

图模型表示:结点表示变量(集),边表示依赖关系。有一组势函数(Potential Functions),亦称

“因子”(factor),这是定义在变量子集上的非负实函数,主要用于定义概率分布函数

马尔可夫随机场(Markov Random Field,MRF)分布形式化:使用基于极大团的势函数(因子)

对于图中结点的一个子集,若其中任意两结点间都有边连接,则称该结点子集为一个“团”

(clique)。若一个团中加入另外任何一个结点都不再形成团,则称该团为“极大团”(maximal

clique),图中 𝑥1, 𝑥2 , {𝑥2, 𝑥6} , {𝑥2, 𝑥5, 𝑥6}等为团,图中{𝑥2, 𝑥6}不是极大团,每个结点至少出现

在一个极大团中,多个变量之间的连续分布可基于团分解为多个因子的乘积。

基于极大团的势函数(因子)多个变量之间的连续分布可基于团分解为多个因子的乘积,每个因子

只与一个团相关。对于n个变量x={x1,x2,...xn},所有团构成的集合为C,与团Q∈C对应的变量集合

记为XQ,则联合概率定义为:

其中,是基于团Q对应的势函数,Z为概率的规范化因子,在实际应用中,Z往往很难精确计

算,但很多任务中,不需要对Z进行精确计算若变量问题较多,则团的数目过多,上式的乘积项过

多,会给计算带来负担,所以需要考虑极大团。

基于极大团的势函数:通过极大团构造势函数。若团Q不是一个极大团,则必然被一个极大团Q*包

含,这意味着变量的关系不仅体现在势函数中,还体现在*中联合概率分布可以使用极大

团定义假设所有极大团构成的集合为其中,Z*是规范化因子

基于极大团的势函数:联合概率分布可以使用极大团定义,假设所有极大团构成的集合为𝐶∗。

联合概率分布

马尔可夫随机场中的分离集:马尔可夫随机场中得到“ 条件独立性”。借助“分离”的概念,若从结点

集 𝐴 中的结点到 𝐵 中的结点都必须经过结点集 𝐶 中的结点,则称结点集 𝐴,𝐵 被结点集 𝐶 分离,

称 𝐶 为分离集(separating set)。


全局马尔可夫性:马尔可夫随机场中得到“条件独立性”,借助“分离”的概念,可以得到:全局马尔

可夫性(global Markov property):在给定分离集的条件下, 两个变量子集条件独立。

图模型简化:

得到图模型的联合概率为:

全局马尔可夫性的验证:

条件概率:

验证:

马尔可夫随机场中的条件独立性:

由全局马尔可夫性可以导出:局部马尔可夫性(local Markov property):在给定邻接变量的情况下,

一个变量条件独立于其它所有变量令V为图的结点集,n(v)为结点v在图上的邻接节点,

成对马尔可夫性(pairwise Markov property):在给定所有其它变量的情况下,两个非邻接变量条件

独立令V为图的结点集,边集为E,对图中的两个结点u,v,若<u,v>不属于E,有

势函数的作用是定量刻画变量集XQ中变量的相关关系,应为非负函数,且在所偏好的变

量取值上有较大的函数值

上图中,假定变量均为二值变量,定义势函数:

说明模型偏好xA与xc有相同的取值,xB与xc有不同的取值,换言xA与xc正相关,xB与xc负相关。

所以令xA与xc相同且xB与xc不同的变量值指派將有较高的联合慨率。

势函数的作用是定量刻画变量集xQ中变量的相关关系,应为非负函数,且在所偏好的变

量取值上有较大的函数值口为了满足非负性,指数函数常被用于定义势函数,即:

,其中,是一个定义在变量xQ上的实值函数,常见形式为:

,其中,是参数,上式第一项考虑每一对

结点的关系,第二项考虑单结点。

3. 条件随机场

条件随机场(Conditional Random Field,(CRF)是一种判别式无向图模型(可看作给定观测值的

MRF),条件随机场对多个变量给定相应观测值后的条件概率进行建模,若令x={x1,X2,…,X}为观测

序列,y={y1,y2,,y}为对应的标记序列,CRF的目标是构建条件概率模型P(y|x)

标记变量y可以是结构型变量,它各个分量之间具有某种相关性。

自然语言处理的词性标注任务中,观测数据为语句(单词序列),标记为相应的词性序列,具有线

性序列结构在语法分析任务中,输出标记是语法树,具有树形结构

令G=(V,E)表示结点与标记变量y中元素一一对应的无向图。无向图中,yv表示与节点v对应的标记

变量,n(v)表示结点v的邻接结点,若图中的每个结点都满足马尔可夫性,

则(y,x)构成条件随机场。

CRF使用势函数和图结构上的团来定义P(y|x)。本章仅考虑链式条件随机场(chain-structured

CRF),如下所亦:

链式条件随机场(chain-structured CRF)包含两种关于标记变量的团:相邻的标记变量,

单个标记变量;条件概率可被定义为:

是定义在观测序列的两个

相邻标记位置上的转移特征函数(transition feature function),用于刻画相令邻标记变量之间的相关

关系以及观测序列对它们的影响,是定义在观测序列的标记位置i上的状态特征函数

(statusfeature function),用于刻画观测序列对标记变量的影响,为参数,Z为规范化因子

特征函数通常是实值函数,以刻画数据的一些很可能成立或者期望成立的经验特性,以词性标注任

务为例:

采用特征函数:

表示第个观测值xi为单词'knock'时,相应的标记yi,yi+1很可能分别为[V],[P]。

MRF 与CRF的对比:

MRF:使用团上的势函数定义概率,对联合概率建模

CRF:使用团上的势函数定义概率,有观测变量,对条件概率建模

相关文章:

机器学习---概率图模型(隐马尔可夫模型、马尔可夫随机场、条件随机场)

1. 隐马尔可夫模型 机器学习最重要的任务是根据已观察到的证据&#xff08;例如训练样本&#xff09;对感兴趣的未知变量&#xff08;例如类别标 记&#xff09;进行估计和推测。概率模型&#xff08;probabilistic model&#xff09;提供了一种描述框架&#xff0c;将描述任…...

cool 框架 node 后端封装三方Api post请求函数

1.需求 现在一些数据源 &#xff0c;需要从三方地址拿到一些数据 比如说电影列表 信息了 影院列表信息了 等一些展示的数据&#xff0c;但是人家这种东西 害需要使用 appkey appserect 这种验签 这种需求 你前端调用接口是直接调用不了的 因为需要用到验签 需要后端接口转接一…...

awd总结

总结&#xff1a; 由于是第一次参加AWD比赛&#xff0c;各方面经验都不足&#xff0c;在参赛的前几天也是疯狂搜集各种脚本、框架、工具等&#xff0c;同时也参考b站的视频进行学习&#xff0c;我发现就是还是实操才能更快的学习 我觉得就是我前期的准备工作不足&#xff0c;…...

【react】react+es6+antd5.13.2+ts,antd表格的操作如何在父组件写?

reactes6antd5.13.2ts,antd表格的操作如何在父组件写&#xff1f; 我的子组件columns.tsx&#xff0c;只加表头&#xff0c;操作放在父组件。 columns.tsx的代码&#xff1a; export const dataColumns [{title: 项目成员,dataIndex: name,key: name,},{title: 可选账号,alig…...

virtio笔记

最近在看虚拟化相关的东西&#xff0c;以virtio-console为例&#xff0c;记录下。 此文只是学习笔记&#xff0c;文中肯定有不少错误&#xff0c;不要参考 devicemd侧&#xff1a; virtio_console.c中&#xff0c;初始化会对port->cb赋值为 viritio_console_control_tx&am…...

初始web服务器(并基于idea来实现无需下载的tomcat)

前言 前面学习了对应的http协议&#xff0c;我们知道了他是在网络层进行数据传输的协议&#xff0c;负责相应数据以及接收数据的规则&#xff0c;但是在人员开发后端的时候不仅仅需要你写io流进行数据传输&#xff0c;还需要你进行对应的tcp协议来进行数据打包发送http协议-CSD…...

软件文档测试

1 文档测试的范围 软件产品由可运行的程序、数据和文档组成。文档是软件的一个重要组成部分。 在软件的整人生命周期中&#xff0c;会用到许多文档&#xff0c;在各个阶段中以文档作为前阶段工作成果的体现和后阶段工作的依据。 软件文档的分类结构图如下图所示&#xff1a; …...

从零开始手写mmo游戏从框架到爆炸(七)— 消息封装

导航&#xff1a;从零开始手写mmo游戏从框架到爆炸&#xff08;零&#xff09;—— 导航-CSDN博客 上一篇&#xff0c;我们初步把消息handler 注册到了服务中&#xff0c;在进行后续工作之前我们需要再做一些准备工作。 第一&#xff1a;把之前自己管理的bean放到spring中…...

从Unity到Three.js(画线组件line)

JavaScript 0基础&#xff0c;只是照着官方文档临摹了下&#xff0c;之后有时间再进行细节学习和功能封装。 import * as THREE from three; //引入threejsconst renderer new THREE.WebGLRenderer();//创建渲染器 //设置渲染范围&#xff0c;当前撑满全屏,屏幕左上角是&…...

LCP 30. 魔塔游戏 - 力扣(LeetCode)

题目描述 小扣当前位于魔塔游戏第一层&#xff0c;共有 N 个房间&#xff0c;编号为 0 ~ N-1。每个房间的补血道具/怪物对于血量影响记于数组 nums&#xff0c;其中正数表示道具补血数值&#xff0c;即血量增加对应数值&#xff1b;负数表示怪物造成伤害值&#xff0c;即血量减…...

数据结构——单向链表和双向链表的实现(C语言版)

目录 前言 1. 链表 1.1 链表的概念及结构 1.2 链表的分类 2. 单链表接口实现 2.1 数据结构设计与接口函数声明 2.2 创建结点&#xff0c;打印&#xff0c;查找 2.3 尾插&#xff0c;头插&#xff0c;尾删&#xff0c;头删 2.4 插入或删除 2.4.1在指定位置后 2.4.2在…...

TCP和UDP相关问题(重点)(4)——4.使用TCP的协议有哪些?使用UDP的协议有哪些?

4.使用TCP的协议有哪些&#xff1f;使用UDP的协议有哪些&#xff1f; 使用TCP的协议有&#xff1a;HTTP3.0之前的HTTP协议、HTTPS、FTP、SMTP、SSH... 使用UDP的协议有&#xff1a;HTTP3.0、DNS、DHCP......

Python进阶--爬取美女图片壁纸(基于回车桌面网的爬虫程序)

目录 一、前言 二、爬取下载美女图片 1、抓包分析 a、分析页面 b、明确需求 c、抓包搜寻 d、总结特点 2、编写爬虫代码 a、获取图片页网页源代码 b、提取所有图片的链接和标题 c、下载并保存这组图片 d、 爬取目录页的各种类型美女图片的链接 e、实现翻页 三、各…...

[office] excel如何计算毛重和皮重的时间间隔 excel计算毛重和皮重时间间隔方法 #笔记#学习方法

excel如何计算毛重和皮重的时间间隔 excel计算毛重和皮重时间间隔方法 在日常工作中经常会到用excel&#xff0c;有时需要计算毛重和皮重的时间间隔&#xff0c;具体的计算方式是什么&#xff0c;一起来了解一下吧 在日常工作中经常会到用excel&#xff0c;在整理编辑过磅数据…...

Pandas 对带有 Multi-column(多列名称) 的数据排序并写入 Excel 中

Pandas 从Excel 中读取带有 Multi-column的数据 正文 正文 我们使用如下方式写入数据&#xff1a; import pandas as pd import numpy as npdf pd.DataFrame(np.array([[10, 2, 0], [6, 1, 3], [8, 10, 7], [1, 3, 7]]), columns[[Number, Name, Name, ], [col 1, col 2, co…...

如何为Kafka加上账号密码(一)

Kafka认证基本概念 一直以来&#xff0c;我们公司内网的Kafka集群都是在裸奔&#xff0c;只要知道端口号&#xff0c;任何人都能连上集群操作一番。直到有个主题莫名消失&#xff0c;才引起我们的警觉&#xff0c;是时候该考虑为它添加一套认证策略了。 认证和授权就是一对孪生…...

Elasticsearch的Index Lifecycle Management(ILM)

Elasticsearch的Index Lifecycle Management&#xff08;ILM&#xff09;功能提供了一种自动化管理索引生命周期的方式。ILM使得用户可以基于特定的条件&#xff08;如索引的年龄、大小等&#xff09;来自动执行如回滚、删除等操作&#xff0c;进而优化存储和提高查询性能。ILM…...

2、学习 Nacos 注册中心

学习 Nacos 注册中心 一、使用Nacos作为注册中心1、父pom.xml文件配置SpringCloudAlibaba的dependency-management依赖2、在微服务中添加Nacos客户端依赖3、配置Nacos服务地址 二、服务的分级存储模型1、配置实例的集群属性2、权重配置 三、命名空间 一、使用Nacos作为注册中心…...

Java 如何操作 nginx 服务器上的文件?

随着Java技术的不断发展&#xff0c;越来越多的开发人员开始使用Java来操作服务器上的文件。其中&#xff0c;如何操作nginx服务器上的文件也是许多Java开发人员所关注的重点之一。本文将介绍Java操作nginx服务器上文件的基本方法。 一、使用Java的File类 Java的File类可以用…...

时序预测 | MATLAB实现基于CNN-GRU-AdaBoost卷积门控循环单元结合AdaBoost时间序列预测

时序预测 | MATLAB实现基于CNN-GRU-AdaBoost卷积门控循环单元结合AdaBoost时间序列预测 目录 时序预测 | MATLAB实现基于CNN-GRU-AdaBoost卷积门控循环单元结合AdaBoost时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 1.MATLAB实现基于CNN-GRU-AdaBo…...

web vue 项目 Docker化部署

Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段&#xff1a; 构建阶段&#xff08;Build Stage&#xff09;&#xff1a…...

大数据学习栈记——Neo4j的安装与使用

本文介绍图数据库Neofj的安装与使用&#xff0c;操作系统&#xff1a;Ubuntu24.04&#xff0c;Neofj版本&#xff1a;2025.04.0。 Apt安装 Neofj可以进行官网安装&#xff1a;Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...

椭圆曲线密码学(ECC)

一、ECC算法概述 椭圆曲线密码学&#xff08;Elliptic Curve Cryptography&#xff09;是基于椭圆曲线数学理论的公钥密码系统&#xff0c;由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA&#xff0c;ECC在相同安全强度下密钥更短&#xff08;256位ECC ≈ 3072位RSA…...

云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地

借阿里云中企出海大会的东风&#xff0c;以**「云启出海&#xff0c;智联未来&#xff5c;打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办&#xff0c;现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...

python/java环境配置

环境变量放一起 python&#xff1a; 1.首先下载Python Python下载地址&#xff1a;Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个&#xff0c;然后自定义&#xff0c;全选 可以把前4个选上 3.环境配置 1&#xff09;搜高级系统设置 2…...

基于Flask实现的医疗保险欺诈识别监测模型

基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施&#xff0c;由雇主和个人按一定比例缴纳保险费&#xff0c;建立社会医疗保险基金&#xff0c;支付雇员医疗费用的一种医疗保险制度&#xff0c; 它是促进社会文明和进步的…...

FastAPI 教程:从入门到实践

FastAPI 是一个现代、快速&#xff08;高性能&#xff09;的 Web 框架&#xff0c;用于构建 API&#xff0c;支持 Python 3.6。它基于标准 Python 类型提示&#xff0c;易于学习且功能强大。以下是一个完整的 FastAPI 入门教程&#xff0c;涵盖从环境搭建到创建并运行一个简单的…...

聊聊 Pulsar:Producer 源码解析

一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台&#xff0c;以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中&#xff0c;Producer&#xff08;生产者&#xff09; 是连接客户端应用与消息队列的第一步。生产者…...

Android15默认授权浮窗权限

我们经常有那种需求&#xff0c;客户需要定制的apk集成在ROM中&#xff0c;并且默认授予其【显示在其他应用的上层】权限&#xff0c;也就是我们常说的浮窗权限&#xff0c;那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...

Java线上CPU飙高问题排查全指南

一、引言 在Java应用的线上运行环境中&#xff0c;CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时&#xff0c;通常会导致应用响应缓慢&#xff0c;甚至服务不可用&#xff0c;严重影响用户体验和业务运行。因此&#xff0c;掌握一套科学有效的CPU飙高问题排查方法&…...