您当前的位置: 首页 >  ar

静静的喝酒

暂无认证

  • 4浏览

    0关注

    99博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

机器学习笔记只隐马尔可夫模型(三)求值问题——前向算法(Forward Algorithm)

静静的喝酒 发布时间:2022-09-12 13:40:10 ,浏览量:4

机器学习笔记之隐马尔可夫模型——前向算法处理求值问题
  • 引言
    • 回顾:隐马尔可夫模型
      • 概念介绍
      • 模型参数表示
      • 隐马尔可夫模型的核心假设
    • 关于 P ( O ∣ λ ) P(\mathcal O \mid \lambda) P(O∣λ)求解过程中的问题
    • 前向算法

引言

上一节对隐马尔可夫模型(Hidden Markov Model,HMM)进行了归纳介绍。本节将详细介绍使用前向算法(Forward Algorithm)对处理求值(Evaluation)问题。

回顾:隐马尔可夫模型

隐马尔可夫模型是一个动态模型(Dynamic Model)。其主要特点是系统状态(System State)任意一个状态元素(隐变量),其取值范围是离散的。 以系统状态中 t t t时刻的状态元素 Z ( t ) \mathcal Z^{(t)} Z(t)为例,存在 K \mathcal K K个离散结果供 Z ( t ) \mathcal Z^{(t)} Z(t)进行选择。即: Z ( t ) ∈ { z 1 , z 2 , ⋯   , z K } \mathcal Z^{(t)} \in \{z_1,z_2,\cdots,z_{\mathcal K}\} Z(t)∈{z1​,z2​,⋯,zK​}

概念介绍

隐马尔可夫模型由状态序列与观测序列两部分构成: I = { i 1 , i 2 , ⋯   , i t , i t + 1 , ⋯   , i T } O = { o 1 , o 2 , ⋯   , o t , o t + 1 , ⋯   , o T } \mathcal I = \{i_1,i_2,\cdots,i_t,i_{t+1},\cdots,i_T\} \\ \mathcal O = \{o_1,o_2,\cdots,o_t,o_{t+1},\cdots,o_T\} I={i1​,i2​,⋯,it​,it+1​,⋯,iT​}O={o1​,o2​,⋯,ot​,ot+1​,⋯,oT​} 其中状态序列中状态变量 i t ∈ I i_{t} \in \mathcal I it​∈I的取值范围是离散的,并且状态变量可取到的状态值集合 Q \mathcal Q Q表示如下: Q = { q 1 , q 2 , ⋯   , q K } \mathcal Q = \{q_1,q_2,\cdots,q_{\mathcal K}\} Q={q1​,q2​,⋯,qK​} 观测序列中的观测变量 o t ∈ O o_t \in \mathcal O ot​∈O的取值范围同样是离散的,并且观测变量可取到的观测值集合 V \mathcal V V表示如下: V = { v 1 , v 2 , ⋯   , v M } \mathcal V = \{v_1,v_2,\cdots,v_\mathcal M\} V={v1​,v2​,⋯,vM​}

模型参数表示

