【隐马尔可夫模型】隐马尔可夫模型的观测序列概率计算算法及例题详解

【隐马尔可夫模型】用前向算法计算观测序列概率P(O|λ)​​​​​​​

【隐马尔可夫模型】用后向算法计算观测序列概率P(O|λ)

隐马尔可夫模型是关于时序的概率模型,描述由一个隐藏的马尔可夫链随机生成不可观测的状志的序列,再由各个状态随机生成一个观测而产生观测的序列的过程。模型本身属于生成模型,表示状态序列和观测序列的联合分布,但是状态序列是隐藏不可观测的。

观测序列概率的计算需要有效的算法支撑。

模型\lambda=(A,B,\pi),A为状态转移概率矩阵,B为观测概率矩阵,π 为初始状态概率向量

直接计算法

直接计算法主要用于阐释思路,概念上可行但计算上不可行(计算量过大)

思路:

1、列举所有可能的长度为$T$的状态序列$I=(i_1,i_2,...,i_T)$

2、求各个状态序列$I$与观测序列$O=(o_1,o_2,\cdots,o_T)$的联合概率$P(O,I|\lambda)$

3、对所有可能的状态序列求和,得到$P(O|\lambda).$

输入:隐马尔可夫模型$\lambda=(A,B,\pi)$和观测序列$O=(o_1,o_2,\cdots,o_T)$

输出:贯彻序列$O$ 出现的概率,

1)状态序列$I=(i_1,i_2,\cdots,i_T)$的概率

$P(I\mid\lambda)=\pi_{i_{1}}a_{i_{1}i_{2}}a_{i_{2}i_{3}}\cdots a_{i_{T-1}i_{T}}$

2)对固定的状态序列$I=(i_1,i_2,\cdots,i_T)$ , 观测序列$O=(o_1,o_2,\cdots,o_T)$的概率

$ P(O\mid I,\lambda)=b_{i_{1}}(o_{1})b_{i_{2}}(o_{2})\cdotp\cdotp\cdotp b_{i_{T}}(o_{T}) $

3)$O$$I$同时出现的联合概率

\begin{aligned} P(O,I|\lambda)& =P(O|I,\lambda)P(I|\lambda)=\pi_{i_1}b_{i_1}(o_1)a_{i_1i_2}b_{i_2}(o_2)\cdots a_{i_{T-1}i_T}b_{i_T}(o_T) \end{aligned}

4)对所有可能的状态序列$I$求和,得到观测序列$O$的概率

$ \begin{aligned} P(O|\lambda)& =\sum_{I}P(O\mid I,\lambda)P(I\mid\lambda) =\sum_{i_{1},i_{2},\cdots,i_{T}}\pi_{i_{1}}b_{i_{1}}(o_{1})a_{i_{2}}b_{i_{2}}(o_{2})\cdots a_{i_{r-1}i_{T}}b_{i_{T}}(o_{T}) \end{aligned} $

实际操作中,步骤四的计算量很大,是$O(TN^T)$阶的

前向算法

前向概率: 给定隐马尔可夫模型\lambda=(A,B,\pi),定义到时刻t 部分观测序列为o_1,o_2,\cdots,o_t且状态为q_i 的概率为前向概率,记作\alpha_t(i)=P(o_1,o_2,\cdots,o_t,i_t=q_i|\lambda)

输入:隐马尔可夫模型$\lambda=(A,B,\pi)$和观测序列$O=(o_1,o_2,\cdots,o_t)$

输出:观测序列$O$ 出现的概率$P(O|\lambda)$

1)初值,\alpha_1(i)=\pi_ib_i(o_1),\quad i=1,2,\cdots,N

2)递推,对t=1,2,\cdots,T-1,

\alpha_{t+1}(i)=\left[\sum_{j=1}^N\alpha_t(j)a_{ji}\right]b_i(o_{t+1}),\quad i=1,2,\cdots,N

3)终止 

P(O|\lambda)=\sum_{i=1}^N\alpha_T(i)

计算量$O(TN^2)$

例: 盒子和球模型$\lambda=(A,B,\pi)$,状态集合Q=\{1,2,3\},观测集合V=\{Red,White\}

\left.A=\left[\begin{array}{ccc}0.5&0.2&0.3\\0.3&0.5&0.2\\0.2&0.3&0.5\end{array}\right.\right],\quad B=\left[\begin{array}{ccc}0.5&0.5\\0.4&0.6\\0.7&0.3\end{array}\right],\quad\pi=\left[\begin{array}{c}0.2\\0.4\\0.4\end{array}\right]

T=3,O=(\text{Red,White,Red}),用前向算法求$P(O|\lambda)$

解答:

1)初值 

