定义
设Q 是所有可能的状态的集合,V是所有可能的观测的集合。
Q={q1,q2,...,qN},V={v1,v2,...,vM}
其中,N 是可能的状态数,M 是可能的观测数。
状态q 是不可见的,观测v 是可见的。应用到词性标注系统,词就是v ,词性就是q 。
I 是长度为T 的状态序列,O 是对应的观测序列。
I={i1,i2,...,iT},O={o1,o2,...,oT}
A 为状态转移概率矩阵:
A=[aij]N×N
其中,
aij=P(it+1=qj|it=qi),i=1,2,...,N;j=1,2,...,N
是在时刻t 处于状态qi 的条件下在时刻t+1 转移到状态qj 的概率。
这实际在表述一个一阶的HMM,所作的假设是每个状态只跟前一个状态有关。
B 是观测概率矩阵:
B=[bj(k)]N×M
其中,
bj(k)=P(ot=vk|it=qj),k=1,2,...,M;j=1,2,...,N
是在时刻t处于状态qj的条件下生成观测vk的概率(也就是所谓的“发射概率”)。
这实际上在作另一个假设,观测是由当前时刻的状态决定的,跟其他因素无关,这有点像Moore自动机。
π是初始状态概率向量:
π=(πi)
其中,π=P(i1=qi),i=1,2,...,N
是时刻t=1处于状态qj 的概率。
隐马尔可夫模型由初始状态概率向量π 、状态转移概率矩阵A和观测概率矩阵B 决定,π 和A 决定状态序列,B 决定观测序列。因此,隐马尔可夫模型λ 可以用三元符号表示,即
λ={A,B,π}
状态转移概率矩阵A 与初始状态概率向量π 确定了隐藏的马尔可夫链,生成不可观测的状态序列。观测概率矩阵B 确定了如何从状态成观测,与状态序列综合确定了如何产生观测序列。
从定义可知,隐马尔可夫模型作了两个基本假设:
(1)齐次马尔可夫性假设,即假设隐藏的马尔可夫链在任意时刻t 的状态只依赖于其前一时刻的状态,与其他时刻的状态及观测无关。
P(it|it−1,ot−1,...,i1,01)=P(it|it−1),t=1,2,...,T
从上式左右两边的复杂程度来看,齐次马尔可夫性假设简化了许多计算。
(2)观测独立性假设,即假设任意时刻的观测只依赖于该时刻的马尔可夫链的状态,与其他观测及状态无关。
P(ot|it,oT,iT−1,oT−1,...,it+1,ot+1,it,ot,...,i1,o1)=P(ot|it)
简化了计算。推倒
P(i1,i2,...,in|o1,o2,...,on)=P(o1,o2,...,on|i1,i2,...,in)∗P(i1,i2,...,in)P(o1,o2,...,on)(1−1)→P(o1,o2,...,on|i1,i2,...,in)∗P(i1,i2,...,in)(1−2)→∏j=1np(oj|ij)P(ij+1|ij)(1−3)
由于P(o1,o2,...,on) 是常量,所以求式1-1的问题可以转化为求式1-2的问题。
由假设1和2可把求式1-2的问题转化为求式1-3的问题。
由上可知,隐马尔的求解问题可以转化为求:
max(∏j=1np(oj|ij)P(ij+1|ij)
求解上述问题有两种方式,一种是枚举,当状态的集合和观测结合特别大时,这种方法显然不可行。一种可以有效求解的方法就是 Viterbi 算法,下一章节将用这个算法来进行求解。参考资料:《统计机器学习》,李航
自然语言处理系列之隐马尔可夫模型(HMM)
猜你喜欢
转载自blog.csdn.net/lionel_fengj/article/details/70196647
今日推荐
周排行