隐马尔可夫模型的模型参数 λ \lambda λ具体包含三项: λ = ( π , A , B ) \lambda = (\pi,\mathcal A,\mathcal B) λ=(π,A,B)

  • π \pi π称作 初始概率分布(基于状态变量),是一个 K \mathcal K K维向量。向量各元素表示初始状态变量 i 1 i_1 i1​取到各离散结果 q 1 , q 2 , ⋯   , q K q_1,q_2,\cdots,q_{\mathcal K} q1​,q2​,⋯,qK​ 的概率值。即: π = ( P ( i 1 = q 1 ) P ( i 1 = q 2 ) ⋮ P ( i 1 = q K ) ) K × 1 ∑ k = 1 K P ( i 1 = q k ) = 1 \pi = \begin{pmatrix}P(i_1 = q_1) \\ P(i_1 = q_2) \\ \vdots \\ P(i_1 = q_{\mathcal K})\end{pmatrix}_{\mathcal K \times 1} \sum_{k=1}^{\mathcal K} P(i_1 = q_k) = 1 π=⎝ ⎛​P(i1​=q1​)P(i1​=q2​)⋮P(i1​=qK​)​⎠ ⎞​K×1​k=1∑K​P(i1​=qk​)=1
  • A \mathcal A A称作状态转移矩阵。具体表示如下: A = [ a i j ] K × K \mathcal A = [a_{ij}]_{\mathcal K \times \mathcal K} A=[aij​]K×K​ 其中 a i j a_{ij} aij​表示 t t t时刻下的状态变量 i t = q i i_t = q_i it​=qi​的条件下, t + 1 t+1 t+1时刻的状态变量 i t + 1 = q j i_{t+1}=q_j it+1​=qj​的概率。数学符号表示如下: a i j = P ( i t + 1 = q j ∣ i t = q i ) i , j ∈ { 1 , 2 , ⋯   , K } a_{ij} = P(i_{t+1} = q_j \mid i_t = q_i) \quad i,j \in \{1,2,\cdots,\mathcal K\} aij​=P(it+1​=qj​∣it​=qi​)i,j∈{1,2,⋯,K}
  • B \mathcal B B称作发射矩阵。具体表示如下: B = [ b j ( k ) ] K × M \mathcal B = [b_j(k)]_{\mathcal K\times \mathcal M} B=[bj​(k)]K×M​ 其中 b j ( k ) b_j(k) bj​(k)表示 t t t时刻下状态变量 i t = q j i_t=q_j it​=qj​的条件下, t t t时刻下的观测变量 o t = v k o_t=v_k ot​=vk​的概率。数学符号表示如下: b j ( k ) = P ( o t = v k ∣ i t = q j ) j ∈ { 1 , 2 , ⋯   , K } ; k ∈ { 1 , 2 , ⋯   , M } b_j(k) = P(o_t = v_k \mid i_t = q_j) \quad j \in \{1,2,\cdots,\mathcal K\};k \in \{1,2,\cdots,\mathcal M\} bj​(k)=P(ot​=vk​∣it​=qj​)j∈{1,2,⋯,K};k∈{1,2,⋯,M}
隐马尔可夫模型的核心假设
  • 齐次马尔可夫假设: 某时刻 t t t条件下,状态变量 i t i_t it​的后验概率,只和前一时刻状态变量 i t − 1 i_{t-1} it−1​相关,与其他变量无关; 数学符号表达如下: P ( i t ∣ i t − 1 , ⋯   , i 1 , o t − 1 , o 1 ) = P ( i t ∣ i t − 1 ) P(i_{t} \mid i_{t-1},\cdots,i_1,o_{t-1},o_1) = P(i_t \mid i_{t-1}) P(it​∣it−1​,⋯,i1​,ot−1​,o1​)=P(it​∣it−1​)
  • 观测独立性假设: 某时刻 t t t条件下,观测变量 o t o_t ot​的后验概率,只和 t t t时刻的状态变量 i t i_t it​相关,与其他变量无关。 数学符号表达如下: P ( o t ∣ i t , ⋯   , i 1 , o t − 1 , ⋯   , o 1 ) = P ( o t ∣ i t ) P(o_t \mid i_t,\cdots,i_1,o_{t-1},\cdots,o_1) = P(o_t \mid i_t) P(ot​∣it​,⋯,i1​,ot−1​,⋯,o1​)=P(ot​∣it​)
关于 P ( O ∣ λ ) P(\mathcal O \mid \lambda) P(O∣λ)求解过程中的问题

求值问题描述:已知给定参数 λ \lambda λ的隐马尔可夫模型,求解观测序列 O = { o 1 , o 2 , ⋯   , o T } \mathcal O = \{o_1,o_2,\cdots,o_T\} O={o1​,o2​,⋯,oT​}的后验概率结果 P ( O ∣ λ ) P(\mathcal O \mid \mathcal \lambda) P(O∣λ)。 或者可理解为’观测序列‘ O = { o 1 , o 2 , ⋯   , o T } \mathcal O = \{o_1,o_2,\cdots,o_T\} O={o1​,o2​,⋯,oT​}通过HMM模型的计算所发生的概率。

