概率图模型-隐马尔可夫模型

说明:个人学习笔记,大量摘抄参考资料[2][3][4]的内容。

概述

隐马尔可夫模型(Hidden Markov Model, HMM)是一种结构简单的动态贝叶斯网络,描述了一个含有隐含未知参数的马尔可夫过程,主要用于时序数据建模,在语音识别、自然语言处理等领域有广泛应用。下文主要讨论马尔可夫模型的参数、假设和基本问题。
在这里插入图片描述

变量定义
x = { x 1 , x 2 , . . . , x n } \textbf{x}=\{x_1,x_2,...,x_n\} x={x1,x2,...,xn}观测变量
{ o 1 , o 2 , . . . , o M } \{o_1,o_2,...,o_M\} {o1,o2,...,oM}观测变量的取值范围
y = { y 1 , y 2 , . . . , y n } \textbf{y}=\{y_1,y_2,...,y_n\} y={y1,y2,...,yn}状态变量(隐变量)
{ s 1 , s 2 , . . . , s N } \{s_1,s_2,...,s_N\} {s1,s2,...,sN}状态变量的取值范围(状态空间)

三个参数

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

a i j = P ( y t + 1 = s j ∣ y t = s i ) a_{ij}=P(y_{t+1}=s_j|y_t=s_i) aij=P(yt+1=sjyt=si)

表示在任意时刻 t t t,若状态为 s i s_i si,则在下一时刻状态变为 s j s_j sj的概率。

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

b i j = P ( x t = o j ∣ y t = s i ) b_{ij}=P(x_t=o_j|y_t=s_i) bij=P(xt=ojyt=si)

表示在任意时刻 t t t,若状态为 s i s_i si,则观测值 o j o_j oj被获取的概率。

  • 初始状态概率 π \pi π:模型在初始时刻各状态出现的概率,记为 π = ( π 1 , π 2 , . . . , π N ) \pi=(\pi_1,\pi_2,...,\pi_N) π=(π1,π2,...,πN),其中

π i = P ( y 1 = s i ) \pi_i=P(y_1=s_i) πi=P(y1=si)

表示模型的初始状态为 s i s_i si的概率

两个假设

  • 齐次马尔可夫假设:又称一阶马尔可夫假设,任意时刻的状态只依赖前一时刻的状态,与其他时刻无关。公式表达如下

P ( y t + 1 ∣ y t , y t − 1 , . . . , y 1 , x t , x t − 1 , . . . , x 1 ) = P ( y t + 1 ∣ y t ) P(y_{t+1}|y_t,y_{t-1},...,y_1,x_t,x_{t-1},...,x_1)=P(y_{t+1}|y_t) P(yt+1yt,yt1,...,y1,xt,xt1,...,x1)=P(yt+1yt)

  • 观测独立性假设:任意时刻的观测只依赖于该时刻的状态,与其他状态无关。公式表达如下

P ( x t ∣ y t , y t − 1 , . . . , y 1 , x t − 1 , . . . , x 1 ) = P ( x t ∣ y t ) P(x_t|y_t,y_{t-1},...,y_1,x_{t-1},...,x_1)=P(x_t|y_t) P(xtyt,yt1,...,y1,xt1,...,x1)=P(xtyt)

参考资料[6]还提到参数不变性假设,即上节中的三个参数不随时间变化而变化。因对参数 A A A B B B的定义已使用“任意时刻 t t t”及参数 π \pi π的定义已规定为初始时刻,故已默认其不受时间变化而变化,因此在此不单独列出作为一条假设。

三个问题

评估问题

已知 λ \lambda λ,求 P ( x ∣ λ ) P(\textbf{x}|\lambda) P(xλ),即评估模型与观测序列之间的匹配程度。常用求解方法有前向算法、后向算法。

如果直接进行暴力求解,有公式
P ( x ∣ λ ) = ∑ y P ( y , x ∣ λ ) = ∑ y P ( y ∣ λ ) ⋅ P ( x ∣ y , λ ) P(\textbf{x}|\lambda)=\sum_{\textbf{y}}P(\textbf{y},\textbf{x}|\lambda)=\sum_{\textbf{y}}{P(\textbf{y}|\lambda) \cdot P(\textbf{x}|\textbf{y},\lambda)} P(xλ)=yP(y,xλ)=yP(yλ)P(xy,λ)

