机器学习-白板推导系列(十四)-隐马尔科夫(HMM,Hidden Markov Model)

14. 隐马尔科夫(HMM,Hidden Markov Model)

14.1 背景

14.1.1 概念回顾

  1. 机器学习派别
    机器学习大致可分两派别:频率派和贝叶斯派的方法。
    • 频率派
      频率派的思想就衍生出了统计学习方法,统计学习方法的重点在于优化,找loss function。频率派的方法可以分成三步:
      • 定义Model,比如 f ( w ) = w T x + b f(w) = w^Tx+b f(w)=wTx+b
      • 寻找策略strategy,也就是定义Loss function
      • 求解,寻找优化的方法,比如梯度下降(GD)随机梯度下降(SGD)牛顿法拟牛顿法等等。
    • 贝叶斯派
      • 贝叶斯派的思想衍生出概率图模型。概率图模型重点研究的是Inferenc问题, 求 一 个 后 验 概 率 分 布 P ( Z ∣ X ) \color{red}求一个后验概率分布P(Z|X) P(ZX),其中 X X X为观测变量, Z Z Z为隐变量。
      • 实际上就是一个积分问题,因为贝叶斯框架中的归一化因子需要对整个状态空间进行积分,非常的复杂。代表性的有前面讲到的MCMC,MCMC的提出才是把贝叶斯理论代入到实际的运用中。
  2. 概率图模型回顾
    1. 分类
      • 概率图模型,如果不考虑时序的关系,大致的分为:有向图的Bayesian Network和无向图的Markov Random Field (Markov Network)。
      • 根据分布获得的样本之间都是iid (独立同分布)的。比如Gaussian Mixture Model (GMM),从 P ( X ∣ θ ) P(X|\theta) P(Xθ)的分布中采出N个样本 { x 1 , x 2 , ⋯   , x n } \{ x_1,x_2,\cdots,x_n \} {x1,x2,,xn}。N个样本之间都是独立同分布的。也就是对于隐变量 Z Z Z,观测变量 X X X之间,我们可以假设 P ( X ∣ Z ) = N ( μ , Σ ) P(X|Z) = \mathcal{N}(\mu,\Sigma) P(XZ)=N(μ,Σ),这样就可以引入我们的先验信息,从而简化 X X X的复杂分布。机器学习-白板推导系列(十四)-隐马尔科夫(HMM,Hidden Markov Model)_第1张图片
    2. 动态模型
      对于采出 N N N个样本 { x 1 , x 2 , ⋯   , x n } \{ x_1,x_2,\cdots,x_n \} {x1,x2,,xn},如果引入了时间的信息,也就是 x i x_i xi之间不再iid,我们称之为Dynamic Model。Dynamic Model拓扑结构图如下所示:

