隐马尔科夫模型,学习笔记

1. 隐马尔科夫模型的三个基本问题

1. 概率计算问题,已知模型和观测序列,计算在当前模型下观测序列出现的概率。

2. 学习问题。已知观测序列,来估计模型的参数(转移概率等等),使得在该模型下已知的观测序列出现的概率最大(极大似然)

3. 预测(解码)问题,已知模型和观测序列,求最有可能对应的状态序列。

 

2. 求解概率计算问题

如果已经知道模型的话,那么状态转移概率矩阵,初始状态概率向量,观测概率矩阵都已知。

首先考虑暴力的直接计算法

直接计算法:(不现实)

就是直接按照概率公式。

1.求出所有的可能出现的状态序列,

2.对于每种可能出现的状态序列,计算已知的观测序列出现的概率(乘上对应的观测概率矩阵)

3.将全部的概率相加,就是已知的观测序列出现的概率。

 

前向算法:

前向概率:到一个时刻t,时刻t时状态为q(而非观测),观测序列为(o1,o2.....ot)的概率。

前向算法:

1. 计算初值:根据初始状态概率向量,和观测概率矩阵,计算出每一种状态对应的t=1的前向概率。

2. 递推:计算每一种状态转移到当前状态i的概率和,再乘上观测概率。

3. 终止:概率计算为:对T时刻的每一种状态i的前向概率求和。

 

后向算法:

基本和前向算法很类似。

具体而言,定义t时刻状态为q,但已知观测序列为(ot+1,ot+2.....oT)

 

后向算法:

1. 初始T时刻的所有状态i的后向概率为1。(因为后向概率就是这么定义的。“在时刻t的状态为i的条件下”)

2. 前推,前一时刻,对于所有t+1时刻状态j  *  转移概率i->j  *  观测概率观测到Oj   求和

3. 终止。

 

利用前向和后向概率,我们可以求什么(应用)

1. 时刻t,处于状态qi的概率:参见统计机器学习P179(前向*后向)/(对于所有状态求和前向*后向)

2.时刻t处于状态qi,且时刻t+1,处于状态qj的概率:

3. 观测O下状态i出现的期望值

4.观测O下由状态i转移的期望值

5. 观测O下由状态i转移到状态j的期望值

3.学习算法(已知观测序列,求模型参数,即构建模型)

1.监督学习方法:训练数据中包含观测序列和对应的状态序列

极大似然估计法。

1.估计转移概率:用频数做比,i->j  /  i->所有状态

2. 估计观测概率:频数做比 ,状态j观测为k/状态j观测为任意状态

3. 初始状态概率:S个样本中初始状态为i的概率

 

2. 非监督学习方法:Baum-Welch算法

只给出S个观测序列,而没有给出对应的状态序列。

使用EM算法。

(略)

 

3. 预测算法:(根据模型和观测序列,得到最优的状态序列)

就像是训练出模型之后,输入样本(观测序列),得到输出(状态序列)

1. 近似算法

在每个时刻t选择在该时刻最有可能出现大的状态i,从而得到一个状态序列作为预测的结果。

(这里用到之前计算的某一时刻状态i的概率,在前向和后向算法那里)

计算某一时刻t下,所有状态i的概率,取其中的最大值。

计算所有时刻,形成一个序列。

2. 维特比算法

使用动态规划解马尔可夫模型预测问题。(求概率最大的路径,这时一条路径对应一个状态序列)

根据动态规划原理,如果最优路径(状态序列),在时刻t通过节点(状态)i,那么之后的部分路径也一定是最优的。

即子路径最优原则。

 

参见统计机器学习中的例子。很详细。

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值