其中又有
P ( y ∣ λ ) = P ( y 1 , . . . , y T ∣ λ ) = P ( y 1 ∣ y 2 , . . . , y T , λ ) ⋅ P ( y 2 , . . . , y T ∣ λ ) = P ( y 1 ∣ y 2 ) ⋅ P ( y 2 , . . . , y T ∣ λ ) ( 假 设 1 ) = a y 1 , y 2 P ( y 2 , . . . , y T ∣ λ ) = ⋯ = π y 1 ∏ t = 1 T a y i − 1 , y i P ( x ∣ y , λ ) = ∏ t = 1 T b y t , x t \begin{aligned} P(\textbf{y}|\lambda)&=P(y1,...,y_T|\lambda)\\ &=P(y_1|y_2,...,y_T,\lambda) \cdot P(y_2,...,y_T|\lambda)\\ &= P(y_1|y_2) \cdot P(y_2,...,y_T|\lambda)(假设1)\\ &=a_{y_1,y_2}P(y_2,...,y_T|\lambda)= \cdots \\ &= \pi_{y_1}\prod_{t=1}^{T}a_{y_{i-1},y_i}\\ P(\textbf{x}|\textbf{y},\lambda)&=\prod_{t=1}^{T}{b_{y_t,x_t}} \end{aligned} P(yλ)P(xy,λ)=P(y1,...,yTλ)=P(y1y2,...,yT,λ)P(y2,...,yTλ)=P(y1y2)P(y2,...,yTλ)(1)=ay1,y2P(y2,...,yTλ)==πy1t=1Tayi1,yi=t=1Tbyt,xt

则可以得到
P ( x ∣ λ ) = ∑ y π y 1 ∏ t = 1 T a y t − 1 , y t ∏ t = 1 T b y t , x t P(\textbf{x}|\lambda)=\sum_{\textbf{y}}\pi_{y_1}\prod_{t=1}^{T}a_{y_{t-1},y_t}\prod_{t=1}^{T}{b_{y_t,x_t}} P(xλ)=yπy1t=1Tayt1,ytt=1Tbyt,xt

其中状态序列 y \textbf{y} y包括 T T T个状态,每个状态又有 N N N种取值可能,因此求和符号中包含 N T N^T NT项,整个计算公式的时间复杂度高达 O ( N T ) O(N^T) O(NT)

前向算法
设前向概率 α t ( j ) = P ( x 1 , . . . , x t , y t = s j ∣ λ ) \alpha_t(j)=P(x_1,...,x_t,y_t=s_j|\lambda) αt(j)=P(x1,...,xt,yt=sjλ),则有
P ( x ∣ λ ) = ∑ i = 1 N P ( x , y T = s i ∣ λ ) = ∑ i = 1 N α T ( i ) P(\textbf{x}|\lambda)=\sum_{i=1}^{N}{P(\textbf{x},y_T=s_i|\lambda)}=\sum_{i=1}^{N}{\alpha_{T}(i)} P(xλ)=i=1NP(x,yT=siλ)=i=1NαT(i)

