HMM基础

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HMM基础相关的知识,希望对你有一定的参考价值。

一、HMM建模

 技术分享

HMM参数:

技术分享

 

二、HMM的3个假设

(一)马尔科夫假设

技术分享

(二)观测独立性假设

技术分享

(三)不变性假设

转移矩阵A不随时间变化

 

三、HMM的3个问题

(一)概率计算/评估---likelihood

给定模型参数以及观测序列,求当前模型参数下生成给定观测序列的概率。

技术分享

1、穷举法

技术分享

2、前向算法

为了降低穷举法的计算复杂度。

技术分享

注:

在概率计算问题中,无需用到后向概率,

之所以计算后向概率,是为参数估计问题服务。

技术分享

3、维特比近似

与穷举法,前向算法遍历所有可能的状态序列不同的是,

维特比近似使用最大概率状态序列代替所有可能的状态序列进行近似计算,

具体算法参见2)解码问题中的维特比算法。

技术分享

(二)解码/状态分割---decoding

给定模型参数以及观测序列,求当前模型参数下,给定观测序列下,使得观测序列生成概率最大的状态序列。

技术分享

1、近似算法

技术分享

2、维特比算法

技术分享

技术分享

技术分享

关于概率计算问题中的维特比近似:

技术分享

注意:

近似算法与维特比算法得到的状态路径常不同。

 

(三)参数估计---training

若观测序列和状态序列都已知,属于监督学习问题,应用MLE;

通常观测序列已知,状态序列未知,属于无监督学习问题,应用EM。

技术分享

首先得确定HMM拓扑结构:

技术分享技术分享技术分享

1、分段k-means/Viterbi训练

1)GSM-HMM

技术分享

2)GMM-HMM

技术分享

分裂高斯:

(1)通过加上或减去小数字调整均值;

(2)将原高斯分量权重一分为二,分给生成的高斯分量。

技术分享

N个高斯分量变为N+1个高斯分量

技术分享

技术分享

维特比训练将每个观测值唯一地分配给一个状态:

技术分享

这只是一种估计,有可能会出错。

2、Baum Welch算法/前向后向算法

soft decision---将每个观测值以一定的概率分配给每个状态

1)GSM-HMM

E步:根据当前参数,计算下面2个统计量。

gamma:在t时刻占据状态j的概率。

技术分享

isu:在t时刻占据状态i,t+1时刻占据状态j的概率。

技术分享

M步:

根据这2个状态占有概率,对模型参数进行更新,重新估计。

技术分享

技术分享

技术分享

2)GMM-HMM

E步:根据当前参数,计算下面2个统计量。
gamma:在t时刻占据状态j的混合分量m的概率。

技术分享

isu:在t时刻占据状态i,t+1时刻占据状态j的概率。

技术分享

M步:

根据这2个状态占有概率,对模型参数进行更新,重新估计。

技术分享

技术分享

 注:

实现BW时为防止下溢(值趋近于0),

可对相应值进行适当的缩放,

可在对数域计算(乘法变为加法)。




以上是关于HMM基础的主要内容,如果未能解决你的问题,请参考以下文章

机器学习HMM模型

python基础:json文件保存与读取

史诗级干货长文HMM模型

学点算法搞安全之HMM(上篇)

隐马尔科夫模型HMM前向后向算法评估观察序列概率

序列标注(HMM/CRF)