人工智能/机器学习基础知识——隐马尔科夫模型(Hidden Markov Model,HMM)

隐马尔科夫模型

Hidden Markov Model(HMM)

  • 两组变量

    • 状态变量:表示第 i i i时刻的系统状态

      隐藏的,不可观测的(亦被称为隐变量)

      { y 1 , y 2 , . . . , y n } , y i ∈ γ \{y_1, y_2, ..., y_n\},y_i \in γ {y1,y2,...,yn}yiγ

      • 取值范围:N个可能取值的离散空间

        { s 1 , s 2 , . . . , s N } \{s_1, s_2, ..., s_N\} {s1,s2,...,sN}

    • 观测变量:表示第 i i i个时刻的观测值

      { x 1 , x 2 , . . . , x n } \{x_1, x_2, ..., x_n\} {x1,x2,...,xn}

      • 取值范围:连续或离散

        { o 1 , o 2 , . . . , o M } \{o_1, o_2, ..., o_M\} {o1,o2,...,oM}

  • 图中箭头表示变量间的依赖关系

    马尔可夫链(Markov Chain):系统下一时刻的状态仅由当前状态决定,不依赖于以往的任何状态

    • 在任一时刻,观测变量的取值仅依赖于状态变量,即 x t x_t xt y t y_t yt确定,与其他状态变量及观测变量的取值无关

    • t t t时刻的状态 y t y_t yt仅依赖于 t − 1 t-1 t1时刻的状态 y t − 1 y_{t-1} yt1,与此前 t − 2 t-2 t2个状态无关

    在这里插入图片描述

    • 基于这种依赖关系,所有变量的联合概率分布为:

      P ( x 1 , y 1 , … , x n , y n ) = P ( y 1 ) P ( x 1 ∣ y 1 ) ∏ i = 2 n P ( y i ∣ y i − 1 ) P ( x i ∣ y i ) P\left(x_{1}, y_{1}, \ldots, x_{n}, y_{n}\right)=P\left(y_{1}\right) P\left(x_{1} \mid y_{1}\right) \prod_{i=2}^{n} P\left(y_{i} \mid y_{i-1}\right) P\left(x_{i} \mid y_{i}\right) P(x1,y1,,xn,yn)=P(y1)P(x1y1)i=2nP(yiyi1)P(xiyi)

  • 除了结构信息,欲确定一个隐马尔科夫模型还需以下三组参数

    • 状态转移概率:模型在各个状态间转换的概率,通常记为矩阵 A = [ a i j ] N × N A=[a_{ij}]_{N×N} A=[aij]N×N

      a i j = P ( y t + 1 = s j ∣ y t = s i ) , i ⩽ i , j ⩽ N a_{i j}=P\left(y_{t+1}=s_{j} \mid y_{t}=s_{i}\right), \quad i \leqslant i, j \leqslant N aij=P(yt+1=sjyt=si),ii,jN
      表示在任意时刻 t t t,若状态为 s i s_i si,则在下一时刻状态为 s j s_j sj的概率

    • 输出观测概率:模型根据当前状态获得各个观测值的概率,通常记为矩阵 B = [ b i j ] N × M B=[b_{ij}]_{N×M} B=[bij]N×M

      b i j = P ( x t = o j ∣ y t = s i ) , 1 ⩽ i ⩽ N , 1 ⩽ j ⩽ N b_{i j}=P\left(x_{t}=o_{j} \mid y_{t}=s_{i}\right), \quad 1 \leqslant i \leqslant N, 1 \leqslant j \leqslant N bij=P(xt=ojyt=si),1iN,1jN
      表示在任意时刻 t t t,若状态为 s i s_i si,则观测值 o j o_j oj被获取的概率

    • 初始状态概率:模型在初始时刻各状态出现的概率,通常记为 π = ( π 1 , π 2 , . . . , π N ) π=(π_1, π_2, ..., π_N) π=(π1,π2,...,πN)

      π i = P ( y 1 = s i ) , 1 ⩽ i ⩽ N \pi_{i}=P\left(y_{1}=s_{i}\right), \quad 1 \leqslant i \leqslant N πi=P(y1=si),1iN
      表示模型的初始状态为 s i s_i si的概率

  • 通过指定状态空间 γ γ γ、观测空间 χ χ χ和上述三组参数,就能确定一个HMM,通常用其参数 λ = [ A , B , π ] λ=[A, B, π] λ=[A,B,π]来指代。给定HMM,它按如下过程产生观测序列 { x 1 , x 2 , . . . , x n } \{x_1, x_2, ..., x_n\} {x1,x2,...,xn}

    1. 设置 t = 1 t=1 t=1,并根据初始状态概率 π π π选择初始状态 y 1 y_1 y1
    2. 根据状态 y t y_t yt和输出观测概率 B B B选择观测变量取值 x t x_t xt
    3. 根据状态 y t y_t yt和状态转移矩阵 A A A转移模型状态,即确定 y t + 1 y_{t+1} yt+1
    4. t < n t<n t<n,设置 t = t + 1 t=t+1 t=t+1,并转到第2步,否则停止
  • HMM的三个基本问题

    • 给定模型 λ = [ A , B , π ] λ=[A, B, π] λ=[A,B,π],如何有效计算其产生观测序列 x = { x 1 , x 2 , . . . , x n } x = \{x_1, x_2, ..., x_n\} x={x1,x2,...,xn}的概率 P ( x ∣ λ ) P(x|λ) P(xλ)?换言之,如何评估模型与观测序列之间的匹配程度?

    • 给定模型 λ = [ A , B , π ] λ=[A, B, π] λ=[A,B,π]和观测序列 x = { x 1 , x 2 , . . . , x n } x = \{x_1, x_2, ..., x_n\} x={x1,x2,...,xn},如何找到与此观测序列最匹配的状态序列 y = { y 1 , y 2 , . . . , y n } y = \{y_1, y_2, ..., y_n\} y={y1,y2,...,yn}?换言之,如何根据观测序列推断出隐藏的模型状态?

    • 给定观测序列 x = { x 1 , x 2 , . . . , x n } x = \{x_1, x_2, ..., x_n\} x={x1,x2,...,xn},如何调整模型参数 λ = [ A , B , π ] λ=[A, B, π] λ=[A,B,π]使得该序列出现的概率 P ( x ∣ λ ) P(x|λ) P(xλ)最大?换言之,如何训练模型使其能最好地描述观测数据?

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值