可知 α 1 ( i ) = P ( x 1 , y 1 = s i ∣ λ ) = P ( y 1 = s i ) ⋅ P ( x 1 ∣ y 1 = s i , λ ) = π i b i , x 1 \alpha_1(i)=P(x_1,y_1=s_i|\lambda)=P(y_1=s_i) \cdot P(x_1|y_1=s_i,\lambda)=\pi_{i}b_{i,x_1} α1(i)=P(x1,y1=siλ)=P(y1=si)P(x1y1=si,λ)=πibi,x1
现在只需求出 α t ( i ) \alpha_t(i) αt(i) α t + 1 ( i ) \alpha_{t+1}(i) αt+1(i)之间的关系式:
α t + 1 ( j ) = P ( x 1 , . . . , x t + 1 , y t + 1 = s j ∣ λ ) = ∑ i = 1 N P ( x 1 , . . . , x t + 1 , y t + 1 = s j , y t = s i ∣ λ ) = ∑ i = 1 N P ( x t + 1 ∣ x 1 , . . . , x t , y t + 1 = s j , y t = s i , λ ) ⋅ P ( x 1 , . . . , x t , y t + 1 = s j , y t = s i ∣ λ ) = ∑ i = 1 N P ( x t + 1 ∣ y t + 1 = s j ) ⋅ P ( x 1 , . . . , x t , y t + 1 = s j , y t = s i ∣ λ ) ( 假 设 1 ) = ∑ i = 1 N P ( x t + 1 ∣ y t + 1 = s j ) ⋅ P ( y t + 1 = s j ∣ x 1 , . . . , x t , y t = s i , λ ) ⋅ P ( x 1 , . . . , x t , y t = s i ∣ λ ) = ∑ i = 1 N P ( x t + 1 ∣ y t + 1 = s j ) ⋅ P ( y t + 1 = s j ∣ y t = s i ) ⋅ P ( x 1 , . . . , x t , y t = s i ∣ λ ) ( 假 设 2 ) = b j , x t + 1 ∑ i = 1 N a i j α t ( i ) \begin{aligned} \alpha_{t+1}(j)&=P(x_1,...,x_{t+1},y_{t+1}=s_j|\lambda)=\sum_{i=1}^N{P(x_1,...,x_{t+1},y_{t+1}=s_j,y_t=s_i|\lambda)}\\ &=\sum_{i=1}^N{P(x_{t+1}|x_1,...,x_t,y_{t+1}=s_j,y_t=s_i,\lambda)} \cdot P(x_1,...,x_t,y_{t+1}=s_j,y_t=s_i|\lambda)\\ &=\sum_{i=1}^N{P(x_{t+1}|y_{t+1}=s_j)} \cdot P(x_1,...,x_t,y_{t+1}=s_j,y_t=s_i|\lambda) (假设1)\\ &=\sum_{i=1}^N{P(x_{t+1}|y_{t+1}=s_j)} \cdot P(y_{t+1}=s_j|x_1,...,x_t,y_t=s_i,\lambda) \cdot P(x_1,...,x_t,y_t=s_i|\lambda)\\ &=\sum_{i=1}^N{P(x_{t+1}|y_{t+1}=s_j)} \cdot P(y_{t+1}=s_j|y_t=s_i) \cdot P(x_1,...,x_t,y_t=s_i|\lambda)(假设2)\\ &=b_{j,x_{t+1}}\sum_{i=1}^Na_{ij}\alpha_t(i) \end{aligned} αt+1(j)=P(x1,...,xt+1,yt+1=sjλ)=i=1NP(x1,...,xt+1,yt+1=sj,yt=siλ)=i=1NP(xt+1x1,...,xt,yt+1=sj,yt=si,λ)P(x1,...,xt,yt+1=sj,yt=siλ)=i=1NP(xt+1yt+1=sj)P(x1,...,xt,yt+1=sj,yt=siλ)(1)=i=1NP(xt+1yt+1=sj)P(yt+1=sjx1,...,xt,yt=si,λ)P(x1,...,xt,yt=siλ)=i=1NP(xt+1yt+1=sj)P(yt+1=sjyt=si)P(x1,...,xt,yt=siλ)(2)=bj,xt+1i=1Naijαt(i)

前向算法求解步骤如下:
step1 初始化
α 1 ( i ) = π i b j 1 , i = 1 , 2 , . . . , N \alpha_1(i)=\pi_{i}b_{j1}, i=1,2,...,N α1(i)=πibj1,i=1,2,...,N
step2 从前向后,逐步递推求
α t + 1 ( i ) = b j , x t + 1 ∑ i = 1 N a i j α t ( i ) , t = 1 , . . . , T − 1 \alpha_{t+1}(i)=b_{j,x_{t+1}}\sum_{i=1}^Na_{ij}\alpha_t(i),t=1,...,T-1 αt+1(i)=bj,xt+1i=1Naijαt(i),t=1,...,T1
step3 对 T T T时刻的所有前向概率求和
P ( x ∣ λ ) = ∑ i = 1 N α T ( i ) P(\textbf{x}|\lambda)=\sum_{i=1}^{N}{\alpha_{T}(i)} P(xλ)=i=1NαT(i)

