【菜鸟笔记|机器学习】隐马尔可夫模型

隐马尔可夫模型主要用于时序数据建模,在音频处理上有广泛的应用。本文将简单介绍隐马尔可夫模型及其三个基本问题。

一、定义

隐马尔可夫模型就是根据马尔科夫链生成一组状态随机序列,然后根据每一个状态得到一组观测序列,下图比较直观地描述了马尔可夫模型:
【菜鸟笔记|机器学习】隐马尔可夫模型_第1张图片
数学描述如下:
【菜鸟笔记|机器学习】隐马尔可夫模型_第2张图片

二、两个基本假设

齐次马尔可夫假设:it只与it-1有关
观测独立性假设:ot只与it有关

三、三个基本问题

1.概率计算问题
定义:已知λ=(A,B,π)和O=(o1,o2,…,oT),计算P(o|λ)。
由于直接计算法时间复杂度过高,引入了前向概率和后向概率来方便计算,这分别对应前向算法和后向算法。这两个算法的思想差不多。前向算法是根据递推公式计算出末项的前向概率,累计求和即可得到结果。后向算法是根据递推公式求得首项的后向概率,乘以初始状态概率向量和观测概率后累计求和即可得到结果。
2.学习问题
定义:已知O=(o1,o2,…,oT),估计λ=(A,B,π)使P(o|λ)最大。
学习问题又分为有监督学习和无监督学习。对于有监督学习,除了知道观测序列O以外,状态序列I也是已知的,这时可以直接计算概率。对于无监督学习,我们只知道观测序列,这时需要用到Baum-Walch算法,也就是利用EM算法来估计参数。在E步把Q函数写成三项相加的形式,在M步分别对π,A,B进行参数估计,即可得到结果。
3.预测问题
定义:已知λ=(A,B,π)和O=(o1,o2,…,oT),求使P(o|λ)最大的I=(i1,i2,…,iT)。
解决预测问题的两个算法是近似算法和维特比算法。

你可能感兴趣的:(机器学习,hmm,隐马尔可夫模型)