自然语言处理——6.2 隐马尔可夫模型
2018-10-04 本文已影响14人
SpareNoEfforts
隐马尔可夫模型(Hidden Markov Model, HMM)描写
描写:该模型是一个双重随机过程,我们不知道具体的状态序列,只知道状态转移的概率, 即模型的状态转换过程是不可观察的(隐蔽 的),而可观察事件的随机过程是隐蔽状态转换过程的随机函数。
例如:N个袋子,每个袋子中有M种不同颜色的球。一实验员根据某一概率分布选择一个袋子,然后根据袋子中不同颜色球的概率分布随机取出一个球,并报告该球的颜色。对局外人:可观察的过程是不同颜色球的序列,而袋子的序列是不可观察的。每只袋子对应HMM中的一个状态;球的颜色对应于HMM中状态的输出。
HMM的组成
- 模型中的状态数为N(袋子的数量)
- 从每一个状态可能输出的不同的符号数M(不同颜色球的数目)
- 状态转移概率矩阵, 为实验员从一只袋子(状态) 转向另一只袋子(状态 ) 取球的概率。其中,
- 从状态 观察到某一特定符号 的概率分布矩阵为:
其中,为实验员从第 个袋子中取出第 种颜色的球的概率。那么,
5.初始状态的概率分布为:, 其中,
为了方便,一般将HMM 记为:
或者用以指出模型的参数集合。
给定HMM求观察序列
给定模型,产生观察序列:
(1)令;
(2)根据初始状态分布选择初始状态;
(3)根据状态 的输出概率分布, 输出;
(4)根据状态转移概率,转移到新状态;
(5), 如果, 重复步骤, 否则结束
三个问题
(1)在给定模型 和观察序列的情况下,怎样快速计算概率?
(2)在给定模型 和观察序列的情况下,如何选择在一定意义下“最优”的状态序列,使得该状态序列“最好地解释”观察序列?
(3)给定一个观察序列,如何根据最大似然估计来求模型的参数值?即如何调节模型的参数,使得 最大?