《统计学习方法》笔记——隐马尔科夫模型


初学隐马尔科夫模型的时候由于概念相对抽象,学习过程中十分费力,在此将对隐马尔科夫模型和其涉及的公式做整理,并对我学习过程中遇到的困难添加一定的注释。

隐马尔科夫模型

模型介绍

隐马尔科夫模型是一种生成模型。
生成过程:
1、存在一个不可观测的马尔科夫链
2、每个时刻马尔科夫链处于一个不可观测的状态
3、每个状态生成一个观测
4、下一时刻按照一定概率转移到下一个不可观测的状态
5、重复3-4步

为了方便对这个模型的研究,现在定义如下量
Q Q Q是所有可能状态的集合, Q = { q 1 , q 2 , ⋯   , q N } Q=\{q_1,q_2,\cdots,q_N\} Q={ q1,q2,,qN}
V V V是所有可能的观测的集合, V = { v 1 , v 2 , ⋯   , v M } V=\{v_1,v_2,\cdots,v_M\} V={ v1,v2,,vM}
设A为状态转移矩阵, A = [ a i j ] N × N A=[a_{ij}]_{N\times N} A=[aij]N×N,即状态转移时,从状态 q i q_i qi转移到状态 q j q_j qj的概率,显然其满足 ∑ j = 1 N a i j = 1 \sum_{j=1}^Na_{ij}=1 j=1Naij=1
I I I为状态序列, I = { i 1 , i 2 , ⋯   , i T } I=\{i_1,i_2,\cdots,i_T\} I={ i1,i2,,iT}即从时刻 1 1 1到时刻 T T T依次转移并经历了集合中的T个状态。
结合状态转移矩阵 A A A和状态序列 I I I
a i j = P ( i t + 1 = q j ∣ i t = q i ) a_{ij}=P(i_{t+1}=q_j|i_t=q_i) aij=P(it+1=qjit=qi)
B B B为观测概率矩阵, B = [ b j ( k ) ] N × M B=[b_j(k)]_{N\times M} B=[bj(k)]N×M,用于描述当处于状态 q j q_j qj时,生成观测 v k v_k vk的概率。
O O O为状态序列 I I I对应的观测序列, O = { o 1 , o 2 , ⋯   , o T } O=\{o_1,o_2,\cdots,o_T\} O={ o1,o2,,oT}
结合观测概率矩阵 B B B和观测序列 O O O
b j ( k ) = P ( o t = v k ∣ i t = q j ) b_{j}(k)=P(o_{t}=v_k|i_t=q_j) bj(k)=P(ot=vkit=qj)
π \pi π为初始状态向量, π = ( π i ) \pi=(\pi_i) π=(πi),表示
π i = P ( i 1 = q i ) \pi_i=P(i_1=q_i) πi=P(i1=qi)
一个隐马尔科夫模型可以由 π , A , B \pi,A,B π,A,B决定

结合上面繁琐的定义,我们再来审视一下什么是隐马尔科夫模型:

