HMM基础
一、HMM建模
![](https://img.haomeiwen.com/i8016875/c14cc9ef2c0c669e.png)
HMM参数:
![](https://img.haomeiwen.com/i8016875/b0c1bf802b34fd36.jpg)
二、HMM的3个假设
(一)马尔科夫假设
![](https://img.haomeiwen.com/i8016875/2886103a67d900c3.jpg)
(二)观测独立性假设
![](https://img.haomeiwen.com/i8016875/87c7e2b355b8badc.jpg)
(三)不变性假设
转移矩阵不随时间变化。
三、HMM的3个问题
(一)概率计算/评估 ------ likelihood
给定模型参数以及观测序列,求当前模型参数下生成给定观测序列的概率。
![](https://img.haomeiwen.com/i8016875/31c4985ab74c1ef3.jpg)
1、穷举法
![](https://img.haomeiwen.com/i8016875/ca5b436501785f5e.jpg)
2、前向后向算法
为了降低穷举法的计算复杂度。
![](https://img.haomeiwen.com/i8016875/08f145f69399df3e.jpg)
注:在概率计算问题中,无需用到后向概率。之所以计算后向概率,是为参数估计问题服务。
![](https://img.haomeiwen.com/i8016875/a7bce2e1fb02c6af.jpg)
3、维特比近似
与穷举法、前向后向算法遍历所有可能的状态序列不同的是,维特比近似使用最大概率状态序列代替所有可能的状态序列进行近似计算,具体算法参见(二)解码问题中的维特比算法。
![](https://img.haomeiwen.com/i8016875/feb301315bcb73d1.png)
(二)解码/状态分割 ------ decoding
给定模型参数以及观测序列,求当前模型参数下,给定观测序列,使得观测序列生成概率最大的状态序列。
![](https://img.haomeiwen.com/i8016875/b67b25718bb7f2ac.jpg)
1、近似算法
![](https://img.haomeiwen.com/i8016875/371c3ddf9ca2a5b4.jpg)
2、维特比算法
![](https://img.haomeiwen.com/i8016875/873f21a98dbe9bca.jpg)
![](https://img.haomeiwen.com/i8016875/a2ccf88dc449032e.jpg)
![](https://img.haomeiwen.com/i8016875/45d230e1c449abae.jpg)
关于概率计算问题中的维特比近似:
![](https://img.haomeiwen.com/i8016875/a7c4d08a90c033f7.jpg)
注意:近似算法与维特比算法得到的状态路径常不同。
(三)参数估计 ------ training
若观测序列和状态序列都已知,属于监督学习问题,应用MLE;
通常观测序列已知,状态序列未知,属于无监督学习问题,应用EM。
![](https://img.haomeiwen.com/i8016875/11e45254b83b9987.jpg)
首先得确定HMM拓扑结构:
![](https://img.haomeiwen.com/i8016875/08bb604f3db67b03.png)
![](https://img.haomeiwen.com/i8016875/25dfef32533e3be4.png)
![](https://img.haomeiwen.com/i8016875/ef536f100e37b09f.png)
1、分段k-means/Viterbi训练
1)GSM-HMM
![](https://img.haomeiwen.com/i8016875/ee7e508b93f8e90b.jpg)
2)GMM-HMM
![](https://img.haomeiwen.com/i8016875/714ce0e67014cb18.jpg)
分裂高斯:
(1)通过加上或减去小数字调整均值;
(2)将原高斯分量权重一分为二,分给生成的高斯分量。
![](https://img.haomeiwen.com/i8016875/68b996d2125ad951.png)
个高斯分量变为
个高斯分量。
![](https://img.haomeiwen.com/i8016875/c0be72c8de467fd7.jpg)
![](https://img.haomeiwen.com/i8016875/20cd27658ae9076b.jpg)
维特比训练将每个观测值唯一地分配给一个状态:
![](https://img.haomeiwen.com/i8016875/ff3c95700debf6d2.png)
这只是一种估计,有可能会出错。
2、Baum Welch算法/前向后向算法
soft decision ------ 将每个观测值以一定的概率分配给每个状态。
1)GSM-HMM
E步:根据当前参数,计算下面2个统计量。
:在
时刻占据状态
的概率。
![](https://img.haomeiwen.com/i8016875/d3c0a816cc180cfb.jpg)
:在
时刻占据状态
,
时刻占据状态
的概率。
![](https://img.haomeiwen.com/i8016875/cfc6af8dfb474c3d.jpg)
M步:根据这2个状态占有概率,对模型参数进行更新,重新估计。
![](https://img.haomeiwen.com/i8016875/bf73bc51cc6f4bd8.jpg)
![](https://img.haomeiwen.com/i8016875/8eca751621d7d9a4.jpg)
![](https://img.haomeiwen.com/i8016875/86f4f762d6003e23.jpg)
2)GMM-HMM
E步:根据当前参数,计算下面2个统计量。
:在
时刻占据状态
的混合分量
的概率。
![](https://img.haomeiwen.com/i8016875/eb044596a133aba3.jpg)
:在
时刻占据状态
,
时刻占据状态
的概率。
![](https://img.haomeiwen.com/i8016875/960a814792298fb5.jpg)
M步:根据这2个状态占有概率,对模型参数进行更新,重新估计。
![](https://img.haomeiwen.com/i8016875/d025ddfeffe00001.jpg)
![](https://img.haomeiwen.com/i8016875/e98087e44a30daaa.jpg)
![](https://img.haomeiwen.com/i8016875/a0889fb4cf2df815.jpg)
注:实现Baum Welch时为防止下溢(值趋近于0),可对相应值进行适当的缩放,可在对数域计算(乘法变为加法)。