首先,类似于高斯混合模型引入隐变量的方式,将将状态变量 I \mathcal I I引入到 P ( O ∣ λ ) P(\mathcal O \mid \lambda) P(O∣λ): 因为'状态变量' I \mathcal I I的取值范围是离散的,因此积分方式是 ∑ \sum ∑; P ( O ∣ λ ) = ∑ I P ( I , O ∣ λ ) = ∑ I P ( O ∣ I , λ ) P ( I ∣ λ ) \begin{aligned} P(\mathcal O \mid \lambda) & = \sum_{\mathcal I} P(\mathcal I,\mathcal O \mid \lambda) \\ & = \sum_{\mathcal I} P(\mathcal O \mid \mathcal I,\lambda)P(\mathcal I \mid \lambda) \end{aligned} P(O∣λ)​=I∑​P(I,O∣λ)=I∑​P(O∣I,λ)P(I∣λ)​

  • 观察 P ( I ∣ λ ) P(\mathcal I \mid \lambda) P(I∣λ),它是关于状态变量 I \mathcal I I的概率分布。因此使用 状态转移矩阵 A \mathcal A A中的元素 进行表示:
    • 将 P ( I ∣ λ ) P(\mathcal I \mid \lambda) P(I∣λ)展开成 P ( i 1 , i 2 , ⋯   , i T ∣ λ ) P(i_1,i_2,\cdots,i_{T}\mid \lambda) P(i1​,i2​,⋯,iT​∣λ)的格式,并将其看作联合概率分布的形式,分解成条件概率的形式: P ( I ∣ λ ) = P ( i 1 , i 2 , ⋯   , i T ∣ λ ) = P ( i T ∣ i 1 , i 2 , ⋯   , i T − 1 , λ ) ⋅ P ( i 1 , i 2 , ⋯   , i T − 1 ∣ λ ) \begin{aligned} P(\mathcal I \mid \lambda) & = P(i_1,i_2,\cdots,i_{T}\mid \lambda) \\ & = P(i_T \mid i_1,i_2,\cdots,i_{T-1},\lambda) \cdot P(i_1,i_2,\cdots,i_{T-1} \mid \lambda) \end{aligned} P(I∣λ)​=P(i1​,i2​,⋯,iT​∣λ)=P(iT​∣i1​,i2​,⋯,iT−1​,λ)⋅P(i1​,i2​,⋯,iT−1​∣λ)​
    • 观察上述公式的后项 P ( i 1 , i 2 , ⋯   , i T − 1 ∣ λ ) P(i_1,i_2,\cdots,i_{T-1} \mid \lambda) P(i1​,i2​,⋯,iT−1​∣λ),它实际上就是个缩小版的 P ( I ∣ λ ) P(\mathcal I \mid \lambda) P(I∣λ),和 P ( I ∣ λ ) P(\mathcal I \mid \lambda) P(I∣λ)相比,只少了一个 i T i_{T} iT​项。因此,可以将 P ( I ∣ λ ) P(\mathcal I \mid \lambda) P(I∣λ)看成迭代式子。即: P ( I ∣ λ ) = P ( i T ∣ i 1 , i 2 , ⋯   , i T − 1 , λ ) ⋅ P ( i 1 , i 2 , ⋯   , i T − 1 ∣ λ ) = P ( i T ∣ i 1 , i 2 , ⋯   , i T − 1 , λ ) ⋅ P ( i T − 1 ∣ i 1 , i 2 , ⋯   , i T − 2 , λ ) ⋅ P ( i 1 , i 2 , ⋯   , i T − 2 ∣ λ ) = ⋯ = P ( i T ∣ i 1 , i 2 , ⋯   , i T − 1 , λ ) ⋅ P ( i T − 1 ∣ i 1 , i 2 , ⋯   , i T − 2 , λ ) ⋯ P ( i 2 ∣ i 1 , λ ) ⋅ P ( i 1 ∣ λ ) \begin{aligned} P(\mathcal I \mid \lambda) & = P(i_T \mid i_1,i_2,\cdots,i_{T-1},\lambda) \cdot P(i_1,i_2,\cdots,i_{T-1} \mid \lambda) \\ & = P(i_T \mid i_1,i_2,\cdots,i_{T-1},\lambda) \cdot P(i_{T-1} \mid i_1,i_2,\cdots,i_{T-2},\lambda)\cdot P(i_1,i_2,\cdots,i_{T-2} \mid \lambda)\\ & = \cdots \\ & = P(i_T \mid i_1,i_2,\cdots,i_{T-1},\lambda) \cdot P(i_{T-1} \mid i_1,i_2,\cdots,i_{T-2},\lambda) \cdots P(i_2 \mid i_1,\lambda) \cdot P(i_1 \mid \lambda) \end{aligned} P(I∣λ)​=P(iT​∣i1​,i2​,⋯,iT−1​,λ)⋅P(i1​,i2​,⋯,iT−1​∣λ)=P(iT​∣i1​,i2​,⋯,iT−1​,λ)⋅P(iT−1​∣i1​,i2​,⋯,iT−2​,λ)⋅P(i1​,i2​,⋯,iT−2​∣λ)=⋯=P(iT​∣i1​,i2​,⋯,iT−1​,λ)⋅P(iT−1​∣i1​,i2​,⋯,iT−2​,λ)⋯P(i2​∣i1​,λ)⋅P(i1​∣λ)​
    • 观察上式中的每一项,我们都可以使用 齐次马尔可夫假设 对每一项进行简化。例如: P ( i T ∣ i 1 , i 2 , ⋯   , i T − 1 , λ ) = P ( i T ∣ i T − 1 ) P(i_T \mid i_1,i_2,\cdots,i_{T-1},\lambda) = P(i_T \mid i_{T-1}) P(iT​∣i1​,i2​,⋯,iT−1​,λ)=P(iT​∣iT−1​),以此类推。 其中最后一项 P ( i 1 ∣ λ ) P(i_1 \mid \lambda) P(i1​∣λ),即初始概率分布 π \pi π。最终 P ( I ∣ λ ) P(\mathcal I \mid \lambda) P(I∣λ)表示如下: P ( I ∣ λ ) = P ( i T ∣ i T − 1 ) ⋅ P ( i T − 1 ∣ i T − 2 ) ⋯ P ( i 2 ∣ i 1 ) ⋅ π P(\mathcal I \mid \lambda) = P(i_T \mid i_{T-1}) \cdot P(i_{T-1} \mid i_{T-2}) \cdots P(i_2 \mid i_1) \cdot \pi P(I∣λ)=P(iT​∣iT−1​)⋅P(iT−1​∣iT−2​)⋯P(i2​∣i1​)⋅π
    • 观察状态转移过程图, P ( i T ∣ i T − 1 ) P(i_T \mid i_{T-1}) P(iT​∣iT−1​)使用 状态转移矩阵 A \mathcal A A中的元素进行表示: P ( I ∣ λ ) = a i T − 1 , i T ⋅ a i T − 2 , i T − 1 ⋯ a i 1 , i 2 ⋅ π = π ⋅ ∏ t = 2 T a i t − 1 , i t \begin{aligned} P(\mathcal I \mid \lambda) & = a_{i_{T-1},i_{T}} \cdot a_{i_{T-2},i_{T-1}} \cdots a_{i_1,i_2} \cdot \pi \\ & = \pi \cdot \prod_{t=2}^{T}a_{i_{t-1},i_{t}} \end{aligned} P(I∣λ)​=aiT−1​,iT​​⋅aiT−2​,iT−1​​⋯ai1​,i2​​⋅π=π⋅t=2∏T​ait−1​,it​​​ 请添加图片描述
  • 继续观察 P ( O ∣ I , λ ) P(\mathcal O \mid \mathcal I,\lambda) P(O∣I,λ),和 P ( I ∣ λ ) P(\mathcal I \mid \lambda) P(I∣λ)相似,但依据的是 观测独立性假设。
    • P ( O ∣ I , λ ) P(\mathcal O \mid \mathcal I,\lambda) P(O∣I,λ)中的 O , I \mathcal O,\mathcal I O,I进行展开,得到如下形式: P ( O ∣ I , λ ) = P ( o 1 , ⋯   , o T ∣ i 1 , ⋯   , i T , λ ) = P ( o T ∣ o 1 , ⋯   , o T − 1 , i 1 , ⋯   , i T , λ ) ⋅ P ( o 1 , ⋯   , o T − 1 , i 1 , ⋯   , i T ∣ λ ) \begin{aligned} P(\mathcal O \mid \mathcal I ,\lambda) & = P(o_1,\cdots,o_T \mid i_1,\cdots,i_T,\lambda) \\ & = P(o_T \mid o_1,\cdots,o_{T-1},i_1,\cdots,i_{T},\lambda) \cdot P(o_1,\cdots,o_{T-1},i_1,\cdots,i_{T} \mid \lambda) \end{aligned} P(O∣I,λ)​=P(o1​,⋯,oT​∣i1​,⋯,iT​,λ)=P(oT​∣o1​,⋯,oT−1​,i1​,⋯,iT​,λ)⋅P(o1​,⋯,oT−1​,i1​,⋯,iT​∣λ)​
    • 将上式展开成迭代形式: P ( O ∣ I , λ ) = P ( o T ∣ o 1 , ⋯   , o T − 1 , i 1 , ⋯   , i T , λ ) ⋅ P ( o T − 1 ∣ o 1 , ⋯   , o T − 2 , i 1 , ⋯   , i T , λ ) ⋯ P ( o 1 ∣ i 1 , ⋯ i T , λ ) P(\mathcal O \mid \mathcal I ,\lambda) = P(o_T \mid o_1,\cdots,o_{T-1},i_1,\cdots,i_{T},\lambda) \cdot P(o_{T-1} \mid o_1,\cdots,o_{T-2},i_1,\cdots,i_{T},\lambda) \cdots P(o_1 \mid i_1,\cdots i_T,\lambda) P(O∣I,λ)=P(oT​∣o1​,⋯,oT−1​,i1​,⋯,iT​,λ)⋅P(oT−1​∣o1​,⋯,oT−2​,i1​,⋯,iT​,λ)⋯P(o1​∣i1​,⋯iT​,λ)
    • 根据观测独立性假设,上述迭代形式表示如下: P ( o T ∣ i T ) ⋅ P ( o T − 1 ∣ i T − 1 ) ⋯ P ( o 1 ∣ i 1 ) P(o_T \mid i_T) \cdot P(o_{T-1} \mid i_{T-1}) \cdots P(o_1 \mid i_1) P(oT​∣iT​)⋅P(oT−1​∣iT−1​)⋯P(o1​∣i1​)
    • 基于发射过程图, P ( o T ∣ i T ) P(o_T \mid i_T) P(oT​∣iT​)使用发射矩阵 B \mathcal B B结果进行表示: P ( O ∣ I , λ ) = b i 1 ( o 1 ) ⋅ b i 2 ( o 2 ) ⋯ b i T ( o T ) = ∏ t = 1 T b i t ( o t ) \begin{aligned} P(\mathcal O \mid \mathcal I, \lambda) & = b_{i_1}(o_1) \cdot b_{i_2}(o_2) \cdots b_{i_T}(o_T) \\ & = \prod_{t=1}^T b_{i_t}(o_t) \end{aligned} P(O∣I,λ)​=bi1​​(o1​)⋅bi2​​(o2​)⋯biT​​(oT​)=t=1∏T​bit​​(ot​)​ 请添加图片描述