当我们知道初始状态 π = [ π 1 , π 2 , ⋯   , π N ] \pi=[\pi_1,\pi_2,\cdots,\pi_N] π=[π1,π2,,πN]和状态转移矩阵 A A A,我们就可以求出任意时刻的状态概率分布,即
[ P ( i t = q 1 ) P ( i t = q 2 ) ⋮ P ( i t = q N ) ] = ( A T ) t − 1 π \begin{bmatrix} P(i_t=q_1)\\ P(i_t=q_2)\\ \vdots \\ P(i_t=q_N)\\ \end{bmatrix} =(A^T)^{t-1}\pi P(it=q1)P(it=q2)P(it=qN)=(AT)t1π
只要我们知道当前的马尔科夫链的状态,我们就可以通过观测概率矩阵 B B B来求得观测量的概率分布
[ P ( o t = v 1 ∣ i t = q j ) P ( o t = v 2 ∣ i t = q j ) ⋮ P ( o t = v M ∣ i t = q j ) ] = [ b j ( 1 ) b j ( 2 ) ⋮ b j ( M ) ] \begin{bmatrix} P(o_t=v_1|i_t=q_j)\\ P(o_t=v_2|i_t=q_j)\\ \vdots \\ P(o_t=v_M|i_t=q_j)\\ \end{bmatrix} =\begin{bmatrix} b_j(1)\\ b_j(2)\\ \vdots \\ b_j(M)\\ \end{bmatrix} P(ot=v1it=qj)P(ot=v2it=qj)P(ot=vMit=qj)=bj(1)bj(2)bj(M)
可以把右侧这个向量看做一个简单的概率模型,马尔科夫链处于哪个状态决定了选择哪个简单概率模型来生成数据。而马尔科夫链的状态服从状态概率分布 ( A T ) t − 1 π (A^T)^{t-1}\pi (AT)t1π,这个概率分布随着时间的变化而变化。
综上,隐马尔科夫模型就是在时刻 t t t,按照当前的状态概率分布 ( A T ) t − 1 π (A^T)^{t-1}\pi (AT)t1π随机选择一个概率模型
[ b j ( 1 ) b j ( 2 ) ⋮ b j ( M ) ] \begin{bmatrix} b_j(1)\\ b_j(2)\\ \vdots \\ b_j(M)\\ \end{bmatrix} bj(1)bj(2)bj(M)
再根据这个概率模型随机生成一个可观测数据,在下一 t + 1 t+1 t+1时刻,状态概率分布依据状态转移矩阵转移到新的状态概率分布 ( A T ) t π (A^T)^{t}\pi (AT)tπ,并按照新的状态概率分布随机选择一个概率模型,再随机生成一个可观测数据。以此类推。

概率计算

在对隐马尔科夫模型有了以上认识之后,我们就可以根据观测序列 O O O对生成模型中的参数 λ = ( A , B , π ) \lambda=(A,B,\pi) λ=(A,B,π)做估计了,采用MLE(最大似然)方法。即
λ = arg ⁡ max ⁡ λ P ( O ∣ λ ) \lambda=\arg\max_\lambda P(O|\lambda) λ=argλmaxP(Oλ)

直接计算法

假定我们的观测 O = { o 1 , o 2 , ⋯   , o T } O=\{o_1,o_2,\cdots,o_T\} O={ o1,o2,,oT},来自于某一状态序列 I = { i 1 , i 2 , ⋯   , i T } I=\{i_1,i_2,\cdots,i_T\} I={ i1,i2,,iT},则
P ( I ∣ λ ) = π i 1 a i 1 i 2 a i 2 i 3 ⋯ a i T − 1 i T P(I|\lambda)=\pi_{i_1}a_{i_1i_2}a_{i_2i_3}\cdots a_{i_{T-1}i_T} P(Iλ)=πi1ai1i2ai2i3aiT1iT
对于这一具体的状态序列,观测序列 O O O的概率是:
P ( O ∣ I , λ ) = b i 1 ( o 1 ) b i 2 ( o 2 ) ⋯ b i T ( o T ) P(O|I,\lambda)=b_{i_1}(o_1)b_{i_2}(o_2)\cdots b_{i_T}(o_T) P(OI,λ)=bi1(o1)bi2(o2)biT(oT)
联合概率可以求得:
P ( O , I ∣ λ ) = P ( I ∣ λ ) P ( O ∣ I , λ ) P(O,I|\lambda)=P(I|\lambda)P(O|I,\lambda) P(O,Iλ)=P(Iλ)P(OI,λ)
则边缘概率 P ( O ∣ λ ) P(O|\lambda) P(Oλ)可以如下计算:
P ( O ∣ λ ) = ∑ I P ( I ∣ λ ) P ( O ∣ I , λ ) P(O|\lambda)=\sum_IP(I|\lambda)P(O|I,\lambda) P(

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值