D y n a m i c     M o d e l { 离 散 →                                        H M M                              连 续 → { 线 性        → K a l m a n    F i l t e r 非 线 性 → P a r t i c l e    F i l t e r D y n a m i c    M o d e l \left \{ \begin{matrix} 离散\rightarrow\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; \;\;\;HMM\;\;\;\;\;\;\;\;\;\;\;\;\;\;\\ 连续\rightarrow \left\{\begin{matrix} 线性\;\;\;\rightarrow Kalman\; Filter\\ 非线性\rightarrow Particle\; Filter \end{matrix}\right. \end{matrix}\right. DynamicModelHMM{线KalmanFilter线ParticleFilter

14.1.2 HMM算法简介

  1. 相关定义
    Hidden Markov Model的拓扑结构图如下所示:
    机器学习-白板推导系列(十四)-隐马尔科夫(HMM,Hidden Markov Model)_第2张图片

    1. 拓扑结构图的第一行为 状 态 变 量 i \color{red}状态变量i i I = { i 1 , i 2 , ⋯   , i t , ⋯   } \color{red}I=\{i_1,i_2,\cdots,i_t,\cdots\} I={i1,i2,,it,},每个状态包含 Q = { q 1 , q 2 , ⋯   , q N } \color{red}\mathcal{Q} = \{q_1,q_2,\cdots,q_N\} Q={q1,q2,,qN}。其中 Q \mathcal{Q} Q是状态变量 i i i 值 域 \color{blue}值域 ,每个状态变量 i i i可能有 N N N个状态。
    2. 拓扑结构图的第二行为 观 测 变 量 o \color{red}观测变量o o O = { o 1 , o 2 , ⋯   , o t , ⋯   } \color{red}O=\{o_1,o_2,\cdots,o_t,\cdots\} O={o1,o2,,ot,},每个状态包含 V = { v 1 , v 2 , ⋯   , v M } \color{red}\mathcal{V} = \{v_1,v_2,\cdots,v_M\} V={v1,v2,,vM}。其中 V \mathcal{V} V是观察变量 o o o 值 域 \color{blue}值域 ,每个观测变量 o i o_i oi可能有 M M M个状态。
    3. HMM可以看做一个三元组 λ = ( π , A , B ) \color{red}\lambda = (\pi, \mathcal{A}, \mathcal{B}) λ=(π,A,B)。其中:
      • π \color{red}\pi π:初始概率分布。
      • A \color{red}\mathcal{A} A:状态转移矩阵。
      • B \color{red}\mathcal{B} B:发射矩阵。
      1. A = [ a i j ] \color{red}\mathcal{A} = [a_{ij}] A=[aij]表示 状 态 转 移 矩 阵 \color{red}状态转移矩阵 a i j = P ( i ( i + 1 ) = q j ∣ i ( t ) = q i ) \color{red}a_{ij} = P(i_{(i+1)}=q_j|i_{(t)}=q_i) aij=P(i(i+1)=qji(t)=qi) A \mathcal{A} A表示为各个状态转移之间的概率
      2. B = [ b j ( k ) ] \color{red}\mathcal{B} = [b_j(k)] B=[bj(k)]表示 发 射 矩 阵 \color{red}发射矩阵 b j ( k ) = P ( o t = V k ∣ i t = q j ) \color{red}b_j(k) = P(o_t = V_k | i_t = q_j) bj(k)=P(ot=Vkit=qj) B \mathcal{B} B表示为观测变量和隐变量之间的关系
      3. π \color{red}\pi π是什么意思呢?假设当 t t t时刻的隐变量 i t i_t it,可能有 { q 1 , q 2 , ⋯   , q N } \color{red}\{ q_1,q_2,\cdots,q_N \} {q1,q2,,qN}个状态,而这些状态出现的概率分别为 { p 1 , p 2 , ⋯   , p N } \color{blue}\{ p_1,p_2,\cdots,p_N \} {p1,p2,,pN}。这就是一个关于 i t i_t it隐变量的离散随机分布。
  2. 两个假设
    这是有关Hidden Markov Model的两个假设:
    齐次Markov假设(无后效性)观察独立假设

    1. 齐次马尔可夫假设: \textbf{齐次马尔可夫假设:} 齐次马尔可夫假设:
      未来与过去无关,只依赖与当前的状态。也就是:
      P ( i t + 1 ∣ i t , i t − 1 , ⋯   , i 1 , o t , ⋯   , o 1 ) = P ( i t + 1 ∣ i t ) (14.1.1) P(i_{t+1}|i_{t},i_{t-1},\cdots,i_1,o_t,\cdots,o_1) = P(i_{t+1}|i_t)\tag{14.1.1} P(it+1it,it1,,i1,ot,,o1)=P(it+1it)(14.1.1)
    2. 观测独立假设: \textbf{观测独立假设:} 观测独立假设:
      P ( o t ∣ i t , i t − 1 , ⋯   , i 1 , o t , ⋯   , o 1 ) = P ( o t ∣ i t ) (14.1.2) P(o_{t}|i_{t},i_{t-1},\cdots,i_1,o_t,\cdots,o_1) = P(o_{t}|i_t)\tag{14.1.2} P(otit,it1,,i1,ot,,o1)=P(otit)(14.1.2)
  3. 三个问题

    1. Evaluation
      要求的问题就是 P ( O ∣ λ ) \color{red}P(O|\lambda) P(Oλ)。也就是前向后向算法,给定一个模型 λ \lambda λ,求出观测变量的概率分布。
    2. Learning
      λ \lambda λ如何求的问题。即: λ M L E = arg ⁡ max ⁡ λ P ( O ∣ λ ) \color{red}\lambda_{MLE} = \arg\max_{\lambda}P(O|\lambda) λMLE=argmaxλP(Oλ)。求解的方法是EM算法Baum Welch算法
    3. Decoding
      状态序列为 I I I I ^ = arg ⁡ max ⁡ I P ( I ∣ O , λ ) \color{red}\hat{I} = \arg\max_{I}P(I|O,\lambda) I^=argmaxIP(IO,λ)。也就是在在观测变量 O O O λ \lambda λ的情况下使隐变量序列 I I I出现的概率最大。而这个问题大致被分为预测滤波
      • 预测问题为: P ( i t + 1 ∣ o 1 , ⋯   , o t ) \color{red}P(i_{t+1}|o_1,\cdots,o_t) P(it+1o1,,ot);也就是在已知当前观测变量的情况下预测下一个状态,也就是Viterbi算法。
      • 滤波问题为: P ( i t ∣ o 1 , ⋯   , o t ) \color{red}P(i_{t}|o_1,\cdots,o_t) P(ito1,,ot);也就是求 t t t时刻的隐变量。

Hidden Markov Model,可以被我们总结成一个模型 λ = ( π , A , B ) \lambda = (\pi,\mathcal{A},\mathcal{B}) λ=(π,A,B),两个假设,三个问题。而其中关注最多的是Decoding的问题。


14.2 前向算法

14.2.1 概念回顾

机器学习-白板推导系列(十四)-隐马尔科夫(HMM,Hidden Markov Model)_第3张图片
图1

  1. 序列和集合
    • I = { i 1 , i 2 , ⋯   , i t , ⋯   , i T } → 状 态 序 列 \color{red}I=\{i_1,i_2,\cdots,i_t,\cdots,i_T\}\rightarrow 状态序列 I={i1,i2,,it,,iT} Q = { q 1 , q 2 , ⋯   , q N } → 状 态 值 集 合 \color{red}\mathcal{Q} = \{q_1,q_2,\cdots,q_N\}\rightarrow 状态值集合 Q={q1,q2,,qN}
    • O = { o 1 , o 2 , ⋯   , o t , ⋯   , o T } → 观 测 序 列 \color{red}O=\{o_1,o_2,\cdots,o_t,\cdots,o_T\}\rightarrow 观测序列 O={o1,o2,,ot,,oT} V = { v 1 , v 2 , ⋯   , v M } → 状 态 值 集 合 \color{red}\mathcal{V} = \{v_1,v_2,\cdots,v_M\}\rightarrow 状态值集合 V={v1,v2,,vM}
  2. λ = ( π , A , B ) \color{red}\lambda = (\pi, \mathcal{A}, \mathcal{B}) λ=(π,A,B)
    • π \color{red}\pi π初始概率分布 π = { P ( 1 ) ( 0 ) , P ( 1 ) ( 1 ) , ⋯   , P ( 1 ) ( M ) } \color{red}\pi=\{P_{(1)}(0),P_{(1)}(1),\cdots,P_{(1)}(M)\} π={P(1)(0),P(1)(1),,P(1)(M)}
    • A \color{red}\mathcal{A} A状态转移矩阵 a i j = P ( i ( i + 1 ) = q j ∣ i ( t ) = q i ) \color{red}a_{ij} = P(i_{(i+1)}=q_j|i_{(t)}=q_i) aij=P(i(i+1)=qji(t)=qi)
    • B \color{red}\mathcal{B} B发射矩阵 b j ( k ) = P ( o t = V k ∣ i t = q j ) \color{red}b_j(k) = P(o_t = V_k | i_t = q_j) bj(k)=P(ot=Vkit=qj)
  3. 两个假设
    • 齐次马尔可夫假设: \textbf{齐次马尔可夫假设:} 齐次马尔可夫假设: P ( i t + 1 ∣ i t , i t − 1 , ⋯   , i 1 , o t , ⋯   , o 1 ) = P ( i t + 1 ∣ i t ) \color{red}P(i_{t+1}|i_{t},i_{t-1},\cdots,i_1,o_t,\cdots,o_1) = P(i_{t+1}|i_t) P(it+1it,it1,,i1,ot,,o1)=P(it+1it)
    • 观测独立假设: \textbf{观测独立假设:} 观测独立假设: P ( o t ∣ i t , i t − 1 , ⋯   , i 1 , o t , ⋯   , o 1 ) = P ( o t ∣ i t ) \color{red}P(o_{t}|i_{t},i_{t-1},\cdots,i_1,o_t,\cdots,o_1) = P(o_{t}|i_t) P(otit,it1,,i1,ot,,o1)=P(otit)
  4. 三个问题
    • Evaluation:Given λ \color{blue}\lambda λ,求 P ( O ∣ λ ) \color{red}P(O|\lambda) P(Oλ)。(Forward-Backward)
    • Learning: λ M L E = arg ⁡ max ⁡ λ P ( O ∣ λ ) \color{red}\lambda_{MLE} = \arg\max_{\lambda}P(O|\lambda) λMLE=argmaxλP(Oλ)。(EM算法Baum Welch算法)
    1. Decoding I ^ = arg ⁡ max ⁡ I P ( I ∣ O , λ ) \color{red}\hat{I} = \arg\max_{I}P(I|O,\lambda) I^=argmaxIP(IO,λ)。(Viterbi)

本节主要是讲Evaluation中的Forward

14.2.1 Evaluation-Forward

  1. 基本方法
    • 对于 P ( O ∣ λ ) P(O|\lambda) P(Oλ)利用概率的基础知识进行化简:
      P ( O ∣ λ ) = ∑ I P ( O , I ∣ λ ) = ∑ I P ( O ∣ I , λ ) P ( I ∣ λ ) (14.2.1) P(O|\lambda) = \sum_{I}P(O,I|\lambda) = \sum_{I}P(O|I,\lambda)P(I|\lambda)\tag{14.2.1} P(Oλ)=IP(O,Iλ)=IP(OI,λ)P(Iλ)(14.2.1)
      其中:
      • ∑ I \sum_{I} I表示所有可能出现的隐状态序列;
      • ∑ I P ( O ∣ I , λ ) \sum_{I}P(O|I,\lambda) IP(OI,λ)表示在某个隐状态下,产生某个观测序列的概率
      • P ( I ∣ λ ) P(I|\lambda) P(Iλ)表示某个隐状态出现的概率。那么:
        P ( I ∣ λ ) = P ( i 1 , ⋯   , i T ∣ λ ) = P ( i T ∣ i 1 , ⋯   , i T − 1 , λ ) ⋅ P ( i 1 , ⋯   , i T − 1 ∣ λ ) (14.2.2) \begin{array}{ll} P(I|\lambda) & = P(i_1,\cdots,i_T|\lambda) \\ & = P(i_T|i_1,\cdots,i_{T-1},\lambda)\cdot P(i_1,\cdots,i_{T-1}|\lambda) \\\end{array}\tag{14.2.2} P(Iλ)=P(i1,,iTλ)=P(iTi1,,iT1,λ)P(i1,,iT1λ)(14.2.2)
    • 根据Hidden Markov Model两个假设
      • 齐次马尔可夫假设,可得: P ( i T ∣ i 1 , ⋯   , i T − 1 , λ ) = P ( i T ∣ i T − 1 ) = a i T − 1 , i T P(i_T|i_1,\cdots,i_{T-1},\lambda) = P(i_T|i_{T-1}) = a_{i_{T-1},i_T} P(iTi1,,iT1,λ)=P(iTiT1)=aiT1,iT。对公式(14.2.2)进行化简可以得到:
        P ( i T ∣ i 1 , ⋯   , i T − 1 , λ ) ⋅ P ( i 1 , ⋯   , i T − 1 ∣ λ ) = P ( i T ∣ i T − 1 ) ⋅ P ( i 1 , ⋯   , i T − 1 ∣ λ ) = a i T − 1 , i T ⋅ a i T − 2 , i T − 1 ⋯ a i 1 , i 2 ⋅ π ( a i 1 ) = π ( a i 1 ) ∏ t = 2 T a i t − 1 , i t (14.2.3) \begin{array}{ll} P(i_T|i_1,\cdots,i_{T-1},\lambda)\cdot P(i_1,\cdots,i_{T-1}|\lambda) & = P(i_T|i_{T-1}) \cdot P(i_1,\cdots,i_{T-1}|\lambda) \\ & = a_{i_{T-1},i_T}\cdot a_{i_{T-2},i_{T-1}} \cdots a_{i_1,i_2} \cdot \pi(a_{i_1}) \\ &= \pi(a_{i_1}) \prod_{t=2}^T a_{i_{t-1},i_t}\end{array}\tag{14.2.3} P(iTi1,,iT1,λ)P(i1,,iT1λ)=P(iTiT1)P(i1,,iT1λ)=aiT1,iTaiT2,iT1ai1,i2π(ai1)=π(ai1)t=2Tait1,it(14.2.3)
      • 观察独立假设,可知:
        P ( O ∣ I , λ ) = P ( o 1 , o 2 , ⋯   , o T ∣ I , λ ) = ∏ t = 1 T P ( o t ∣ I , λ ) = ∏ t = 1 T b i t ( o t ) (14.2.4) \begin{array}{ll} P(O|I,\lambda) &= P(o_1,o_2,\cdots,o_T|I,\lambda) \\ &= \prod_{t=1}^T P(o_t|I,\lambda) \\ &= \prod_{t=1}^T b_{i_t}(o_t)\end{array}\tag{14.2.4} P(OI,λ)=P(o1,o2,,oTI,λ)=t=1TP(otI,λ)=t=1Tbit(ot)(14.2.4)
    1. 结合公式(14.2.4)和(14.2.3),(14.2.1)可以化简为:
      P ( O ∣ λ ) = ∑ I π ( a i 1 ) ∏ t = 2 T a i t − 1 , i t ∏ t = 1 T b i t ( o t ) = ∑ i 1 ⋅ ∑ i 2 ⋯ ∑ i T π ( a i 1 ) ∏ t = 2 T a i t − 1 , i t ∏ t = 1 T b i t ( o t ) (14.2.5) \color{blue}\begin{array}{ll} P(O|\lambda) &= \sum_I \pi(a_{i_1}) \prod_{t=2}^T a_{i_{t-1},i_t} \prod_{t=1}^T b_{i_t}(o_t) \\ &= \sum_{i_1}\cdot \sum_{i_2} \cdots \sum_{i_T} \pi(a_{i_1}) \prod_{t=2}^T a_{i_{t-1},i_t} \prod_{t=1}^T b_{i_t}(o_t)\end{array}\tag{14.2.5} P(Oλ)=Iπ(ai1)t=2Tait1,itt=1Tbit(ot)=i1i2iTπ(ai1)t=2Tait1,itt=1Tbit(ot)(14.2.5)
      公式(14.2.1)共有 T T T个状态,每个状态有 N N N种可能,所以算法复杂度为 O ( N T ) \color{red}\mathcal{O}(N^T) O(NT)。计算太困难了!
  2. Forward Algorithm
    下图是Hidden Markov Model的拓扑结构图
    机器学习-白板推导系列(十四)-隐马尔科夫(HMM,Hidden Markov Model)_第4张图片
    1. 思路
      我们记 α t ( i ) = P ( o 1 , ⋯   , o t , i t = q i ∣ λ ) \color{red}\alpha_t(i) = P(o_1,\cdots,o_t,i_t = q_i|\lambda) αt(i)=P(o1,,ot,it=qiλ),这个公式表示:在之前所有的观测变量的前提下求出当前时刻的隐变量的概率。那么:
      P ( O ∣ λ ) = ∑ i = 1 N P ( O , i T = q i ∣ λ ) = ∑ i = 1 N α T ( i ) (14.2.6) \color{red}P(O|\lambda) = \sum_{i=1}^N P(O, i_T = q_i | \lambda) = \sum_{i=1}^N \alpha_T(i)\tag{14.2.6} P(Oλ)=i=1NP(O,iT=qiλ)=i=1NαT(i)(14.2.6)
      其中, ∑ i = 1 N \sum_{i=1}^N i=1N表示对所有可能出现的隐状态情形求和。通过寻找 α t ( i ) \color{blue}\alpha_t(i) αt(i) α t ( i + 1 ) \color{blue}\alpha_t(i+1) αt(i+1)之间的递推关系,就可以得到整个观测序列出现的概率。
    2. 求解递推关系
      α t ( i + 1 ) \alpha_t(i+1) αt(i+1)可以写成:
      α t ( i + 1 ) = P ( o 1 , ⋯   , o t , o t + 1 , i t + 1 = q j ∣ λ ) (14.2.7) \color{red}\alpha_t(i+1) = P(o_1,\cdots,o_t,o_{t+1},i_{t+1}=q_j|\lambda)\tag{14.2.7} αt(i+1)=P(o1,,ot,ot+1,it+1=qjλ)(14.2.7)
      因为 α t ( i ) \alpha_t(i) αt(i)里面有 i t = q j i_{t}=q_j it=qj,因此想办法把 i t i_{t} it给塞进 α t ( i + 1 ) \alpha_t(i+1) αt(i+1)中,即:
      α t ( i + 1 ) = P ( o 1 , ⋯   , o t , o t + 1 , i t + 1 = q j ∣ λ ) = ∑ i = 1 N P ( o 1 , ⋯   , o t , o t + 1 , i t = q i , i t + 1 = q j ∣ λ ) = ∑ i = 1 N 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 ∣ λ ) (14.2.7) \begin{array}{ll} \alpha_t(i+1) & = P(o_1,\cdots,o_t,o_{t+1},i_{t+1}=q_j|\lambda) \\ & = \sum_{i=1}^N P(o_1,\cdots,o_t,o_{t+1},i_{t}=q_i,i_{t+1}=q_j|\lambda) \\ & = \sum_{i=1}^N P(o_{t+1}|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|\lambda)\end{array}\tag{14.2.7} αt(i+1)=P(o1,,ot,ot+1,it+1=qjλ)=i=1NP(o1,,ot,ot+1,it=qi,it+1=qjλ)=i=1NP(ot+1o1,,ot,it=qi,it+1=qj,λ)P(o1,,ot,it=qi,it+1=qjλ)(14.2.7)
      • 根据观测独立性假设,可得 P ( o t + 1 ∣ o 1 , ⋯   , o t , i t = q i , i t + 1 = q j , λ ) = P ( o t + 1 ∣ i t + 1 = q j ) \color{blue}P(o_{t+1}|o_1,\cdots,o_t,i_{t}=q_i,i_{t+1}=q_j,\lambda) = P(o_{t+1}|i_{t+1}=q_j) P(ot+1o1,,ot,it=qi,it+1=qj,λ)=P(ot+1it+1=qj)。所以:
        α t ( i + 1 ) = ∑ i = 1 N 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 ∣ λ ) = ∑ i = 1 N P ( o t + 1 ∣ i t + 1 = q j ) ⋅ P ( o 1 , ⋯   , o t , i t = q i , i t + 1 = q j ∣ λ ) (14.2.8) \begin{array}{ll} \alpha_t(i+1) &= \sum_{i=1}^N P(o_{t+1}|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|\lambda) \\ & = \sum_{i=1}^N P(o_{t+1}|i_{t+1}=q_j)\cdot P(o_1,\cdots,o_t,i_{t}=q_i,i_{t+1}=q_j|\lambda) \end{array}\tag{14.2.8} αt(i+1)=i=1NP(ot+1o1,,ot,it=qi,it+1=qj,λ)P(o1,,ot,it=qi,it+1=qjλ)=i=1NP(ot+1it+1=qj)P(o1,,ot,it=qi,it+1=qjλ)(14.2.8)
        看到这个化简后的公式,与 α t ( i ) \alpha_t(i) αt(i)相比,还多了一项 i t + 1 = q j i_{t+1}=q_j it+1=qj,下一步的工作就是消去它。所以:
        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 ∣ λ ) (14.2.9) P(o_1,\cdots,o_t,i_{t}=q_i,i_{t+1}=q_j|\lambda) = P(i_{t+1}=q_j |o_1,\cdots,o_t,i_{t}=q_i,\lambda)\cdot P(o_1,\cdots,o_t,i_{t}=q_i|\lambda)\tag{14.2.9} P(o1,,ot,it=qi,it+1=qjλ)=P(it+1=qjo1,,ot,it=qi,λ)P(o1,,ot,it=qiλ)(14.2.9)
      • 根据齐次马尔可夫性质,可得 P ( i t + 1 = q j ∣ o 1 , ⋯   , o t , i t = q i , λ ) = P ( i t + 1 = q j ∣ i t = q i ) \color{blue}P(i_{t+1}=q_j |o_1,\cdots,o_t,i_{t}=q_i,\lambda) = P(i_{t+1}=q_j | i_{t}=q_i) P(it+1=qjo1,,ot,it=qi,λ)=P(it+1=qjit=qi)。所以:
        α t + 1 ( j ) = ∑ i = 1 N P ( o t + 1 ∣ i t + 1 = q j ) ⋅ P ( i t + 1 = q j ∣ i t = q i ) ⋅ P ( o 1 , ⋯   , o t , i t = q i ∣ λ ) = ∑ i = 1 N b j ( o t + 1 ) ⋅ a i j ⋅ α t ( i ) (14.2.10) \begin{array}{ll} \alpha_{t+1}(j) & = \sum_{i=1}^N P(o_{t+1}|i_{t+1}=q_j)\cdot P(i_{t+1}=q_j | i_{t}=q_i) \cdot P(o_1,\cdots,o_t,i_{t}=q_i|\lambda) \\ & = \sum_{i=1}^N b_j(o_{t+1})\cdot a_{ij} \cdot \alpha_t(i) \end{array}\tag{14.2.10} αt+1(j)=i=1NP(ot+1it+1=qj)P(it+1=qjit=qi)P(o1,,ot,it=qiλ)=i=1Nbj(ot+1)aijαt(i)(14.2.10)
      • 经过上述的推导,我们就成功的得到了 α t + 1 ( j ) \alpha_{t+1}(j) αt+1(j) α t ( i ) \alpha_t(i) αt(i)之间的关系:
        α t + 1 ( j ) = ∑ i = 1 N b j ( o t + 1 ) ⋅ a i j ⋅ α t ( i ) (14.2.11) \color{red}\alpha_{t+1}(j)= \sum_{i=1}^N b_j(o_{t+1})\cdot a_{ij} \cdot \alpha_t(i)\tag{14.2.11} αt+1(j)=i=1Nbj(ot+1)aijαt(i)(14.2.11)
        通过这个递推关系,就可以遍历整个Markov Model了。这个公式是什么意思呢?它可以表达为,所有可能出现的隐变量状态乘以转移到状态 j j j的概率,乘以根据隐变量 i t + 1 i_{t+1} it+1观察到 o t + 1 o_{t+1} ot+1的概率,乘上根据上一个隐状态观察到的观察变量的序列的概率。
  3. 总结
    机器学习-白板推导系列(十四)-隐马尔科夫(HMM,Hidden Markov Model)_第5张图片
    令 α t ( i ) = P ( o 1 , ⋯   , o t , i t = q i ∣ λ ) P ( O ∣ λ ) = ∑ i = 1 N P ( O , i t = q i ∣ λ ) = ∑ i = 1 N α T ( i ) α t + 1 ( j ) = ∑ i = 1 N b j ( o t + 1 ) ⋅ a i j ⋅ α t ( i ) \color{red}令\alpha_t(i) = P(o_1,\cdots,o_t,i_t = q_i|\lambda)\\ P(O|\lambda) = \sum_{i=1}^N P(O, i_t = q_i | \lambda) = \sum_{i=1}^N \alpha_T(i)\\ \alpha_{t+1}(j)= \sum_{i=1}^N b_j(o_{t+1})\cdot a_{ij} \cdot \alpha_t(i) αt(i)=P(o1,,ot,it=qiλ)P(Oλ)=i=1NP(O,it=qiλ)=i=1NαT(i)αt+1(j)=i=1Nbj(ot+1)aijαt(i)
    用一个图来进行表示:机器学习-白板推导系列(十四)-隐马尔科夫(HMM,Hidden Markov Model)_第6张图片
    假设有隐状态的状态空间数为 N N N,序列的长度为 T T T,那么总的时间复杂度为 O ( T N 2 ) \color{red}\mathcal{O}(TN^2) O(TN2)

14.3 后向算法

后向概率的推导实际上比前向概率的理解要难,前向算法是一个联合概率,而后向算法则是一个条件概率,所以后向的概率实际上比前向难求很多

  1. 基本思路
    下图是Hidden Markov Model的拓扑结构图
    机器学习-白板推导系列(十四)-隐马尔科夫(HMM,Hidden Markov Model)_第7张图片
    定义:
    β t ( i ) = P ( o t + 1 , ⋯   , o T ∣ i t = q i , λ ) (14.3.1) \color{red}\beta _{t}(i)=P(o_{t+1},\cdots ,o_{T}|i_{t}=q_{i},\lambda )\tag{14.3.1} βt(i)=P(ot+1,,oTit=qi,λ)(14.3.1)
    β 1 ( t ) = P ( o 2 , ⋯   , o T ∣ i 1 = q i , λ ) \color{blue}\beta_1(t)= P(o_{2},\cdots,o_T|i_1 = q_i,\lambda) β1(t)=P(o2,,oTi1=qi,λ)。计算目标 P ( O ∣ λ ) \color{blue}P(O|\lambda) P(Oλ)可以表示为::
    P ( O ∣ λ ) = P ( o 1 , ⋯   , o T ∣ λ ) = ∑ i = 1 N P ( o 1 , ⋯   , o T , i 1 = q i ∣ λ ) = ∑ i = 1 N P ( o 1 , ⋯   , o T ∣ i 1 = q i , λ ) P ( i 1 = q i ∣ λ ) ⏟ π i = ∑ i = 1 N P ( o 1 ∣ o 2 , ⋯   , o T , i 1 = q i , λ ) P ( o 2 , ⋯   , o T ∣ i 1 = q i , λ ) ⏟ β 1 ( i ) π i = ∑ i = 1 N P ( o 1 ∣ i 1 = q i , λ ) β 1 ( i ) π i = ∑ i = 1 N b i ( o 1 ) β 1 ( i ) π i (14.3.2) \begin{array}{ll}P(O|\lambda )&=P(o_{1},\cdots ,o_{T}|\lambda )\\ &=\sum_{i=1}^{N}P(o_{1},\cdots ,o_{T},i_{1}=q_{i}|\lambda )\\ &=\sum_{i=1}^{N}P(o_{1},\cdots ,o_{T}|i_{1}=q_{i},\lambda )\underset{\pi _{i}}{\underbrace{P(i_{1}=q_{i}|\lambda )}}\\ &=\sum_{i=1}^{N}P(o_{1}|o_{2},\cdots ,o_{T},i_{1}=q_{i},\lambda )\underset{\beta _{1}(i)}{\underbrace{P(o_{2},\cdots ,o_{T}|i_{1}=q_{i},\lambda )}}\pi _{i}\\ &=\sum_{i=1}^{N}P(o_{1}|i_{1}=q_{i},\lambda )\beta _{1}(i)\pi _{i}\\ &=\sum_{i=1}^{N}b_{i}(o_{1})\beta _{1}(i)\pi _{i}\end{array}\tag{14.3.2} P(Oλ)=P(o1,,oTλ)=i=1NP(o1,,oT,i1=qiλ)=i=1NP(o1,,oTi1=qi,λ)πi P(i1=qiλ)=i=1NP(o1o2,,oT,i1=qi,λ)β1(i) P(o2,,oTi1=qi,λ)πi=i=1NP(o1i1=qi,λ)β1(i)πi=i=1Nbi(o1)β1(i)πi(14.3.2)
    现在已成功的找到 P ( O ∣ λ ) 和 第 一 个 状 态 之 间 的 关 系 \color{red}P(O|\lambda)和第一个状态之间的关系 P(Oλ)。其中:

    • π i \pi_i πi某个状态的初始状态的概率
    • b i ( o 1 ) b_i(o_1) bi(o1)表示为 i i i个隐变量产生第1个观测变量的概率
    • β 1 ( i ) \beta_1(i) β1(i)表示为第一个观测状态确定以后生成后面观测状态序列的概率。结构图如下所示:
      机器学习-白板推导系列(十四)-隐马尔科夫(HMM,Hidden Markov Model)_第8张图片
  2. 求解递推关系
    因此如果我们能找到 β t ( i ) \color{blue}\beta _{t}(i) βt(i) β t + 1 ( j ) \color{blue}\beta _{t+1}(j) βt+1(j)的递推式,就可以由通过递推得到 β 1 ( i ) \color{blue}\beta _{1}(i) β1(i),从而计算 P ( O ∣ λ ) P(O|\lambda ) P(Oλ),则递推公式是:
    β t ( i ) = P ( o t + 1 , ⋯   , o T ∣ i t = q i , λ ) = ∑ j = 1 N P ( o t + 1 , ⋯   , o T , i t + 1 = q j ∣ i t = q i , λ ) = ∑ j = 1 N P ( o t + 1 , ⋯   , o T ∣ i t + 1 = q j , i t = q i , λ ) P ( i t + 1 = q j ∣ i t = q i , λ ) = ∑ j = 1 N P ( o t + 1 , ⋯   , o T ∣ i t + 1 = q j , λ ) a i j = ∑ j = 1 N P ( o t + 1 ∣ o t + 2 , ⋯   , o T , i t + 1 = q j , λ ) P ( o t + 2 , ⋯   , o T ∣ i t + 1 = q j , λ ) a i j ( 从 这 一 步 到 下 一 步 满 足 : A ⊥ C ∣ B ⇔ 若 B 被 观 测 , 则 路 径 被 阻 塞 。 ) = ∑ j = 1 N P ( o t + 1 ∣ i t + 1 = q j , λ ) β t + 1 ( j ) a i j = ∑ j = 1 N b j ( o t + 1 ) a i j β t + 1 ( j ) (14.3.3) \begin{array}{ll}\beta _{t}(i)&=P(o_{t+1},\cdots ,o_{T}|i_{t}=q_{i},\lambda )\\ &=\sum_{j=1}^{N}P(o_{t+1},\cdots ,o_{T},i_{t+1}=q_{j}|i_{t}=q_{i},\lambda )\\ &=\sum_{j=1}^{N}{\color{Red}{P(o_{t+1},\cdots ,o_{T}|i_{t+1}=q_{j},i_{t}=q_{i},\lambda)}}{\color{Blue}{P(i_{t+1}=q_{j}|i_{t}=q_{i},\lambda )}}\\ &=\sum_{j=1}^{N}{\color{Red}{P(o_{t+1},\cdots ,o_{T}|i_{t+1}=q_{j},\lambda)}}{\color{Blue}{a_{ij}}}\\ &=\sum_{j=1}^{N}{\color{Orange}{P(o_{t+1}|o_{t+2},\cdots ,o_{T},i_{t+1}=q_{j},\lambda)}}{\color{Orchid}{P(o_{t+2},\cdots ,o_{T}|i_{t+1}=q_{j},\lambda)}}{\color{Blue}{a_{ij}}}\\ & (从这一步到下一步满足:A\perp C|B\Leftrightarrow 若B被观测,则路径被阻塞。)\\ &=\sum_{j=1}^{N}{\color{Orange}{P(o_{t+1}|i_{t+1}=q_{j},\lambda)}}{\color{Orchid}{\beta _{t+1}(j)}}{\color{Blue}{a_{ij}}}\\ &=\sum_{j=1}^{N}{\color{Orange}{b_{j}(o_{t+1})}}{\color{Blue}{a_{ij}}}{\color{Orchid}{\beta _{t+1}(j)}}\end{array}\tag{14.3.3} βt(i)=P(ot+1,,oTit=qi,λ)=j=1NP(ot+1,,oT,it+1=qjit=qi,λ)=j=1NP(ot+1,,oTit+1=qj,it=qi,λ)P(it+1=qjit=qi,λ)=j=1NP(ot+1,,oTit+1=qj,λ)aij=j=1NP(ot+1ot+2,,oT,it+1=qj,λ)P(ot+2,,oTit+1=qj,λ)aij(:ACBB)=j=1NP(ot+1it+1=qj,λ)βt+1(j)aij=j=1Nbj(ot+1)aijβt+1(j)(14.3.3)
    其中第五行到第六行的推导 P ( o t + 1 , ⋯   , o T ∣ i t + 1 = q j , i t = q i ) = P ( o t + 1 , ⋯   , o T ∣ i t + 1 = q j ) \color{blue}P(o_{t+1},\cdots,o_T |i_{t+1} = q_j, i_t = q_i) = P(o_{t+1},\cdots,o_T |i_{t+1} = q_j) P(ot+1,,oTit+1=qj,it=qi)=P(ot+1,,oTit+1=qj)使用的马尔可夫链的性质,每一个状态都是后面状态的充分统计量,与之前的状态无关。
    在这里插入图片描述

  3. 总结
    机器学习-白板推导系列(十四)-隐马尔科夫(HMM,Hidden Markov Model)_第9张图片

    定 义 : β t ( i ) = P ( o t + 1 , ⋯   , o T ∣ i t = q i , λ ) P ( O ∣ λ ) = ∑ i = 1 N b i ( o 1 ) β 1 ( i ) π i β t ( i ) = ∑ j = 1 N b j ( o t + 1 ) a i j β t + 1 ( j ) (14.3.4) \color{red}定义:\beta _{t}(i)=P(o_{t+1},\cdots ,o_{T}|i_{t}=q_{i},\lambda )\\ P(O|\lambda )=\sum_{i=1}^{N}b_{i}(o_{1})\beta _{1}(i)\pi _{i}\\ \beta _{t}(i)=\sum_{j=1}^{N}{\color{Orange}{b_{j}(o_{t+1})}}{\color{Blue}{a_{ij}}}{\color{Orchid}{\beta _{t+1}(j)}}\tag{14.3.4} βt(i)=P(ot+1,,oTit=qi,λ)P(Oλ)=i=1Nbi(o1)β1(i)πiβt(i)=j=1Nbj(ot+1)aijβt+1(j)(14.3.4)
    通过这样的迭代从后往前推,我们就可以得到 β i ( 1 ) \beta_i(1) βi(1)的概率,从而推断出 P ( O ∣ λ ) P(O|\lambda) P(Oλ)。整体的推断流程图如下图所示:
    机器学习-白板推导系列(十四)-隐马尔科夫(HMM,Hidden Markov Model)_第10张图片
    这就是后向算法,其复杂度也为 O ( T N 2 ) \color{red}O(TN^{2}) O(TN2)


14.4 Beco Decoding算法(Learning)

14.4.1 问题简化

  • 上两节讲的是HMM的Evaluating部分,接下来讲HMM的Learning部分。即目标是: 在 已 知 观 测 数 据 的 情 况 下 求 参 数 λ \color{blue}在已知观测数据的情况下求参数\lambda λ
    λ M L E = arg ⁡ max ⁡ λ P ( O ∣ λ ) (14.4.1) \lambda_{MLE} = \arg\max_{\lambda} P(O|\lambda)\tag{14.4.1} λMLE=argλmaxP(Oλ)(14.4.1)
    因为:
    P ( O ∣ λ ) = ∑ I P ( O , I ∣ λ ) = ∑ i 1 ⋯ ∑ i T π i 1 ∏ t = 2 T a i t − 1 , i t ∏ t = 1 T b i 1 ( o t ) (14.4.2) P(O|\lambda) = \sum_I P(O,I|\lambda) = \sum_{i_1}\cdots\sum_{i_T} \pi_{i_1} \prod_{t=2}^T a_{i_{t-1},i_{t}} \prod_{t=1}^T b_{i_1}(o_t)\tag{14.4.2} P(Oλ)=IP(O,Iλ)=i1iTπi1t=2Tait1,itt=1Tbi1(ot)(14.4.2)
    对这个方程的 λ \lambda λ求偏导,实在是太难算了。
  • 问题简化
    所以考虑使用EM算法。先来回顾一下EM算法:
    θ ( t + 1 ) = arg ⁡ max ⁡ θ ∫ z log ⁡ P ( X , Z ∣ θ ) ⋅ P ( Z ∣ X , θ ( t ) ) d Z (14.4.3) \theta^{(t+1)} = \arg\max_\theta \int_z \log P(X,Z|\theta)\cdot P(Z|X,\theta^{(t)}) dZ\tag{14.4.3} θ(t+1)=argθmaxzlogP(X,Zθ)P(ZX,θ(t))dZ(14.4.3)
    其中:
    • X → O X\rightarrow O XO为观测变量;
    • Z → I Z\rightarrow I ZI为隐变量,其中 I I I为离散变量;
    • θ → λ \theta \rightarrow \lambda θλ为参数。
      那么,可以将公式(14.4.3)改写为:
      λ ( t + 1 ) = arg ⁡ max ⁡ λ ∑ I log ⁡ P ( O , I ∣ λ ) ⋅ P ( I ∣ O , λ ( t ) ) (14.4.4) \lambda^{(t+1)} = \arg\max_\lambda \sum_I \log P(O,I|\lambda)\cdot P(I|O,\lambda^{(t)})\tag{14.4.4} λ(t+1)=argλmaxIlogP(O,Iλ)P(IO,λ(t))(14.4.4)
      每次迭代 λ ( t + 1 ) \lambda^{(t+1)} λ(t+1) λ ( t ) \lambda^{(t)} λ(t)是一个常数,即:
      P ( I ∣ O , λ ( t ) ) = P ( I , O ∣ λ ( t ) ) P ( O ∣ λ ( t ) ) (14.4.5) P(I|O,\lambda^{(t)}) = \frac{P(I,O|\lambda^{(t)})}{P(O|\lambda^{(t)})}\tag{14.4.5} P(IO,λ(t))=P(Oλ(t))P(I,Oλ(t))(14.4.5)
      并且 P ( O ∣ λ ( t ) ) P(O|\lambda^{(t)}) P(Oλ(t)) λ ( t ) \lambda^{(t)} λ(t)是常数,所以这项是个定量,与 λ \lambda λ无关,所以 P ( I , O ∣ λ ( t ) ) P ( O ∣ λ ( t ) ) ∝ P ( I , O ∣ λ ( t ) ) \color{red}\frac{P(I,O|\lambda^{(t)})}{P(O|\lambda^{(t)})} \propto P(I,O|\lambda^{(t)}) P(Oλ(t))P(I,Oλ(t))P(I,Oλ(t))。所以等式(14.4.4)改写为:
      λ ( t + 1 ) = arg ⁡ max ⁡ λ ∑ I log ⁡ P ( O , I ∣ λ ) ⋅ P ( I , O ∣ λ ( t ) ) (14.4.6) \color{red}\lambda^{(t+1)} = \arg\max_\lambda \sum_I \log P(O,I|\lambda)\cdot P(I,O|\lambda^{(t)})\tag{14.4.6} λ(t+1)=argλmaxIlogP(O,Iλ)P(I,Oλ(t))(14.4.6)
      其中 λ ( t ) = ( π ( t ) , A ( t ) , B ( t ) ) \color{blue}\lambda^{(t)} = (\pi^{(t)}, \mathcal{A}^{(t)}, \mathcal{B}^{(t)}) λ(t)=(π(t),A(t),B(t)),而 λ ( t + 1 ) = ( π ( t + 1 ) , A ( t + 1 ) , B ( t + 1 ) ) \color{blue}\lambda^{(t+1)} = (\pi^{(t+1)}, \mathcal{A}^{(t+1)}, \mathcal{B}^{(t+1)}) λ(t+1)=(π(t+1),A(t+1),B(t+1))。这样做有什么目的呢?可以把 log ⁡ P ( O , I ∣ λ ) \log P(O,I|\lambda) logP(O,Iλ) P ( I , O ∣ λ ( t ) ) P(I,O|\lambda^{(t)}) P(I,Oλ(t))变成一种形式。
  • 公式优化
    对于公式(14.4.6),定义:
    Q ( λ , λ ( t ) ) = ∑ I log ⁡ P ( O , I ∣ λ ) ⋅ P ( O , I ∣ λ ( t ) ) (14.4.7) Q(\lambda,\lambda^{(t)}) = \sum_I \log P(O,I|\lambda)\cdot P(O,I|\lambda^{(t)})\tag{14.4.7} Q(λ,λ(t))=IlogP(O,Iλ)P(O,Iλ(t))(14.4.7)
    因为公式(14.4.2)化简可知: P ( O , I ∣ λ ) = π i 1 ∏ t = 2 T a i t − 1 , i t ∏ t = 1 T b i 1 ( o t ) P(O,I|\lambda) = \pi_{i_1} \prod_{t=2}^T a_{i_{t-1},i_{t}} \prod_{t=1}^T b_{i_1}(o_t) P(O,Iλ)=πi1t=2Tait1,itt=1Tbi1(ot)。所以:
    Q ( λ , λ ( t ) ) = ∑ I [ ( log ⁡ π i 1 + ∑ t = 2 T log ⁡ a i t − 1 , i t + ∑ t = 1 T log ⁡ b i t ( o t ) ) ⋅ P ( O , I ∣ λ ( t ) ) ] (14.4.8) \color{red}Q(\lambda,\lambda^{(t)}) = \sum_I \left[ \left( \log \pi_{i_1} + \sum_{t=2}^T \log a_{i_{t-1},i_t} + \sum_{t=1}^T \log b_{i_t}(o_t) \right)\cdot P(O,I|\lambda^{(t)}) \right]\tag{14.4.8} Q(λ,λ(t))=I[(logπi1+t=2Tlogait1,it+t=1Tlogbit(ot))P(O,Iλ(t))](14.4.8)

14.4.2 求解最优值

  • π ( t + 1 ) \pi^{(t+1)} π(t+1)为例,在公式 Q ( λ , λ ( t ) ) Q(\lambda,\lambda^{(t)}) Q(λ,λ(t))中, ∑ t = 2 T log ⁡ a i t − 1 , i t \color{blue}\sum_{t=2}^T \log a_{i_{t-1},i_t} t=2Tlogait1,it ∑ t = 1 T log ⁡ b i t ( o t ) \color{blue}\sum_{t=1}^T \log b_{i_t}(o_t) t=1Tlogbit(ot) π \color{blue}\pi π无关,所以,
    π ( t + 1 ) = arg ⁡ max ⁡ π Q ( λ , λ ( t ) ) = arg ⁡ max ⁡ π ∑ I [ log ⁡ π i 1 ⋅ P ( O , I ∣ λ ( t ) ) ] = arg ⁡ max ⁡ π ∑ i 1 ⋯ ∑ i T [ log ⁡ π i 1 ⋅ P ( O , i 1 , ⋯   , i T ∣ λ ( t ) ) ] (14.4.9) \begin{array}{ll} \pi^{(t+1)} &= \arg\max_{\pi} Q(\lambda,\lambda^{(t)}) \\ &= \arg\max_{\pi} \sum_I [\log \pi_{i_1} \cdot P(O,I|\lambda^{(t)})] \\ &= \arg\max_{\pi} \sum_{i_1}\cdots \sum_{i_T}[\log \pi_{i_1} \cdot P(O,i_1,\cdots,i_T|\lambda^{(t)})] \end{array}\tag{14.4.9} π(t+1)=argmaxπQ(λ,λ(t))=argmaxπI[logπi1P(O,Iλ(t))]=argmaxπi1iT[logπi1P(O,i1,,iTλ(t))](14.4.9)
    观察 { i 2 , ⋯   , i T } \{i_2,\cdots,i_T\} {i2,,iT}可知, 联 合 概 率 分 布 求 和 可 以 得 到 边 缘 概 率 \color{blue}联合概率分布求和可以得到边缘概率 。所以:
    π ( t + 1 ) = arg ⁡ max ⁡ π ∑ i 1 [ log ⁡ π i 1 ⋅ P ( O , i 1 ∣ λ ( t ) ) ] = arg ⁡ max ⁡ π ∑ i = 1 N [ log ⁡ π i ⋅ P ( O , i 1 = q i ∣ λ ( t ) ) ] (14.4.10) \begin{array}{ll} \pi^{(t+1)} &= \arg\max_{\pi} \sum_{i_1} [\log \pi_{i_1} \cdot P(O,i_1|\lambda^{(t)})] \\ &= \arg\max_{\pi} \sum_{i=1}^N [\log \pi_{i} \cdot P(O,i_1=q_i|\lambda^{(t)})] \qquad \end{array}\tag{14.4.10} π(t+1)=argmaxπi1[logπi1P(O,i1λ(t))]=argmaxπi=1N[logπiP(O,i1=qiλ(t))](14.4.10)
    优化问题可以描述为:
    { π ( t + 1 ) = arg ⁡ max ⁡ π ∑ i = 1 N [ log ⁡ π i ⋅ P ( O , i 1 = q i ∣ λ ( t ) ) ] s . t .   ∑ i = 1 N π i = 1 (14.4.11) \color{red}\{\begin{array}{ll} \pi^{(t+1)} = \underset{\pi}{\arg\max} \sum_{i=1}^N [\log \pi_{i} \cdot P(O,i_1=q_i|\lambda^{(t)})] \\ s.t. \ \sum_{i=1}^N \pi_i = 1\end{array}\tag{14.4.11} {π(t+1)=πargmaxi=1N[logπiP(O,i1=qiλ(t))]s.t. i=1Nπi=1(14.4.11)
  • 拉格朗日乘子法求解
    根据拉格朗日乘子法,我们可以将损失函数写完:
    L ( π , η ) = ∑ i = 1 N log ⁡ π i ⋅ P ( O , i 1 = q i ∣ λ ( t ) ) + η ( ∑ i = 1 N π i − 1 ) (14.4.12) \mathcal{L}(\pi,\eta) = \sum_{i=1}^N \log \pi_{i} \cdot P(O,i_1=q_i|\lambda^{(t)}) + \eta(\sum_{i=1}^N \pi_i - 1)\tag{14.4.12} L(π,η)=i=1NlogπiP(O,i1=qiλ(t))+η(i=1Nπi1)(14.4.12)
    使似然函数最大化,则是对损失函数 L ( π , η ) \mathcal{L}(\pi,\eta) L(π,η)求偏导,则为:
    L π i = 1 π i P ( O , i 1 = q i ∣ λ ( t ) ) + η = 0 P ( O , i 1 = q i ∣ λ ( t ) ) + π i η = 0 (14.4.13) \begin{array}{ll}& \frac{\mathcal{L}}{\pi_i} = \frac{1}{\pi_i} P(O,i_1=q_i|\lambda^{(t)}) + \eta = 0 \\ & P(O,i_1=q_i|\lambda^{(t)}) + \pi_i\eta = 0\end{array}\tag{14.4.13} πiL=πi1P(O,i1=qiλ(t))+η=0P(O,i1=qiλ(t))+πiη=0(14.4.13)
    又因为 ∑ i = 1 N π i = 1 \sum_{i=1}^N \pi_i = 1 i=1Nπ

你可能感兴趣的:(机器学习-白板推导,机器学习,算法,统计学)