至此, P ( O ∣ λ ) P(\mathcal O \mid \lambda) P(O∣λ)可以表示如下: P ( O ∣ λ ) = ∑ I P ( O ∣ I , λ ) P ( I ∣ λ ) = ∑ I π ⋅ ∏ t = 2 T a i t − 1 , i t ⋅ ∏ t = 1 T b i t ( o t ) \begin{aligned} P(\mathcal O \mid \lambda) & = \sum_{\mathcal I} P(\mathcal O \mid \mathcal I,\lambda)P(\mathcal I \mid \lambda) \\ & = \sum_{\mathcal I} \pi \cdot \prod_{t=2}^T a_{i_{t-1},i_{t}} \cdot\prod_{t=1}^T b_{i_t}(o_t) \end{aligned} P(O∣λ)​=I∑​P(O∣I,λ)P(I∣λ)=I∑​π⋅t=2∏T​ait−1​,it​​⋅t=1∏T​bit​​(ot​)​ 将上式中的 ∑ I \sum_{\mathcal I} ∑I​部分展开,展开结果如下: P ( O ∣ λ ) = ∑ i 1 ⋯ ∑ i T ( π ⋅ ∏ t = 2 T a i t − 1 , i t ⋅ ∏ t = 1 T b i t ( o t ) ) P(\mathcal O \mid \lambda) = \sum_{i_1} \cdots\sum_{i_T}\left(\pi \cdot \prod_{t=2}^T a_{i_{t-1},i_{t}} \cdot\prod_{t=1}^T b_{i_t}(o_t)\right) P(O∣λ)=i1​∑​⋯iT​∑​(π⋅t=2∏T​ait−1​,it​​⋅t=1∏T​bit​​(ot​)) 观察,大括号内的项均可以通过查找初始概率分布 π \pi π,状态转移矩阵 A \mathcal A A,发射矩阵 B \mathcal B B 得到。但括号外的 ∑ i 1 ⋯ ∑ i T \sum_{i_1} \cdots\sum_{i_T} ∑i1​​⋯∑iT​​中的每一项由于状态变量 i t ( t = 1 , 2 , ⋯   , T ) i_t(t=1,2,\cdots,T) it​(t=1,2,⋯,T)均存在 K \mathcal K K种选择,因此上式的时间复杂度至少为 O ( K T ) O(\mathcal K^{T}) O(KT)。 即:状态序列 { i 1 , i 2 , ⋯   , i T } \{i_1,i_2,\cdots,i_T\} {i1​,i2​,⋯,iT​}随着序列长度 T T T的增加,时间复杂度指数级别增长。下面将介绍关于求解 P ( O ∣ λ ) P(\mathcal O \mid \lambda) P(O∣λ)的优化算法——前向算法(Forward Algorithm)。

