隐马尔科夫模型 (HMM) 简介——自然语言处理词性标注

/ NLP / 没有评论 / 799浏览

隐马尔科夫模型

英文名:hidden markov model

形式化描述

隐马尔可夫模型 (HMM) h 可以表示为一个五元组 $h = ( S, V, A, B, \pi )$

S 是一组状态的集合。S = {1, 2, 3, …, N }
V 是一组输出符号组成的集合。V = {$v_1, v_2, v_3, … , v_M$}
A 是状态转移矩阵, N 行 N 列。$A = [a_{ij}]$
B 是输出符号的概率分布。$B = { b_{j}(k) }$。
$b_{j}(k)$ 表示在状态 j 时输出符号 $v_k$ 的概率 $b_{j}(k) = P(v_k | j ), 1 \le k \le M ,1 \le j \le N$
$\pi$ 是初始状态概率分布 $\pi$ = { $\pi_i$ }, $\pi_i = P( q_1 = i )$ 表示时刻1选择某个状态的概率。

三个重要假设

马尔科夫假设

状态构成一阶马尔科夫链, 即

$$ P(X_{i}|X_{i-1},...,X_{1}) = P(X_{i}|X_{i-1}) $$

不动性假设

状态与具体时间无关, 即

$$ P(X_{i}|X_{i-1}) = P(X_{j}|X_{j-1}) $$

输出独立性假设

输出仅与当前状态有关, 即

$$ P(O_{1},...,O_{T}|X_{1},...,X_{T}) = \Pi P(O_{T}|X_{T}) $$

这三个假设使隐马尔可夫模型摆脱了时域上的限制,成为一个纯粹的逻辑模型。

三个疑难问题

观测序列概率计算

可查看向前向后算法解决估算问题——隐马尔可夫疑难问题一

最佳状态转移序列

可查看韦特比(Viterbi)算法与解码问题——隐马尔可夫疑难问题二

模型参数估计问题

可查看Baum-Welch算法与参数估计——隐马尔可夫疑难问题三

模型实现

浮点溢出问题