后向算法
设后向概率 β t ( i ) = P ( x t + 1 , . . . , x T ∣ y t = s i , λ ) \beta_t(i)=P(x_{t+1},...,x_T|y_t=s_i,\lambda) βt(i)=P(xt+1,...,xTyt=si,λ),则有
P ( x ∣ λ ) = ∑ i = 1 N P ( x ∣ y 1 = s i , λ ) ⋅ P ( y 1 = s i ∣ λ ) = ∑ i = 1 N P ( x 1 ∣ x 2 , . . . , x T , y 1 = s i , λ ) ⋅ P ( x 2 , . . . , x T ∣ y 1 = s i , λ ) ⋅ π i = ∑ i = 1 N π i P ( x 1 ∣ y 1 = s i ) β 1 ( i ) ( 假 设 2 ) = ∑ i = 1 N π i b i , x 1 β 1 ( i ) \begin{aligned} P(\textbf{x}|\lambda)&=\sum_{i=1}^{N}{P(\textbf{x}|y_1=s_i,\lambda) \cdot P(y_1=s_i|\lambda)}\\ &=\sum_{i=1}^{N}{P(x1|x_2,...,x_T,y_1=s_i,\lambda) \cdot P(x_2,...,x_T|y_1=s_i,\lambda)} \cdot \pi_i\\ &=\sum_{i=1}^{N}{\pi_iP(x_1|y_1=s_i)}\beta_1(i)(假设2)\\ &=\sum_{i=1}^{N}{\pi_i b_{i,x_1} \beta_1(i)} \end{aligned} P(xλ)=i=1NP(xy1=si,λ)P(y1=siλ)=i=1NP(x1x2,...,xT,y1=si,λ)P(x2,...,xTy1=si,λ)πi=i=1NπiP(x1y1=si)β1(i)(2)=i=1Nπibi,x1β1(i)

同理去求 β t ( i ) \beta_t(i) βt(i) β t + 1 ( i ) \beta_{t+1}(i) βt+1(i)之间的关系式:
β t ( i ) = P ( x t + 1 , . . . , x T ∣ y t = s i , λ ) = ∑ j = 1 N P ( x t + 1 , . . . , x T , y t + 1 = s j ∣ y t = s i , λ ) = ∑ j = 1 N P ( x t + 1 , . . . , x T ∣ y t + 1 = s j , y t = s i , λ ) ⋅ P ( y t + 1 = s j ∣ y t = s i , λ ) = ∑ j = 1 N P ( x t + 1 , . . . , x T ∣ y t + 1 = s j , λ ) ⋅ a i j ( 条 件 独 立 性 ) = ∑ j = 1 N P ( x t + 1 ∣ x t + 2 , . . . , x T , y t + 1 = s j , λ ) ⋅ P ( x t + 2 , . . . , x T ∣ y t + 1 = s j , λ ) ⋅ a i j = ∑ j = 1 N P ( x t + 1 ∣ y t + 1 = s j ) ⋅ β t + 1 ( j ) ⋅ a i j ( 假 设 2 ) = ∑ j = 1 N a i j b j , x t + 1 β t + 1 ( j ) \begin{aligned} \beta_t(i)&=P(x_{t+1},...,x_T|y_t=s_i,\lambda)\\ &=\sum_{j=1}^{N}{P(x_{t+1},...,x_T,y_{t+1}=s_j|y_t=s_i,\lambda)}\\ &=\sum_{j=1}^{N}{P(x_{t+1},...,x_T|y_{t+1}=s_j,y_t=s_i,\lambda) \cdot P(y_{t+1}=s_j|y_t=s_i,\lambda)}\\ &=\sum_{j=1}^{N}{P(x_{t+1},...,x_T|y_{t+1}=s_j,\lambda)} \cdot a_{ij}(条件独立性)\\ &=\sum_{j=1}^{N}{P(x_{t+1}|x_{t+2},...,x_T,y_{t+1}=s_j,\lambda)} \cdot P(x_{t+2},...,x_T|y_{t+1}=s_j,\lambda) \cdot a_{ij}\\ &=\sum_{j=1}^{N}{P(x_{t+1}|y_{t+1}=s_j)} \cdot \beta_{t+1}(j)\cdot a_{ij}(假设2)\\ &=\sum_{j=1}^{N}{a_{ij}b_{j,x_{t+1}}\beta_{t+1}(j)} \end{aligned} βt(i)=P(xt+1,...,xTyt=si,λ)=j=1NP(xt+1,...,xT,yt+1=sjyt=si,λ)=j=1NP(xt+1,...,xTyt+1=sj,yt=si,λ)P(yt+1=sjyt=si,λ)=j=1NP(xt+1,...,xTyt+1=sj,λ)aij()=j=1NP(xt+1xt+2,...,xT,yt+1=sj,λ)P(xt+2,...,xTyt+1=sj,λ)aij=j=1NP(xt+1yt+1=sj)βt+1(j)aij(2)=j=1Naijbj,xt+1βt+1(j)

