隐马尔科夫模型
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), 即给定观测序列,求最有可能的对应的状态序列。