维特比算法的简单实现

本文介绍了隐马尔科夫模型的定义、基本假设和三个核心问题,重点讨论了维特比算法在解决预测问题中的应用,通过动态规划求解最优路径,并给出了Python实现代码示例。
摘要由CSDN通过智能技术生成
  • 隐马尔科夫模型

1.隐马尔可夫模型的定义

参考:统计学习方法 李航著

隐马尔科夫模型是关于时序的概率模型,描述由一个隐藏的马尔可夫链随机生成不可观测的状态随机序列,再由各个状态生成一个观测而产生观测随机序列的过程。隐藏的马尔可夫链随机生成的状态的序列,称为状态序列(state sequence);每个状态生成一个观测,而由此产生的观测的随机序列,称为观测序列(observation sequence)。序列的每一个位置又可以看作是一个时刻。

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

设Q是所有可能的状态的集合,V是所有可能的观测的集合。

Q=\left \{ q_{1},q_{2},...,q_{N} \right \},V=\left \{ v_{1},v_{2},...,v_{M} \right \},其中,N是可能的状态数,M是可能的观测数。

I是长度为T的状态序列,O是对应的观测序列。

I=\left ( i_{1},i_{2},...,i_{T} \right ),O=\left ( o_{1},o_{2},...,o_{T} \right )

A是状态转移概率矩阵:A=\left [ a_{ij} \right ]_{N*N}

其中,a_{ij}=P(i_{t+1}=q_{j}|i_{t}=q_{i}),i=1,2,...,N;j=1,2,...,N是在时刻t处于状态q_{i}的条件下在时刻t+1转移到状态q_{j}的概率。

B是观测概率矩阵:B=\left [ b_{j}(k) \right ]_{N*M}

其中,b_{j}(k)=P(o_{t}=v_{k}|i_{t}=q_{j}),k=1,2,...,M;j=1,2,...,N是在时刻t处于状态q_{j}的条件下生成观测v_{k}的概率。

π是初始状态概率向量:\pi =(\pi _{i})

其中,\pi _{i}=P(i_{1}=q_{i}),i=1,2,...,N是时刻t=1处于状态q_{i}的概率。

 

隐马尔科夫模型由初始状态概率向量π、状态转移概率矩阵A和观测概率矩阵B决定。π和A决定状态序列,B决定观测序列。因此,隐马尔可夫模型\lambda可以用三元符号表示,即\lambda =(A,B,\pi ),A,B,π称为隐马尔科夫模型的三要素。

状态转移概率矩阵A与初始状态概率向量π确定了隐藏的马尔可夫链,生成不可观测的状态序列。观测概率矩阵B确定了如何从状态生成预测,与状态序列综合确定了如何产生观测序列。

 

从定义可知,隐马尔科夫模型作了两个基本假设:

(1)齐次马尔可夫性假设,即假设隐藏的马尔可夫链在任意时刻t的状态只依赖于其前一时刻的状态,与其他时刻的状态与观测无关,也与时刻t无关。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值