后向算法求解步骤如下:
step1 初始化,定义
β T ( i ) = 1 \beta_T(i)=1 βT(i)=1
step2 从后向前,逐步递推求
β t ( i ) = ∑ j = 1 N a i j b j , x t + 1 β t + 1 ( j ) , t = T − 1 , T − 2 , . . . , 1 \beta_t(i)=\sum_{j=1}^{N}{a_{ij}b_{j,x_{t+1}}\beta_{t+1}(j)},t=T-1,T-2,...,1 βt(i)=j=1Naijbj,xt+1βt+1(j),t=T1,T2,...,1
step3 将初始时刻的后向概率带入
β t ( i ) = = ∑ i = 1 N π i b i , x 1 β 1 ( i ) \beta_t(i)==\sum_{i=1}^{N}{\pi_i b_{i,x_1} \beta_1(i)} βt(i)==i=1Nπibi,x1β1(i)

解码问题

已知 λ \lambda λ x \textbf{x} x,求定义 y ^ = arg ⁡ max ⁡ y P ( y ∣ λ , x ) \widehat{y}=\mathop{\arg\max}\limits_{\textbf{y}}{P(\textbf{y}|\lambda,\textbf{x})} y =yargmaxP(yλ,x),即根据观测序列求隐藏的模型状态。常用求解方法有维特比(viterbi)方法。

评估问题中,提到了状态序列 y \textbf{y} y包括 T T T个状态,每个状态又有 N N N种取值可能,那么 y \textbf{y} y就有 T N T^N TN种表示形式。对于解码问题,所求即在所有表现形式中找到对应概率最大的一种。可以采用动态规划的思想,将所求状态序列看作是参数空间中的一个路径,每个状态是路径上的一个节点(注意不是每个时刻),即用动态规划求概率最大路径,也就是维特比方法。

定义在时刻 t t t状态为 s i s_i si的所有单个路径 ( y 1 , y 2 , . . . , y t ) (y_1,y_2,...,y_t) (y1,y2,...,yt)中概率最大值为
δ t ( i ) = max ⁡ y 1 , ⋯   , y t − 1 p ( y 1 , ⋯   , y t − 1 , y t = s i , x 1 , ⋯   , x t ∣ λ ) , i = 1 , 2 , ⋯   , N \delta_{t}(i)=\max\limits_{y_1,\cdots,y_{t-1}}p(y_1,\cdots,y_{t-1},y_t=s_i,x_1,\cdots,x_t|\lambda),i=1,2,\cdots,N δt(i)=y1,,yt1maxp(y1,,yt1,yt=si,x1,,xtλ),i=1,2,,N
根据动态规划原理,最优路径具有最优路径中的部分路径仍是最优路径的特性。参考资料[2]中第208页有更具体的描述,参考资料[7]用图给出了更加直观易懂的解释。

可得变量 δ \delta δ的递推公式:
δ t + 1 ( i ) = max ⁡ 1 ≤ j ≤ N [ δ t ( j ) a j i ] b i , x t + 1 \delta_{t+1}(i)=\max\limits_{1\le j \le N}{[\delta_t(j)a_{ji}]b_{i,x_{t+1}}} δt+1(i)=1jNmax[δt(j)aji]bi,xt+1