前向算法

重新观察隐马尔可夫模型的概率图形式: 请添加图片描述

  • 我们记 α t ( i ) \alpha_t(i) αt​(i)表示 在 t t t时刻,状态变量 i t = q i i_t = q_i it​=qi​的条件下, t t t时刻之前的所有观测变量(含 t t t时刻) o 1 , o 2 , ⋯   , o t o_1,o_2,\cdots,o_t o1​,o2​,⋯,ot​与 i t i_t it​的联合概率分布。数学符号表示如下: α t ( i ) = P ( o 1 , ⋯ o t , i t = q i ∣ λ ) \alpha_t(i) = P(o_1,\cdots o_t,i_t = q_i \mid \lambda) αt​(i)=P(o1​,⋯ot​,it​=qi​∣λ)
  • 基于上式, T T T时刻的 α T ( i ) \alpha_{T}(i) αT​(i)表示如下: 即图中‘红色框’包含的变量。 α T ( i ) = P ( o 1 , ⋯ o T , i T = q i ∣ λ ) = P ( O , i T = q i ∣ λ ) \begin{aligned} \alpha_T(i) &= P(o_1,\cdots o_T,i_T = q_i \mid \lambda) \\ & =P(\mathcal O,i_T = q_i \mid \lambda) \end{aligned} αT​(i)​=P(o1​,⋯oT​,iT​=qi​∣λ)=P(O,iT​=qi​∣λ)​
  • 如果求解 P ( O ∣ λ ) P(\mathcal O \mid \lambda) P(O∣λ),只需求解 α T ( i ) \alpha_T(i) αT​(i),然后将 i T i_T iT​执行条件概率密度积分即可。数学符号表示如下: 同上, i T i_T iT​自身存在 K \mathcal K K种选择。 P ( O ∣ λ ) = ∑ i T P ( O , i T = q i ∣ λ ) = ∑ i = 1 K P ( O , i T = q i ∣ λ ) = ∑ i = 1 K α T ( i ) \begin{aligned} P(\mathcal O \mid \lambda) & = \sum_{i_T} P(\mathcal O,i_T = q_i \mid \lambda) \\ & = \sum_{i=1}^{\mathcal K} P(\mathcal O,i_T = q_i \mid \lambda) \\ & = \sum_{i=1}^{\mathcal K} \alpha_T(i) \end{aligned} P(O∣λ)​=iT​∑​P(O,iT​=qi​∣λ)=i=1∑K​P(O,iT​=qi​∣λ)=i=1∑K​αT​(i)​