\begin{aligned}\alpha_1(1)&=\pi_1b_1(o_1)=0.10\\\alpha_1(2)&=\pi_2b_2(o_1)=0.16\\\alpha_1(3)&=\pi_3b_3(o_1)=0.28\end{aligned}

A为状态转移概率矩阵,B为观测概率矩阵,π 为初始状态概率向量,O为观测序列

a_{ij} ——A的i行j列,b_i(o_j)——B的i行o_j

例如o_1对应Red,对应观测集合V的第一列,对应观测概率矩阵B的第一列

2)递推

\begin{aligned} \alpha_{2}(1)& =\left[\sum_{i=1}^{3}\alpha_{1}(i)a_{i1}\right]b_{1}(o_{2})=0.154\times0.5=0.077 \\ \alpha_{2}(2)& =\left[\sum_{i=1}^3\alpha_1(i)a_{i2}\right]b_2(o_2)=0.184\times0.6=0.1104 \\ \alpha_{2}(3)& =\left[\sum_{i=1}^3\alpha_1(i)a_{i3}\right]b_3(o_2)=0.202\times0.3=0.0606\\ \\ \alpha_{3}(1)& =\left[\sum_{i=1}^3\alpha_2(i)a_{i1}\right]b_1(o_3)=0.04187 & \\ \alpha_{3}(2)& =\left[\sum_{i=1}^3\alpha_2(i)a_{i2}\right]b_2(o_3)=0.03551 \\ \alpha_{3}\left(3\right)& =\left[\sum_{i=1}^3\alpha_2(i)a_{i3}\right]b_3(o_3)=0.05284 \end{aligned}

b_i(o_j)B的i行o_j列,b_1(o_3)就是对应B的第一行第一列的元素

3)终止

P(O|\lambda)=\sum_{i=1}^3\alpha_3(i)=0.13022

递推至T=3,对前向概率求和得到$P(O|\lambda)$

后向算法

后向概率: 给定隐马尔可夫模型\lambda=(A,B,\pi),定义到时刻t 状态为q_i 的条件下,从t+1到T的部分观测序列为o_{t+1},o_{t+2},\cdots,o_T的概率为后向概率,记作

\beta_t(i)=P(o_{t+1},o_{t+2},\cdots,o_T|i_t=q_i,\lambda)

输入:隐马尔可夫模型$\lambda=(A,B,\pi)$和观测序列$O=(o_{t+1},o_{t+2},\cdots,o_T)$

输出:观测序列O出现的概率$P(O|\lambda)$

1)初值,\beta_T(i)=1,\quad i=1,2,\cdots,N

2)递推,对t=T-1,T-2,\cdots,1

\beta_t(i)=\sum_{j=1}^Na_{ij}b_j(o_{t+1})\beta_{t+1}(j),\quad i=1,2,\cdots,N

3)终止 

P(O|\lambda)=\sum_{i=1}^N\pi_ib_i(o_1)\beta_1(i)

计算量$O(TN^2)$

例: 盒子和球模型$\lambda=(A,B,\pi)$

\left.A=\left[\begin{array}{ccc}0.5&0.2&0.3\\0.3&0.5&0.2\\0.2&0.3&0.5\end{array}\right.\right],\quad B=\left[\begin{array}{ccc}0.5&0.5\\0.4&0.6\\0.7&0.3\end{array}\right],\quad\pi=(0.2,0.4,0.4)^\mathrm{T}

T=4,O=(\text{Red,White,Red,White}),用后向算法求$P(O|\lambda)$

解答:

1)初值 

\mathrm{\beta}_4\left(\mathrm{i}\right)=1\quad\mathrm{~i}=1,2,3

A为状态转移概率矩阵,B为观测概率矩阵,π 为初始状态概率向量,O为观测序列

从T=4向下递推,一般设后向概率初值为1

2)递推

递推至\beta _1终止

\begin{aligned} \beta_3\left(1\right)& =\sum_{\mathrm{j}=1}^3\mathrm{a}_{1\mathrm{j}}\mathrm{b}_{\mathrm{j}}\left(\mathrm{O}_{4}\right)\beta_{4}\left(\mathrm{j}\right)=0.25+0.12+0.09=0.46 \\ \beta_{3}\left(2\right)& \mathrm{=\sum_{j=1}^3a_{2j}b_{j}\left(O_{4}\right)\beta_{4}\left(j\right)=0.15+0.3+0.06=0.51} \\ \beta_{3}\left(3\right)& =\sum_{\mathrm{j}=1}^3\mathrm{a}_{3\mathrm{j}}\mathrm{b}_{\mathrm{j}}\left(\mathrm{O}_{4}\right)\mathrm{\beta}_{4}\left(\mathrm{j}\right)=0.1+0.18+0.15=0.43 \\ \end{aligned}

