HMM概序
(533)
1、五个基本要素
HMM是个五元组λ=( S, O, π ,A,B)
S:状态值集合,O:观察值集合,π:初始化概率,A:状态转移概率矩阵,B:给定状态下,观察值概率矩阵
2、HMM的三个假设
1、有限历史性假设,p(si|si-1,si-2,...,s1)= p(si|si-1)
2、齐次性假设,(状态与具体时间无关),P(si+1|si)=p(sj+1,sj)
3、输出独立性假设,输出仅与当前状态有关,P(o1,...ot|s1,...st) = P(ot|st)
3、HMM解决的三个问题
1:识别问题,已知模型参数 λ= (A, B, π),计算某个观测序列发生的概率,即求P(O|λ)用前向算法或者后向算法求解此类问题。
2:译码问题,给出观测序列O和模型μ,怎样选择一个状态序列S(s1,s2,...st+1),能最好的解释观测序列,此问题采用了维特比算法。
3:训练问题,如何调整模型参数 λ=(π, A, B), 使得P(O|λ)较大?此问题面向不同的语料库有不同的方式:
a.对于观测序列和状态序列都有的立项预料库,直接用较大似然估计即可获得参数λ
b.对于只知道观测序列的,应用EM算法(Baum-Welch鲍姆-韦尔奇算法)的实现前向后向算法求解。
前向算法
先看一个通过观察海藻湿度推测天气的实例。
假设连续观察3天的海藻湿度为(Dry,Damp,Soggy),求出该观察序列的概率。天气只有三类(Sunny,Cloudy,Rainy),而且海藻湿度和天气有一定的关系。
已知:
1.隐藏的状态:Sunny,Cloudy, Rainy;海藻湿度有四类{Dry,Dryish,Damp, Soggy }
2.观察状态序列:{Dry, Damp, Soggy };
3.初始状态序列:Sunny(0.63),Cloudy(0.17),Rainy(0.20);
4.状态转移矩阵:
|
Sunny |
Cloudy |