基于上述对 α t ( i ) \alpha_t(i) αt​(i)的描述,我们尝试 观察 α t + 1 ( j ) \alpha_{t+1}(j) αt+1​(j)和 α t ( i ) \alpha_t(i) αt​(i)之间的关系。

  • α t + 1 ( j ) \alpha_{t+1}(j) αt+1​(j)具体表达如下: α t + 1 ( j ) = P ( o 1 , ⋯   , o t , o t + 1 , i t + 1 = q j ∣ λ ) \alpha_{t+1}(j) = P(o_1,\cdots,o_t,o_{t+1},i_{t+1} = q_j \mid \lambda) αt+1​(j)=P(o1​,⋯,ot​,ot+1​,it+1​=qj​∣λ)
  • 但是上式中并不包含 i t i_t it​项,因此,使用条件概率密度积分的方式将 i t i_t it​加到公式中: α t + 1 ( j ) = ∑ i t P ( o 1 , ⋯   , o t , o t + 1 , i t = q i , i t + 1 = q j ∣ λ ) = ∑ i = 1 K P ( o 1 , ⋯   , o t , o t + 1 , i t = q i , i t + 1 = q j ∣ λ ) \begin{aligned} \alpha_{t+1}(j) & = \sum_{i_t} P(o_1,\cdots,o_t,o_{t+1},i_t = q_i,i_{t+1} = q_j \mid \lambda) \\ & = \sum_{i=1}^{\mathcal K} P(o_1,\cdots,o_t,o_{t+1},i_t = q_i,i_{t+1} = q_j \mid \lambda) \end{aligned} αt+1​(j)​=it​∑​P(o1​,⋯,ot​,ot+1​,it​=qi​,it+1​=qj​∣λ)=i=1∑K​P(o1​,⋯,ot​,ot+1​,it​=qi​,it+1​=qj​∣λ)​
  • 但上述式子中仍包含 o t + 1 o_{t+1} ot+1​项。因此,使用条件概率将上式分解,提出 o t + 1 o_{t+1} ot+1​: ∑ i = 1 K [ P ( o t + 1 ∣ o 1 , ⋯   , o t , i t = q i , i t + 1 = q j , λ ) ⋅ P ( o 1 , ⋯   , o t , i t = q i , i t + 1 = q j ∣ λ ) ] \sum_{i=1}^{\mathcal K} \left[P(o_{t+1} \mid o_1,\cdots,o_t,i_t = q_i,i_{t+1} = q_j,\lambda) \cdot P(o_1,\cdots,o_t,i_t = q_i,i_{t+1} = q_j \mid \lambda)\right] i=1∑K​[P(ot+1​∣o1​,⋯,ot​,it​=qi​,it+1​=qj​,λ)⋅P(o1​,⋯,ot​,it​=qi​,it+1​=qj​∣λ)] 观察中括号内的第一项,可以使用观测独立性假设进行处理。并将上式改写如下形式: ∑ i = 1 K [ P ( o t + 1 ∣ i t + 1 = q j , λ ) ⋅ P ( o 1 , ⋯   , o t , i t = q i , i t + 1 = q j ∣ λ ) ] \sum_{i=1}^{\mathcal K} \left[P(o_{t+1} \mid i_{t+1}=q_j,\lambda) \cdot P(o_1,\cdots,o_t,i_t = q_i,i_{t+1} = q_j \mid \lambda)\right] i=1∑K​[P(ot+1​∣it+1​=qj​,λ)⋅P(o1​,⋯,ot​,it​=qi​,it+1​=qj​∣λ)]
  • 此时继续观察中括号内的后项: P ( o 1 , ⋯   , o t , i t = q i , i t + 1 = q j ∣ λ ) P(o_1,\cdots,o_t,i_t = q_i,i_{t+1} = q_j \mid \lambda) P(o1​,⋯,ot​,it​=qi​,it+1​=qj​∣λ),它和 α t ( i ) \alpha_t(i) αt​(i)仅差一项: i t + 1 = q j i_{t+1} = q_j it+1​=qj​。 和 o t + 1 o_{t+1} ot+1​项处理方式相同,继续使用条件概率将上式分解,提出 i t + 1 i_{t+1} it+1​: P ( o 1 , ⋯   , o t , i t = q i , i t + 1 = q j ∣ λ ) = P ( i t + 1 = q j ∣ o 1 , ⋯   , o t , i t = q i , λ ) ⋅ P ( o 1 , ⋯   , o t , i t = q i ∣ λ ) \begin{aligned} & P(o_1,\cdots,o_t,i_t = q_i,i_{t+1} = q_j \mid \lambda) \\ & = P(i_{t+1} = q_j \mid o_1,\cdots,o_t,i_t = q_i,\lambda) \cdot P(o_1,\cdots,o_t,i_t = q_i\mid \lambda) \end{aligned} ​P(o1​,⋯,ot​,it​=qi​,it+1​=qj​∣λ)=P(it+1​=qj​∣o1​,⋯,ot​,it​=qi​,λ)⋅P(o1​,⋯,ot​,it​=qi​∣λ)​ 观察上述式子第一项,可以使用齐次马尔科夫假设进行处理。并将上式改写成如下形式: P ( i t + 1 = q j ∣ i t = q i , λ ) ⋅ P ( o 1 , ⋯   , o t , i t = q i ∣ λ ) = P ( i t + 1 = q j ∣ i t = q i , λ ) ⋅ α t ( i ) P(i_{t+1} = q_j \mid i_t = q_i,\lambda) \cdot P(o_1,\cdots,o_t,i_t = q_i\mid \lambda) = P(i_{t+1} = q_j \mid i_t = q_i,\lambda) \cdot \alpha_{t}(i) P(it+1​=qj​∣it​=qi​,λ)⋅P(o1​,⋯,ot​,it​=qi​∣λ)=P(it+1​=qj​∣it​=qi​,λ)⋅αt​(i)