注意到 b i , x t + 1 b_{i,x_{t+1}} bi,xt+1的值与 j j j的取值无关。另定义在时刻 t t t状态为 s i s_i si的所有单个路径 ( y 1 , y 2 , . . . , y t ) (y_1,y_2,...,y_t) (y1,y2,...,yt)中概率最大的路径的第 t − 1 t-1 t1个结点为
Ψ t ( i ) = arg ⁡ max ⁡ 1 ≤ j ≤ N [ δ t − 1 ( j ) a j i ] \Psi_{t}(i)=\mathop{\arg\max}\limits_{1\le j \le N}[\delta_{t-1}(j)a_{ji}] Ψt(i)=1jNargmax[δt1(j)aji]

维特比算法求解步骤如下:
step1 初始化,定义
δ 1 ( i ) = π i b i , x 1 \delta_1(i)=\pi_i b_{i,x_1} δ1(i)=πibi,x1
step2 递推求最大概率 δ t ( i ) \delta_{t}(i) δt(i)和结点 Ψ t ( i ) \Psi_{t}(i) Ψt(i)
step3 回溯求最优路径的各结点
i T ∗ = arg ⁡ max ⁡ 1 ≤ j ≤ N [ δ T ( j ) ] i_T^{*}=\mathop{\arg\max}\limits_{1\le j \le N}[\delta_T(j)] iT=1jNargmax[δT(j)]
i t ∗ = Ψ t + 1 ( i t + 1 ∗ ) i_t^*=\Psi_{t+1}(i_{t+1}^*) it=Ψt+1(it+1)

学习问题

已知 x \textbf{x} x,求 λ ^ = arg ⁡ max ⁡ λ P ( x ∣ λ ) \widehat{\lambda}=\mathop{\arg\max}\limits_{\lambda}{P(\textbf{x}|\lambda)} λ =λargmaxP(xλ)。即训练模型使其能最好地描述观测数据。常用求解方法有Baum-Welch算法。

Baum-Welch算法
类似于EM算法,有参数 θ \theta θ的迭代公式如下所示:
λ t + 1 = arg ⁡ max ⁡ λ ∑ y log ⁡ P ( x , y ∣ λ ) P ( y ∣ x , λ t ) = arg ⁡ max ⁡ λ ∑ y log ⁡ P ( x , y ∣ λ ) P ( x , y ∣ λ t ) \begin{aligned} \lambda^{t+1}&=\mathop{\arg\max}\limits_{\lambda}\sum\limits_{\textbf{y}}\log P(\textbf{x},\textbf{y}|\lambda)P(\textbf{y}|\textbf{x},\lambda^t)\\ &=\mathop{\arg\max}\limits_\lambda\sum\limits_\textbf{y}\log P(\textbf{x},\textbf{y}|\lambda)P(\textbf{x},\textbf{y}|\lambda^t) \end{aligned} λt+1=λargmaxylogP(x,yλ)P(yx,λt)=λargmaxylogP(x,yλ)P(x,yλt)

第二个等号是因为 P ( y ∣ x , λ t ) = P ( x , y ∣ λ t ) / P ( x ∣ λ t ) P(\textbf{y}|\textbf{x},\lambda^t)=P(\textbf{x},\textbf{y}|\lambda^t)/P(\textbf{x}|\lambda^t) P(yx,λt)=P(x,yλt)/P(xλt)中的分母与 λ \lambda λ无关, λ t \lambda^t λt是常数而 λ \lambda λ是变量。

定义函数
Q ( λ ∣ λ t ) = ∑ y log ⁡ P ( x , y ∣ λ ) P ( x , y ∣ λ t ) = ∑ y [ l o g π y 1 + l o g ∏ t = 1 T a y t − 1 , y t + l o g ∏ t = 1 T b y t , x t ] P ( x , y ∣ λ t ) \begin{aligned} Q(\lambda|\lambda^t)&=\sum\limits_{\textbf{y}}\log P(\textbf{x},\textbf{y}|\lambda)P(\textbf{x},\textbf{y}|\lambda^t)\\ &=\sum_{\textbf{y}}{[log{\pi_{y_1}}+log{\prod_{t=1}^{T}a_{y_{t-1},y_t}}+log{\prod_{t=1}^{T}{b_{y_t,x_t}}]}P(\textbf{x},\textbf{y}|\lambda^t)} \end{aligned} Q(λλt)=ylogP(x,yλ)P(x,yλt)=y[logπy1+logt=1Tayt1,yt+logt=1Tbyt,xt]P(x,yλt)