\begin{aligned}\beta_2\left(1\right)&=\sum_{\mathrm{j}=1}^3\mathrm{a}_{1\mathrm{j}}\mathrm{b}_{\mathrm{j}}\left(\mathrm{O}_3\right)\beta_3\left(\mathrm{j}\right)=0.25*0.46+0.08*0.51+0.21*0.43=0.2461\\\beta_2\left(2\right)&=\sum_{\mathrm{j}=1}^3\mathrm{a}_{2\mathrm{j}}\mathrm{b}_{\mathrm{j}}\left(\mathrm{O}_3\right)\beta_3\left(\mathrm{j}\right)=0.15*0.46+0.2*0.51+0.14*0.43=0.2312\\\beta_2\left(3\right)&=\sum_{\mathrm{j}=1}^3\mathrm{a}_{3\mathrm{j}}\mathrm{b}_{\mathrm{j}}\left(\mathrm{O}_3\right)\beta_3\left(\mathrm{j}\right)=0.1*0.46+0.12*0.51+0.35*0.43=0.2577\end{aligned}

\begin{aligned}&\mathrm{\beta_1\left(1\right)=\sum_{j=1}^3a_{1j}b_j\left(O_2\right)\beta_2\left(j\right)=0.25*0.2461+0.12*0.2312+0.09*0.2577=0.112462}\\&\mathrm{\beta_1\left(2\right)=\sum_{j=1}^3a_{2j}b_j\left(O_2\right)\beta_2\left(j\right)=0.15*0.2461+0.3*0.2312+0.06*0.2577=0.121737}\\&\mathrm{\beta_1\left(3\right)=\sum_{j=1}^3a_{3j}b_j\left(O_2\right)\beta_2\left(j\right)=0.1*0.2461+0.18*0.2312+0.15*0.2577=0.104881}\end{aligned}

a_{ij} ——A的i行j列,b_i(o_j)——B的i行o_j

b_i(o_j)B的i行o_j列,b_1(o_3)就是对应B的第一行第一列的元素

3)终止

\mathrm{P}\left(\mathrm{O}|\lambda)\right.=\sum_{i=1}^3\pi_\mathrm{i}b_\mathrm{i}\left(\mathrm{O}_1\right)\beta_1\left(\mathrm{i}\right)=0.0600908

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

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

相关文章

Elbie勒索病毒:最新变种.elbie袭击了您的计算机?

引言: 在数字时代,.Elbie勒索病毒的威胁越发突出,对个人和组织的数据安全构成了巨大挑战。本文将深入介绍.Elbie勒索病毒的特征,有效的数据恢复方法,以及一系列预防措施,帮助您更好地保护数字资产。当面对…

线性规划-单纯形法推导

这里写目录标题 线性规划例子啤酒厂问题图解法 单纯形法数学推导将问题标准化并转为矩阵形式开始推导 实例图解法单纯形法 线性规划例子 啤酒厂问题 每日销售上限:100箱啤酒营业时间:14小时生产1箱生啤需1小时生产1箱黑啤需2小时生啤售价:2…

从零开发短视频电商 AWS OpenSearch Service开发环境申请以及Java客户端介绍

文章目录 创建域1.创建域2.输入配置部署选项数据节点网络精细访问控制访问策略 获取域端点数据如何插入到OpenSearch ServiceJava连接OpenSearch Servicespring-data-opensearchelasticsearch-rest-high-level-clientopensearch-rest-clientopensearch-java 因为是开发测试使用…

[Linux] nginx的location和rewrite

一、Nginx常用的正则表达式 符号作用^匹配输入字符串的起始位置$ 匹配输入字符串的结束位置*匹配前面的字符零次或多次。如“ol*”能匹配“o”及“ol”、“oll” 匹配前面的字符一次或多次。如“ol”能匹配“ol”及“oll”、“olll”,但不能匹配“o”?匹配前面的字…

Vue3 setup 页面跳转监听路由变化调整页面访问位置

页面跳转后页面还是停留在上一个页面的位置&#xff0c;没有回到顶部 解决 1、router中路由守卫中统一添加 router.beforeEach(async (to, from, next) > {window.scrollTo(0, 0);next(); }); 2、页面中监听页面变化 <script setup> import { ref, onMounted, wat…

@Autowired 找不到Bean的问题

排查思路 检查包扫描&#xff1a;查询的Bean是否被spring扫描装配到检查该Bean上是否配上注解&#xff08;Service/Component/Repository…&#xff09;如果使用第三方&#xff0c;检查相关依赖是否已经安装到当前项目 Autowired和Resource的区别 Autowired 是spring提供的注…

图像清晰度 和像素、分辨率、镜头的关系

关于图像清晰度的几个知识点分享。 知识点 清晰度 清晰度指影像上各细部影纹及其边界的清晰程度。清晰度&#xff0c;一般是从录像机角度出发&#xff0c;通过看重放图像的清晰程度来比较图像质量&#xff0c;所以常用清晰度一词。 而摄像机一般使用分解力一词来衡量它“分解被…