至此,整理 α t + 1 ( j ) \alpha_{t+1}(j) αt+1​(j)和 α t ( i ) \alpha_{t}(i) αt​(i)之间的关联关系: α t + 1 ( j ) = ∑ i = 1 K [ P ( o t + 1 ∣ i t + 1 = q j ) ⋅ P ( i t + 1 = q j ∣ i t = q i , λ ) ⋅ α t ( i ) ] \alpha_{t+1}(j) = \sum_{i=1}^{\mathcal K} \left[P(o_{t+1} \mid i_{t+1}=q_j) \cdot P(i_{t+1} = q_j \mid i_t = q_i,\lambda) \cdot \alpha_{t}(i)\right] αt+1​(j)=i=1∑K​[P(ot+1​∣it+1​=qj​)⋅P(it+1​=qj​∣it​=qi​,λ)⋅αt​(i)] 如果使用模型参数进行表示: α t + 1 ( j ) = ∑ i = 1 K b j ( o t + 1 ) ⋅ a i j ⋅ α t ( i ) \alpha_{t+1}(j) = \sum_{i=1}^{\mathcal K}b_j(o_{t+1}) \cdot a_{ij} \cdot \alpha_{t}(i) αt+1​(j)=i=1∑K​bj​(ot+1​)⋅aij​⋅αt​(i) 最后观察它的时间复杂度:每次迭代的时间复杂度是 O ( N ) O(N) O(N),迭代 T T T次的时间复杂度即 O ( K × T ) O(\mathcal K \times T) O(K×T)。 而上述时间复杂度 描述的是 α 1 ( i ) → α T ( i ) \alpha_1(i) \to \alpha_T(i) α1​(i)→αT​(i)的时间复杂度,而 P ( O ∣ λ ) = ∑ i = 1 K α T ( i ) P(\mathcal O \mid \lambda) = \sum_{i=1}^{\mathcal K} \alpha_{T}(i) P(O∣λ)=∑i=1K​αT​(i)。因此, P ( O ∣ λ ) P(\mathcal O\mid \lambda) P(O∣λ)的时间复杂度为: O ( K 2 × T ) O(\mathcal K^2 \times T) O(K2×T),相比于 O ( K T ) O(\mathcal K^{T}) O(KT)还是要优化一些的。

下一节将介绍: 使用后向算法处理 P ( O ∣ λ ) P(\mathcal O \mid \lambda) P(O∣λ)问题。

相关参考: 机器学习-隐马尔可夫模型3-Evaluation问题-前向算法

关注
打赏
1664446683
查看更多评论
立即登录/注册

微信扫码登录

0.2445s