【机器学习概率统计】20 状态解码:隐马尔科夫模型隐含状态揭秘

本文介绍了隐马尔科夫模型(HMM)的状态解码问题,特别是最大路径概率的计算方法——维特比算法。通过详细解释和案例实践,展示了如何在给定观测序列时找到最有可能的隐状态序列。内容包括解码问题描述、维特比算法原理、应用到HMM解码的过程,以及手动计算和Python代码示例。
摘要由CSDN通过智能技术生成
1.隐含状态解码问题的描述

上一节我们讲完了概率估计问题,这里我们再来讲一下隐马尔科夫模型的状态解码问题。

解码: d e c o d i n g decoding decoding,就是给定一个已知的观测序列,求他最有可能对应的状态序列。那么用形式化的语言来说就是已知模型 λ = ( A , B , π ) \lambda=(A,B,\pi) λ=(A,B,π)和观测序列 O = ( o 1 , o 2 , . . . , o T ) O=(o_1,o_2,...,o_T) O=(o1​,o2​,...,oT​),求使得条件概率 P ( I ∣ O ) P(I|O) P(I∣O)最大的隐状态序列 I = ( i 1 , i 2 , . . . , i T ) I=(i_1,i_2,...,i_T) I=(i1​,i2​,...,iT​)。

我们一步一步的来,先不考虑输出观测,仅仅只考虑隐状态的转移,来体会一下思路,首先我们的目标是去找到路径概率最大的一条状态序列。

我们对着下面这幅图来说,会让大家更好理解一些:
图1.隐含状态序列的转移路径
图中展现的隐马尔科夫模型中的状态序列,其中一共包含 5 5 5种隐含状态,状态序列的长度为 7 7 7,那么图中很明显横轴是时间轴,纵轴是状态轴。

2.最大路径概率与维特比算法

我们从整个隐含状态序列的最后往前面看,在第 7 7 7个时间点,也就是最后一个时间点这,我们要考虑状态序列的最后一个状态是状态 [ 1 , 2 , 3 , 4 , 5 ] [1,2,3,4,5] [1,2,3,4,5]中的哪一个?实质上就是比较路径以谁为结束状态,整个路径的概率最大。

那怎么操作?我们首先关注的是最后一个时间节点 7 7 7,问题就落脚在如果状态转移路径以结束于状态 k k k的路径概率最大(可以是状态 1 1 1-状态 5 5 5中的任意一个,我们先不管他具体是哪一个了,只知道肯定是其中一个),那么这个概率该怎么表示呢?很显然,他依赖于时间节点 6 6 6可能选取的 5 5 5个状态。

实际上,时间节点 6 6 6取 5 5 5个状态中的任意一个都是有可能的,可能由时间节点 6 6 6处的状态 1 1 1转移到时间节点 7 7 7处的状态 k k k,也可能由状态 2 2 2转移到时间节点 7 7 7的状态 k k k,当然也可以是状态 3 3 3、状态 4 4 4或者状态 5 5 5。最终就看从哪里转移过去的路径概率最大,就选择从哪里转移过去,过程示意如下图所示:

图2.路径概率分析示意图

我们令 X 6 i X_{6i} X6i​表示到达时间节点 6 6 6时,此时状态为 i i i的最大路径概率,当然了,状态 i i i可以取 { 1 , 2 , 3 , 4 , 5 } \{1,2,3,4,5\} {1,2,3,4,5}中的任意一个,那么实际上就有 X 61 X_{61} X61​, X 62 X_{62} X62​, X 63 X_{63} X63​, X 64 X_{64} X64​, X 65 X_{65} X65​五个不同的值。在上面这幅图中,就对应了虚线框中五种颜色示意的到达时间节点 6 6 6的五条路径,他们分别都是在时间节点 6 6 6时到达对应状态 i i i的最大概率路

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

深度学习实战项目

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值