隐马尔科夫模型
1.1 隐马尔科夫模型定义
隐马尔科夫模型是关于时序的概率模型,描述由一个隐藏的马尔科夫链随机生成不可观测的状态随机序列,再由各个状态生成一个观测而产生观测随机序列的过程。隐藏的马尔科夫链随机生成的状态序列,称为状态序列(state sequence);每个状态生成一个观测,而由此产生的观测的随机序列,称为观测序列(observation sequence)。序列的每个位置又可以看做是一个时刻。
隐马尔科夫模型由初始概率分布,状态转移概率分布以及观测概率分布确定。隐马尔科夫模型的形式定义如下:
设 Q 是所有可能的状态集合, V 是所有可能的观测集合。
Q
=
其中,N是可能的状态数,M是可能的观测数。
I
是长度为
A
是状态转移概率矩阵:
其中, aij=P(it+1=qj|it=qi) , i=1,2,⋯,,N;j=1,2,⋯,N 是在时刻 t 处于状态
B
是观测概率矩阵:
其中 bj(k)=P(ot=vk|it=qj) , k=1,2,⋯,M;j=1,2,⋯,N 是在时刻 t 处于状态
π
是初始状态概率向量:
其中, πi=P(i1=q1) , i=1,2,⋯,N 是时刻 t=1 处于状态 qi 的概率。
隐马尔科夫模型由初始的状态概率向量
π
,装填转移概率矩阵
A
和观测概率矩阵
状态转移概率矩阵
A
与初始状态概率向量
从上面定义可知,隐马尔科夫模型做了两个基本的假设
齐次马尔科夫性假设,即假设隐藏的马尔科夫链在任意时刻
t 的状态只依赖于其前一时刻的状态,与其他时刻的状态及观测无关,也与时刻 t 无关
P(it|it−1,ot−1,⋯,i1,o1)=P(it|it−1),t=1,2,⋯,T 观测独立性假设,即假设任意时刻的观测只依赖于该时刻的马尔科夫链的状态,与其他观测及状态无关。
P(ot|iT,oT,⋯,i1,o1)=P(ot|it)隐马尔科夫模型可以用于标注,这时候状态对应着标记,标注问题是给定观测的序列预测其对应的标记序列。可以假设标注问题的数据是由隐马尔科夫模型生成的,这样就可以利用隐马尔科夫模型的学习与预测算法进行标注。
1.2 观测序列的生成过程
将一个长度为 T 的观测序列
O=(o1,o2,⋯,oT) 的生成过程描述如下:输入:隐马尔科夫模型 λ=(A,B,π) ,观测序列长度 T ;
输出:观测序列O=(o1,o2,⋯,oT) - 按照初始状态分布 π 生成状态 i1
- 令 t=1
- 按照状态 it 的观测概率分布 bij(k) 生成 ot
- 按照状态 it 的状态转移概率分布 {ait,it+1} 产生状态 it+1,it+1=1,2,⋯,N
- 令 t=t+1 ; 如果 t<T 转第3步,否则终止
1.3 隐马尔科夫模型的三个基本问题
- 概率计算问题. 给定模型
λ=(A,B,π)
和观测序列
O=(o1,o2,⋯,oT)
,计算在模型
λ
下观测
O
出现的概率
P(O|λ) - 学习问题. 已知观测序列 O=(o1,o2,⋯,oT) , 估计模型 λ=(A,B,π) 参数,使得在该模型下的观测序列概率 P(O|λ) 最大,即用极大似然估计的方法估计参数
- 预测问题,也称为解码(decoding)问题,已知模型 λ=(A,B,π) 和观测序列 O=(o1,o2,⋯,oT) ,求对给定观测序列条件概率 P(I|O) 最大的状态序列 I=(i1,2,⋯,iT) , 即给定观测序列,求最有可能的对应的状态序列。