linux通过命令切换用户

在Linux中&#xff0c;你可以使用su&#xff08;substitute user或switch user&#xff09;命令来切换用户。这个命令允许你临时或永久地以另一个用户的身份运行命令。以下是基本的用法&#xff1a; 基本切换到另一个用户&#xff08;需要密码&#xff09;&#xff1a;su [用户…

APIFox:打造高效便捷的API管理工具

随着互联网技术的不断发展&#xff0c;API&#xff08;应用程序接口&#xff09;已经成为了企业间数据交互的重要方式。然而&#xff0c;API的管理和维护却成为了开发者们面临的一大挑战。为了解决这一问题&#xff0c;APIFox应运而生&#xff0c;它是一款专为API管理而生的工具…

【力扣100】189.轮转数组

添加链接描述 class Solution:def rotate(self, nums: List[int], k: int) -> None:"""Do not return anything, modify nums in-place instead."""# 思路&#xff1a;三次数组翻转nlen(nums)kk%nnums[:] nums[-k:] nums[:-k]思路就是&…

数据科学实践:探索数据驱动的决策

写在前面 你是否曾经困扰于如何从海量的数据中提取有价值的信息?你是否想过如何利用数据来指导你的决策,让你的决策更加科学和精确?如果你有这样的困扰和疑问,那么你来对了地方。这篇文章将引导你走进数据科学的世界,探索数据驱动的决策。 1.数据科学的基本原则 在我们…

第四届传智杯初赛(莲子的机械动力学)

题目描述 题目背景的问题可以转化为如下描述&#xff1a; 给定两个长度分别为 n,m 的整数 a,b&#xff0c;计算它们的和。 但是要注意的是&#xff0c;这里的 a,b 采用了某种特殊的进制表示法。最终的结果也会采用该种表示法。具体而言&#xff0c;从低位往高位数起&#xf…

【linux】yum安装时: Couldn‘t resolve host name for XXXXX

yum 安装 sysstat 报错了&#xff1a; Kylin Linux Advanced Server 10 - Os 0.0 B/s | 0 B 00:00 Errors during downloading metadata for repository ks10-adv-os:- Curl error (6): Couldnt resolve host nam…

在非Spring环境下Main方法中,怎么使用spring的ThreadPoolTaskScheduler启动Scheduler?

作为Java开发人员&#xff0c;在使用spring框架的时候&#xff0c;如果想要获取到线程池对象&#xff0c;可以直接使用spring框架提供的ThreadPoolxxx来获取。那么在非spring环境下&#xff0c;main函数怎么使用ThreadPoolTaskScheduler呢&#xff1f;下面凯哥(凯哥Java:kaigej…

10.vue3项目(十):spu管理页面的sku的新增和修改

目录 一、sku静态页面的搭建 1.思路分析 2.代码实现 3.效果展示

微信小程序 长按录音+录制视频

<view class"bigCircle" bindtouchstart"start" bindtouchend"stop"><view class"smallCircle {{startVedio?onVedio:}}"><text>{{startVedio?正在录音:长按录音}}</text></view> </view> <…

排序算法:【选择排序]

一、选择排序——时间复杂度 定义&#xff1a;第一趟排序&#xff0c;从整个序列中找到最小的数&#xff0c;把它放到序列的第一个位置上&#xff0c;第二趟排序&#xff0c;再从无序区找到最小的数&#xff0c;把它放到序列的第二个位置上&#xff0c;以此类推。 也就是说&am…

软件项目管理---胡乱复习版

范围控制的一个重点是避免需求的不合理扩张。(√)一个任务原计划2个人全职工作2周完成,而实际上只有一个人参与这个任务,到第二周末这个人完成了任务的75%,那么:BCWS = 4人周,ACWP = 2人周,BCWP = 3人周。CV = 1,SV = -1。 【在项目管理中,BCWS、ACWP和BCWP是用来衡量…

微服务测试是什么?

微服务测试是一种特殊的测试类型&#xff0c;因为它涉及到多个独立的服务。以下是进行微服务测试的一般性步骤&#xff1a; 1. 确定系统架构 了解微服务架构对成功测试至关重要。确定每个微服务的职责、接口、依赖项和通信方式。了解这些信息可以帮助您更好地规划测试用例和测…

ip ssl证书怎么更换ip地址

ip ssl证书是一种数字证书&#xff0c;为只有公网ip地址的站点建立安全、加密的通信通道。它通常由权威的证书颁发机构&#xff08;CA&#xff09;颁发&#xff0c;并用于验证网站的身份和安全性。ip ssl证书的主要目的是保护敏感信息&#xff0c;如信用卡号、用户名和密码等&a…