隐马尔可夫模型

隐马尔可夫模型简介

隐马尔可夫模型(Hidden Markov Model,HMM)是可用于标注问题的统计学习模型,描述由隐马尔可夫链随机生成观测序列的过程,属于生成模型. 序列的每一个位置被看作是一个时刻.

隐马尔可夫模型的定义

定义 (隐马尔可夫模型)
Q Q Q是所有可能的状态的集合, V V V是所有可能的观测的集合.
Q = q 1 , q 2 , … q N ,    V = v 1 , v 2 , … v M Q={q_1,q_2,\dots q_N},\ \ V={v_1,v_2,\dots v_M} Q=q1,q2,qN,  V=v1,v2,vM
其中, N N N是可能的状态数, M M M是可能的观测数.
I I I是长度维 T T T的状态序列, O O O是对应的观测序列.
I = i 1 , i 2 , … i T ,    O = 1 , o 2 , … o T I={i_1,i_2,\dots i_T},\ \ O={_1,o_2,\dots o_T} I=i1,i2,iT,  O=1,o2,oT
A A A是状态转移概率矩阵:
(1.1) A = [ a i j ] N × N \begin{aligned} A = \Big[a_{ij}\Big]_{N\times N}\tag{1.1} \end{aligned} A=[aij]N×N(1.1)
其中,
(1.2) a i j = P ( i t + 1 = q j ∣ i t = q i ) ,       i = 1 , 2 , … N a_{ij} = P(i_{t+1}=q_j|i_t=q_i),\ \ \ \ \ i=1,2,\dots N \tag{1.2} aij=P(it+1=qjit=qi),     i=1,2,N(1.2)
是在时刻 t t t处于状态 q i q_i qi的条件下在时刻 t + 1 t+1 t+1转移到状态 q j q_j qj的概率.

B B B是观测概率矩阵:
(1.3) B = [ b j ( k ) ] N × M \begin{aligned} B = \Big[b_j(k)\Big]_{N\times M}\tag{1.3} \end{aligned} B=[bj(k)]N×M(1.3)
其中,
(1.4) b j = P ( o t = v k ∣ i t = q j ) ,       k = 1 , 2 , … M , j = 1 , 2 , … N b_j = P(o_t=v_k|i_t=q_j),\ \ \ \ \ k=1,2,\dots M,j=1,2,\dots N \tag{1.4} bj=P(ot=vkit=qj),     k=1,2,M,j=1,2,N(1.4)
是在时刻 t t t处于状态 q j q_j qj的条件下生成观测 v k v_k vk的概率.

π \pi π是初始状态概率向量:
隐马尔可夫模型由初始状态概率向量 π \pi π、状态转移概率矩阵 A A A和观测概率矩阵 B B B决定, A A A π \pi π决定状态序列, B B B决定观测序列。隐马尔可夫模型 λ \lambda λ可以用三元符号表示
(1.5) λ = ( A , B , π ) \lambda=(A,B,\pi)\tag{1.5} λ=(A,B,π)(1.5)
π \pi π B B B A A A称为隐马尔可夫模型的三要素.

隐马尔科夫模型的两个基本假设:

  • 齐次马尔可夫性假设,即假设隐藏的马尔可夫链在任意时刻 t t t的状态只依赖于其前一时刻的状态,与其他时刻的状态及观测无关,也与时刻 t t t无关.
    (1.6) P ( i t ∣ i t − 1 , o t − 1 , … , i 1 , o 1 ) = P ( i t ∣ i t − 1 ) , t = 1 , 2 , … T P(i_t|i_{t-1},o_{t-1},\dots,i_1,o_1) = P(i_t|i_{t-1}), t=1,2,\dots T \tag{1.6} P(itit1,ot1,,i1,o1)=P(itit1),t=1,2,T(1.6)
  • 观测独立性假设,即假设任意时刻的观测只依赖于该时刻的马尔可夫链的状态,与其他观测及状态无关.
    (1.7) P ( o t ∣ i T , o T , … , i t + 1 , o t + 1 , i t , i t − 1 , o t − 1 , ​ ⋯ 1 , o 1 ) = P ( o t ∣ i t ) P(o_t|i_T,o_T,\dots,i_{t+1},o_{t+1},i_t,i_{t-1},o_{t-1},\dotsi_1,o_1) = P(o_t|i_t) \tag{1.7} P(otiT,oT,,it+1,ot+1,it,it1,ot1,1,o1)=P(otit)(1.7)
    隐马尔可夫模型可以用于标注,这是2状态对应着标记.

隐马尔可夫模型的三个基本问题

  1. 概率计算问题.

    给定模型 λ = ( A , B , π ) \lambda=(A,B,\pi) λ=(A,B,π)和观测序列 O = 1 , o 2 , … o T O={_1,o_2,\dots o_T} O=1,o2,oT,计算在模型 λ \lambda λ下观测序列 O O O出现的概率 P ( O ∣ λ ) P(O|\lambda) P(Oλ).

  2. 学习问题
    已知观测序列 O = 1 , o 2 , … o t O={_1,o_2,\dots o_t} O=1,o2,ot,估计模型 λ = ( A , B , π ) \lambda=(A,B,\pi) λ=(A,B,π)的参数,使得在该模型下观测序列概率 P ( O ∣ λ ) P(O|\lambda) P(Oλ)最大.即用极大似然估计的方法估计参数.

  3. 预测问题,也称为解码问题.

    已知模型 λ = ( A , B , π ) \lambda=(A,B,\pi) λ=(A,B,π)和观测序列 O = 1 , o 2 , … o t O={_1,o_2,\dots o_t} O=1,o2,ot,求对给定观测序列条件概率 P ( I ∣ O ) P(I|O) P(IO)最大的状态子序列 I = ( i 1 , i 2 , … i T ) I=(i_1,i_2,\dots i_T) I=(i1,i2,iT).即给定观测序列,求最有可能的对应的状态序列.

概率计算算法

直接计算法

给定模型 λ = ( A , B , π ) \lambda=(A,B,\pi) λ=(A,B,π)和观测序列 O = 1 , o 2 , … o t O={_1,o_2,\dots o_t} O=1,o2,ot,计算观测序列出现的概率 P ( O ∣ λ ) P(O|\lambda) P(Oλ).最直接的方法是按概率公式直接计算.通过列举所有可能的长度为 T T T的状态序列 I = ( i 1 , i 2 , … i T ) I=(i_1,i_2,\dots i_T) I=(i1,i2,iT),求各个状态序列与观测序列的联合概率 P ( O , I ∣ λ ) P(O,I|\lambda) P(O,Iλ),然后对所有可能的状态序列求和,得到 P ( O ∣ λ ) P(O|\lambda) P(Oλ).

状态序列 I = ( i 1 , i 2 , … i T ) I=(i_1,i_2,\dots i_T) I=(i1,i2,iT)的概率是
(2.1) 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} \tag{2.1} P(Iλ)=πi1ai1i2ai2i3aiT1iT(2.1)
对固定的状态序列 I = ( i 1 , i 2 , … i T ) I=(i_1,i_2,\dots i_T) I=(i1,i2,iT),观测序列 O = { o 1 , o 2 , … o t } O=\{o_1,o_2,\dots o_t\} O={ o1,o2,ot}的概率是 P ( O ∣ I , λ ) P(O|I,\lambda) P(OI,λ)
(2.2) P ( O ∣ I , λ ) = b i 1 ( o 1 ) b i 2 ⋯ b i T ( o T ) P(O|I,\lambda)=b_{i_1}(o_1)b_{i_2}\cdots b_{i_T}(o_T)\tag{2.2} P(OI,λ)=

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值