隐马尔科夫模型(Hidden Markov Model)(一)

前言

隐马尔科夫模型是一种重要的概率图模型,也是自然语言处理中一种最为快速最为有效的模型,成功的解决了语音识别,机器翻译问题,最近转自然语言处理,所以对一些相关模型进行总结,以便日后工作中可以灵活使用去解决各类自然语言问题。

马尔科夫模型

我们在日常生活中会遇到这一类问题,考察一个随机变量的序列,这些随机变量并不是相互独立的,每一个随机变量会依赖于这个序列的前面一个状态。如果有一个系统有N个有限状态 S = { s 1 , s 2 , s 3 , . . . , s N } S=\{s_1,s_2,s_3,...,s_N\} S={s1,s2,s3,...,sN},那么随机时间的推移,系统会从一个状态转移到另一个状态。 Q = ( q 1 , q 2 , q 3 , . . . , q T ) Q=(q_1,q_2,q_3,...,q_T) Q=(q1,q2,q3,...,qT)为随机变量的一个序列,随机变量的取值为状态集为 S S S中的某一个状态,假设在时间 t t t的状态记为 q t q_t qt,那么对该系统的描述通常需要给出当前时刻 t t t的状态和前面所有状态的关系:系统在时间 t t t处于状态 s j s_j sj的概率取决于其在时间 1 , 2 , . . . , t − 1 1,2,...,t-1 1,2,...,t1的状态,该概率为 P ( q t = s j ∣ q t − 1 = s i , q t − 2 = s k , . . . ) P(q_t=s_j | q_{t-1}=s_i,q_{t-2}=s_k,...) P(qt=sjqt1=si,qt2=sk,...)如果在特定的情况下,系统在时间 t t t的状态只与其在时间 t − 1 t-1 t1状态相关,即 P ( q t = s j ∣ q t − 1 = s i , q t − 2 = s k , . . . ) = P ( q t = s j ∣ q t − 1 ∣ = s i ) P(q_t=s_j | q_{t-1}=s_i,q_{t-2}=s_k,...)=P(q_t=s_j|q_{t-1}|=s_i) P(qt=sjqt1=si,qt2=sk,...)=P(qt=sjqt1=si)那么该系统就构成了一个离散的一阶马尔科夫链(Markov chain).
如果上式只考虑独立于时间 t t t的随机过程: P ( q t = s j ∣ q t − 1 = s i ) = a i j , 1 ≤ i , j ≤ N P(q_t=s_j|q_{t-1}=s_i)=a_{ij},1\le i,j \le N P(qt=sjqt1=si)=aij,1i,jN该随机过程为马尔科夫模型。其中,状态转移概率 a i j a_{ij} aij必须满足以下条件: a i j ≥ 0 a_{ij} \ge 0 aij0 ∑ j = 1 N a i j = 1 \sum_{j=1}^{N}a_{ij}=1 j=1Naij=1如果有N状态的一阶马尔科夫过程就有 N 2 N^2 N2次状态转移,其 N 2 N^2 N2个状态转移概率可以表示成一个状态转移矩阵。
取个例子,如果一段文字中名词,动词,形容三类词性出现的情况可由三个状态的马尔可夫模型描述:
状态s1:名词
状态s2:动词
状态s3形容词

假设状态之间的转移矩阵为:
A = [ a i j ] = [ 0.3 0.5 0.2 0.5 0.3 0.2 0.4 0.2 0.4 ] A=[a_{ij}]= \begin{bmatrix} 0.3 & 0.5 & 0.2 \\ 0.5 & 0.3 & 0.2 \\ 0.4 & 0.2 & 0.4 \end{bmatrix} A=[aij]=0.30.50.40.50.30.20.20.20.4
假如该段文字中某一句子 的第一个词为名词,那么根据这一模型M,在该句子中这三类词的出现顺序为O=“名动形名”的概率为 P ( O ∣ M ) = P ( s 1 , s 2 , s 3 , s 1 ∣ M ) = P ( s 1 ) P ( s 2 ∣ s 1 ) P ( s 3 ∣ s 2 ) P ( s 1 ∣ s 3 ) = 1 a 12 a 23 a 31 P(O|M)=P(s_1,s_2,s_3,s_1|M)=P(s1)P(s_2|s_1)P(s_3|s_2)P(s_1|s_3) =1a_{12}a_{23}a_{31} P(OM)=P(s1,s2,s3,s1M)=P(s1)P(s2s1)P(s3s2)P(s1s3)=1a12a23a31

隐马尔科夫模型(HMM)

在马尔科夫模型中,每个状态代表了一个可观察的事件,但是适应性并不好,因为有时我们并不能知道模型所经过的状态序列,举个例子,假设一个暗室中有N个口袋,每个口袋有M种不同颜色的球,假设有一个人根据某一概率分布随机地选取一个初始口袋,从中概据不同颜色的球的概率分布,随机地取出一个球,并向室外的人报告该球的颜色。然后,再根据某一概率分布随机地选取一个初始口袋,从中概据不同颜色的球的概率分布取球,重复进行这个过程。这个例子中我们就不知道模型所以过的状态序列,只能知道每个状态输出的结果,我们叫做观察序列,所以总结下来,HMM由如下几个部分组成:
(1)模型中状态的数目N
(2)从每一个状态可能输出的不同符号的数目M
(3)状态转移矩阵 A = { a i j } A=\{ a_{ij}\} A={aij}
P ( q t = s j ∣ q t − 1 = s i ) = a i j , 1 ≤ i , j ≤ N P(q_t=s_j|q_{t-1}=s_i)=a_{ij},1\le i,j \le N P(qt=sjqt1=si)=aij,1i,jN a i j ≥ 0 a_{ij} \ge 0 aij0 ∑ j = 1 N a i j = 1 \sum_{j=1}^{N}a_{ij}=1 j=1Naij=1
(4)从状态 s j s_j sj观察到符号 v k v_k vk的概率分布矩阵 B = { b j ( k ) } B=\{b_j(k)\} B={bj(k)}( b j ( k ) b_j(k) bj(k)为从第 j j j个口袋中取出第 k k k种颜色的球的概率),其中, b j ( k ) = P ( O t = v k ∣ q t = s j ) , 1 ≤ j ≤ N ; 1 ≤ k ≤ M b_j(k)=P(O_t=v_k|q_t=s_j), 1\le j \le N;1 \le k \le M bj(k)=P(Ot=vkqt=sj),1jN;1kM b j ( k ) ≥ 0 b_j(k) \ge 0 bj(k)0 ∑ k = 1 M b j ( k ) = 1 \sum_{k=1}^Mb_j(k)=1 k=1Mbj(k)=1这观察符号的概率又称符号概率

(5)初始状态概率分布 π = P ( q 1 = s i ) ) , 1 ≤ i ≤ N \pi = P(q_1 = s_i)), 1\le i \le N π=P(q1=si)),1iN π ≥ 0 \pi \ge 0 π0 ∑ i N π i = 1 \sum_i^N \pi_i = 1 iNπi=1

所以总结下,一个HMM记为一个五元组 μ = ( S , K , A , B , π ) \mu=(S,K,A,B,\pi) μ=(S,K,A,B,π),其中 S S S就是状态集合, K K K为输出符号集合, π \pi π A A A B B B分别是初始状态的概率分布,状态转移概率和符号发射概率。可以简成 μ = ( A , B , π ) \mu=(A,B,\pi) μ=(A,B,π)
以上是模型介绍部分,后面会总结关于HMM求解问题,HMM应用。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值