DarcyBlog ML

隐马尔可夫链

2019-06-22

前言

隐马尔可夫模型(Hidden Markov Model,简称HMM),是可以用来标注问题的统计学习模型,描述由马尔可夫链随机生成观测序列的过程,属于生成式模型。 在正常的马尔可夫模型中,状态对于观测者来说是直接可见的。这样状态的转换概率便是全部的参数。而在隐马尔可夫模型中,状态并不是直接可见的,但是受状态影响的某些变量是可见的。每一个状态在可能输出的符号上都有一个概率分布,因此输出序列能否透露出状态序列的一些信息。

HMM模型的定义

隐马尔可夫模型由初始概率分布,状态转移概率分布以及观测概率分布确定。 我们假设Q是所有可能的隐藏状态的集合,V是所有可能的观测状态的集合,即:

其中,N是可能的状态数,M是可能的观测数。 I是长度为T的状态序列,O是对应的观测序列。

A是状态转移概率矩阵:

其中,

表示在时刻t处于状态$q_i$的条件下在时刻t+1转移到状态$q_j$的概率。

B是观测概率矩阵:

其中,

表示在时刻t处于状态$q_j$的条件下生成观测$v_k$的概率。

$\pi$是初始状态概率向量:

其中:

表示时刻t=1处于状态$q_i$的概率。

一个马尔可夫模型,可以有隐藏状态的初始概率分布$\pi$,状态转移矩阵A和观测状态转移矩阵B决定,$\pi$,A决定状态序列,B决定观测序列。因此,隐马尔可夫模型$\lambda$可以用三员符号表示,即:

$\pi$,A,B称为隐马尔可夫模型的三要素。

隐马尔可夫做了两个很重要的基本能假设:

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

2、观察独立性假设,即假设任意时刻的观测值依赖于该时刻的马尔可夫链的状态,与其他观测及状态无关,即:

HMM的3个经典问题

HMM模型建立起来后,一般我们会讨论3个问题:

1、评估问题:给定模型$\lambda=(A,B,\pi)$和观测序列$O=(o_1,o_2,…,o_T)$,计算在模型$\lambda$下观测序列O出现的概率 => (前向算法)

2、预测问题:也称解码,给定观测序列O和模型参数$\lambda$,我们怎样选择一个状态序列,以便能够最好的解释观测序列,即求最有可能的状态序列(条件概率 最大)。=> (维比特算法)

3、学习问题:给定观测序列O,找到一个能最好的解释观测序列的模型$\lambda=(A,B,\pi)$,即使得 最大。=> (EM算法,前后向算法)

评估描述

给定观测序列$O=(o_1,o_2,…,o_T)$和模型$\lambda=(A,B,\lambda)$,求观测序列O出现的概率最大的概率$P(O|\lambda)$。解决该问题的最直观的想法是把所有可能的隐藏状态都遍历一遍,得到对应观测状态的概率有多大,这些可能全部加起来就是得到这个观测状态的可能性。 1、全概率公式求解观测序列在所有可能的隐藏状态序列下的概率之和。

2、任意隐藏状态序列$I=(i_1,i_2,…,i_T)$的概率是

3、已知状态序列$\lambda$下,观测序列$O=(o_1,o_2,…,o_T)$的概率

4、O和I同时出现的联合概率为:

5、对所有可能的隐藏状态序列I求和得:

利用上式计算量很大,达到$O(TN^T)$阶,在状态集合和隐藏状态序列比较短时,还是有可能穷举所有可能的状态序列,如果长的话,穷举的数量太大,指数级的,就很难完成。

前向算法

给定HMM模型$\lambda$,定义到时刻t部分观测序列为$o_1,o_2,..o_t$且状态为$q_i$的概率为前向概率,记为:

通过递推求得前向概率$\alpha_t(i)$即观测序列概率

算法

输入:隐马尔可夫模型$\lambda$,观测序列O 输出:观测序列概率$P(O|\lambda)$ 1、初值

2、递推,对t=1,2,…,T-1

3、终止

预测描述

近似算法
维比特算法

维比特算法实际是用动态规划解马尔可夫模型的预测问题,即用动态规划求概率最大路径,这时一条路径对应着一个状态序列。

算法

输入:模型$\lambda=(A,B,\pi)$和观测序列

输出:最优路径

1、初始化:

2、递推,对

3、终止

4、最优路径回溯,对$t=T-1,T-2,…,1$

求得


Similar Posts

上一篇 EM算法

Comments