以参数 π \pi π为例,有迭代式
π t + 1 = arg ⁡ max ⁡ π ∑ y l o g π y 1 P ( x , y ∣ λ t ) = arg ⁡ max ⁡ π ∑ y 1 ∑ y 2 . . . ∑ y T l o g π y 1 P ( x , y 1 , . . . , y T ∣ λ t ) = arg ⁡ max ⁡ π ∑ y 1 [ l o g π y 1 P ( x , y 1 ∣ λ t ) ] ( 边 缘 分 布 思 想 ) = arg ⁡ max ⁡ π ∑ i = 1 N l o g π i P ( x , y 1 = s i ∣ λ t ) \begin{aligned} \pi_{t+1}&=\mathop{\arg\max}\limits_{\pi}\sum_{\textbf{y}}{log{\pi_{y_1}}}P(\textbf{x},\textbf{y}|\lambda^t) \\ &=\mathop{\arg\max}\limits_{\pi}\sum_{y_1}\sum_{y_2}...\sum_{y_T}{log{\pi_{y_1}}P(\textbf{x},y_1,...,y_T|\lambda^t)}\\ &=\mathop{\arg\max}\limits_{\pi}\sum_{y_1}[log{\pi_{y_1}}P(\textbf{x},y_1|\lambda^t)](边缘分布思想)\\ &=\mathop{\arg\max}\limits_{\pi}\sum_{i=1}^{N}{log_{\pi_{i}}P(\textbf{x},y_1=s_i|\lambda^t)} \end{aligned} πt+1=πargmaxylogπy1P(x,yλt)=πargmaxy1y2...yTlogπy1P(x,y1,...,yTλt)=πargmaxy1[logπy1P(x,y1λt)]()=πargmaxi=1NlogπiP(x,y1=siλt)

另外根据 π \pi π的定义,有约束式 ∑ i π i = 1 \sum_{i}{\pi_i}=1 iπi=1,则有拉格朗日函数:
L ( π , η ) = ∑ i = 1 N l o g π i P ( x , y 1 = s i ∣ λ t ) + η ( ∑ i = 1 N π i − 1 ) L(\pi,\eta)=\sum_{i=1}^{N}{log_{\pi_{i}}P(\textbf{x},y_1=s_i|\lambda^t)+\eta(\sum_{i=1}^{N}{\pi_i}-1)} L(π,η)=i=1NlogπiP(x,y1=siλt)+η(i=1Nπi1)

对其求偏导可得
∂ L ∂ π i = 1 π i P ( x , y 1 = s i ∣ λ t ) + η = 0 \frac{\partial{L}}{\partial{\pi_i}}=\frac{1}{\pi_i}P(\textbf{x},y_1=s_i|\lambda^t)+\eta=0 πiL=πi1P(x,y1=siλt)+η=0

∑ i = 1 N P ( x , y 1 = s i ∣ λ t ) + π i η = 0 ⇒ η = − P ( x ∣ λ t ) \sum\limits_{i=1}^NP(\textbf{x},y_1=s_i|\lambda^t)+\pi_i\eta=0\Rightarrow \eta=-P(\textbf{x}|\lambda^t) i=1NP(x,y1=siλt)+πiη=0η=P(xλt)

综合上面两式,最终可得
π i t + 1 = P ( x , y 1 = s i ∣ λ t ) p ( x ∣ λ t ) \pi_i^{t+1}=\frac{P(\textbf{x},y_1=s_i|\lambda^t)}{p(\textbf{x}|\lambda^t)} πit+1=p(xλt)P(x,y1=siλt)

参考资料

[1]《机器学习》周志华

[2] 《统计学习方法(第2版)》 李航

[3] 哔哩哔哩-shuhuai008-机器学习白板推导系列

[4]github-tsyw-MachineLearningNotes

[5] 百度百科-隐马尔可夫模型

[6] 博客-liuwu265-隐马尔可夫模型(HMM)原理

[7] 知乎-路生-如何通俗地讲解 viterbi 算法

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值