隐马尔可夫模型(HMM)个人笔记整理

隐马尔可夫模型(HMM)

本文源自于笔记整理

参考资料如下:

发现一个大佬的笔记 全系列都有

https://www.yuque.com/books/share/f4031f65-70c1-4909-ba01-c47c31398466?#

机器学习白板推导系列:

https://www.bilibili.com/video/BV1MW41167Rf

1.背景介绍

可以看这个 HMM概述:

https://blog.csdn.net/weixin_30642869/article/details/97254733

HMM在DL前中的NLP占据重要的地位

机器学习:

1.频率派——统计机器学习:核心问题是优化问题,把loss function定义出来:

1)定义model

2)strategy: loss function

3)求解;algorithm: GD SGD 牛顿法 拟牛顿法

2.贝叶斯派——概率图模型:核心问题是推断,求后验概率,引申为积分问题,可以采用数值积分方法 MCMC(蒙特卡洛方法)求解

HMM属于概率图模型

在这里插入图片描述

概率图根据有向图和无向图分为两种:

有向:BN

无相MRF(MN)

加入了时间这个因素后,变为动态模型:HMM、卡尔曼滤波、粒子滤波等模型

我们通常说的模型,例如GMM高斯混合模型

有N个样本 x1…xN 独立同分布于一个概率分布

但是动态模型,就可以认为是普通模型加上了时间序列(这个"时间"可以是真正的时间,可以是一个抽象的,可以是一段话一个句子一个序列)

这种动态模型的特点:

(1)样本与样本之间不是iid(独立同分布)

(2)往往是混合的。

往往含有观测变量和系统状态(又叫隐变量)

在这里插入图片描述

从这个图来看 动态模型包含两个层面的东西:

(1)时间time(体现在图的横向随"时间"的变换)

(2)混合mixture(体现在观测变量和隐变量的关系)

进一步对动态模型按系统状态来划分:

系统状态为离散:HMM

系统状态为连续:线性:KF Kalman Filter

非线性:PF Particle Filter

HMM的概率图:

在这里插入图片描述

一般用阴影结点表示观测变量 白色的结点表示隐变量

time + mixture

模型表达形式:

λ = ( π , A , B ) \lambda=(\pi,A,B) λ=(π,A,B)

π A B是三个参数

λ就表示HMM的参数,在这里是一个由π A B组成的三元组

π是初始概率分布

A是状态转移矩阵 transition matrix

B是发射矩阵 emission matrix 表达状态变量到观测变量间的关系

我们用以下符号表示:

下面使用 o t o_t ot 表示观测变量, O O O 为观测序列, V = { v 1 , v 2 , ⋯   , v M } V=\{v_1,v_2,\cdots,v_M\} V={v1,v2,,vM} 表示观测的值域, i t i_t it 表示状态变量, I I I 为状态序列, Q = { q 1 , q 2 , ⋯   , q N } Q=\{q_1,q_2,\cdots,q_N\} Q={q1,q2,,qN} 表示状态变量的值域。定义 A = ( a i j = p ( i t + 1 = q j ∣ i t = q i ) ) A=(a_{ij}=p(i_{t+1}=q_j|i_t=q_i)) A=(aij=p(it+1=qjit=qi)) 表示状态转移矩阵, B = ( b j ( k ) = p ( o t = v k ∣ i t = q j ) ) B=(b_j(k)=p(o_t=v_k|i_t=q_j)) B=(bj(k)=p(ot=vkit=qj)) 表示发射矩阵。

aij表示t时刻,状态i转移到j的概率

bj(k)表示观测为qj时,状态为vk的概率

HMM中的两个假设:

(1)齐次markov假设

即无后效性:

给定当前时刻,未来与过去无关,只依赖于当前。

用数学表达式表达为:
p ( i t + 1 ∣ i t , i t − 1 , ⋯   , i 1 , o t , o t − 1 , ⋯   , o 1 ) = p ( i t + 1 ∣ i t ) p(i_{t+1}|i_t,i_{t-1},\cdots,i_1,o_t,o_{t-1},\cdots,o_1)=p(i_{t+1}|i_t) p(it+1it,it1,,i1,ot,ot1,,o1)=p(it+1it)
(2)观测独立假设
p ( o t ∣ i t , i t − 1 , ⋯   , i 1 , o t − 1 , ⋯   , o 1 ) = p ( o t ∣ i t ) p(o_t|i_t,i_{t-1},\cdots,i_1,o_{t-1},\cdots,o_1)=p(o_t|i_t) p(otit,it1,,i1,ot1,,o1)=p(otit)
HMM要解决的三个问题:

Evaluation问题: p ( O ∣ λ ) p(O|\lambda) p(Oλ),常用算法为 前向/后向算法

learning问题: λ = a r g m a x λ p ( O ∣ λ ) \lambda=\mathop{argmax}\limits_{\lambda}p(O|\lambda) λ=λargmaxp(Oλ),常用算法为 EM算法(Bomm Welch)

decoding问题: I = a r g m a x I p ( I ∣ O , λ ) I=\mathop{argmax}\limits_{I}p(I|O,\lambda) I=Iargmaxp(IO,λ),找到一个状态序列I(O是观测序列),使得 P ( I ∣ O ) P(I|O) P(IO)最大,常用算法为Viterbi算法

decoding问题可以进一步细分为:

(1)预测问题:已知O,求 p ( i t + 1 ∣ o 1 , o 2 , ⋯   , o t ) p(i_{t+1}|o_1,o_2,\cdots,o_t) p(it+1o1,o2,,ot) 即已知观测序列,预测下一个时刻的隐状态

(2)滤波问题,已知O,求 p ( i t ∣ o 1 , o 2 , ⋯   , o t ) p(i_t|o_1,o_2,\cdots,o_t) p(ito1,o2,,ot) 即已知O,求it

【一般HMM不会求滤波问题 一般是动态模型中的Kalman Filter和Particle Filter来求】

再回顾一下这个图

在这里插入图片描述

2.evaluation问题——前向算法

Evaluation问题:given λ,求P(O|λ)

首先对这个P(O|λ)计算:

这里等于对I求积分(这里因为是离散的 也就可以看成求和)
p ( O ∣ λ ) = ∑ I p ( I , O ∣ λ ) = ∑ I p ( O ∣ I , λ ) p ( I ∣ λ ) p(O|\lambda)=\sum\limits_{I}p(I,O|\lambda)=\sum\limits_{I}p(O|I,\lambda)p(I|\lambda) p(Oλ)=Ip(I,Oλ)=Ip(OI,λ)p(Iλ)
这里最后一步是联合概率的乘法

*补充:联合概率的链式法则

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K3mbf2Nr-1597798017524)(RackMultipart20200818-4-1sjayt6_html_c436d738c1e5ccc1.png)]

这个概率图横向的箭头就代表aij(就是转移矩阵)
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 ∣ λ ) p(I|\lambda)=p(i_1,i_2,\cdots,i_t|\lambda)=p(i_t|i_1,i_2,\cdots,i_{t-1},\lambda)p(i_1,i_2,\cdots,i_{t-1}|\lambda) p(Iλ)=p(i1,i2,,itλ)=p(iti1,i2,,it1,λ)p(i1,i2,,it1λ)
利用齐次假设,然后后面继续递归写:
p ( i t ∣ i 1 , i 2 , ⋯   , i t − 1 , λ ) = p ( i t ∣ i t − 1 ) = a i t − 1 i t p(i_t|i_1,i_2,\cdots,i_{t-1},\lambda)=p(i_t|i_{t-1})=a_{i_{t-1}i_t} p(iti1,i2,,it1,λ)=p(itit1)=ait1it
最后等于:

在这里插入图片描述

即:
p ( I ∣ λ ) = π 1 ∏ t = 2 T a i t − 1 , i t p(I|\lambda)=\pi_1\prod\limits_{t=2}^Ta_{i_{t-1},i_t} p(Iλ)=π1t=2Tait1,it
【这上面π1应该是πi1哈 写错了】

同理 根据观测独立假设:
p ( O ∣ I , λ ) = ∏ t = 1 T b i t ( o t ) p(O|I,\lambda)=\prod\limits_{t=1}^Tb_{i_t}(o_t) p(OI,λ)=t=1Tbit(ot)

p ( O ∣ λ ) = ∑ I π i 1 ∏ t = 2 T a i t − 1 , i t ∏ t = 1 T b i t ( o t ) p(O|\lambda)=\sum\limits_{I}\pi_{i_1}\prod\limits_{t=2}^Ta_{i_{t-1},i_t}\prod\limits_{t=1}^Tb_{i_t}(o_t) p(Oλ)=Iπi1t=2Tait1,itt=1Tbit(ot)
这里这个大I求和符号实际上是T个求和符号

这里这个大I求和是对 联合分布 求和得到 边缘分布

在这里插入图片描述
这里有T个求和符号,对每个i都有N种取值情况,所以这个式子是N^T的复杂度的

下面我们来介绍前向算法来计算这个式子:

在这里插入图片描述

下面,记 α t ( i ) = p ( o 1 , o 2 , ⋯   , o t , i t = q i ∣ λ ) \alpha_t(i)=p(o_1,o_2,\cdots,o_t,i_t=q_i|\lambda) αt(i)=p(o1,o2,,ot,it=qiλ),所以, α T ( i ) = p ( O , i T = q i ∣ λ ) \alpha_T(i)=p(O,i_T=q_i|\lambda) αT(i)=p(O,iT=qiλ)。我们看到:
p ( O ∣ λ ) = ∑ i = 1 N p ( O , i T = q i ∣ λ ) = ∑ i = 1 N α T ( i ) p(O|\lambda)=\sum\limits_{i=1}^Np(O,i_T=q_i|\lambda)=\sum\limits_{i=1}^N\alpha_T(i) p(Oλ)=i=1Np(O,iT=qiλ)=i=1NαT(i)
α \alpha α也就是图中虚线这一块的联合概率(这里i代表第i个状态 t代表t时刻)
p ( O ∣ λ ) = ∑ i = 1 N p ( O , i T = q i ∣ λ ) p(O|\lambda)=\sum\limits_{i=1}^Np(O,i_T=q_i|\lambda) p(Oλ)=i=1Np(O,iT=qiλ)这里就是联合分布对一个变量求积分求得边缘分布

下面来看 α \alpha α怎么方便计算(找到一个前向和后向关联的 迭代的公式)

所以看t+1

在这里插入图片描述

上面利用了齐次 Markov 假设得到了一个递推公式,这个算法叫做前向算法。

【这里还用了一个齐次markov假设化简】

对于evaluation问题,一般就用前向算法

3.evaluation问题——后向算法

前向算法通过定义了一个 α t ( i ) \alpha_{t}(i) αt(i)的一个式子来递推的

在这里插入图片描述

也就是图中蓝色的部分

后项算法在推导上比较麻烦

在这里插入图片描述

在这里插入图片描述

这里用了一个i从1到N计算边缘概率分布的公式

后面是条件概率的公式

发现后面那一项就是初始概率分布

*这里注意

在这里插入图片描述

初始概率分布可以看成这样的形式 因为I有N个取值

在这里插入图片描述

注意这里面的所有lambda都可以省略 因为lambda是已知的

这里发现P与 β 1 \beta_{1} β1有关

下面我们找通项中前后项的关系(递推关系式)

在这里插入图片描述

以上的总体推导过程为:

在这里插入图片描述

于是后向地得到了第一项。

这里 β \beta β在计算时是从后往前的,也就是从 β t \beta_{t} βt β t − 1 \beta_{t-1} βt1…到 β 1 \beta_{1} β1

有了前向和后项算法,计算的复杂度大大降低了

4. learning问题——EM算法

我们知道:

λ = ( π , A , B ) \lambda=(\pi, A, B) λ=(π,A,B)

要求 π \pi π A B三个参数

首先我们想到用极大似然估计:

λ M L E = a r g m a x λ p ( O ∣ λ ) \lambda_{MLE}=\mathop{argmax}_\lambda p(O|\lambda) λMLE=argmaxλp(Oλ)

使用EM算法(也叫Baum Welch算法),公式为:

θ t + 1 = a r g m a x θ ∫ z log ⁡ p ( X , Z ∣ θ ) p ( Z ∣ X , θ t ) d z \theta^{t+1}=\mathop{argmax}_{\theta}\int_z\log p(X,Z|\theta)p(Z|X,\theta^t)dz θt+1=argmaxθzlogp(X,Zθ)p(ZX,θt)dz

其中X是观测变量,Z是隐变量 θ是参数

X对应O

Z对应I

θ \theta θ对应 λ \lambda λ

故改写为:

λ t + 1 = a r g m a x λ ∑ I log ⁡ p ( O , I ∣ λ ) p ( I ∣ O , λ t ) = a r g m a x λ ∑ I log ⁡ p ( O , I ∣ λ ) p ( O , I ∣ λ t ) \lambda^{t+1}=\mathop{argmax}_\lambda\sum\limits_I\log p(O,I|\lambda)p(I|O,\lambda^t)\\ =\mathop{argmax}_\lambda\sum\limits_I\log p(O,I|\lambda)p(O,I|\lambda^t) λt+1=argmaxλIlogp(O,Iλ)p(IO,λt)=argmaxλIlogp(O,Iλ)p(O,Iλt)

(积分号变连加号,因为是离散随机变量)

这里利用了 p ( O ∣ λ t ) p(O|\lambda^t) p(Oλt) λ \lambda λ 无关。

带入我们之前在Evaluation中推到过的式子把 P ( O , I ) P(O, I) P(O,I)代换掉:

p ( O ∣ λ ) = ∑ I π i 1 ∏ t = 2 T a i t − 1 , i t ∏ t = 1 T b i t ( o t ) p(O|\lambda)=\sum\limits_{I}\pi_{i_1}\prod\limits_{t=2}^Ta_{i_{t-1},i_t}\prod\limits_{t=1}^Tb_{i_t}(o_t) p(Oλ)=Iπi1t=2Tait1,itt=1Tbit(ot)

( P ( O , I ) P(O, I) P(O,I)就是上面这个式子)

∑ I log ⁡ p ( O , I ∣ λ ) p ( O , I ∣ λ 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 ) \sum\limits_I\log p(O,I|\lambda)p(O,I|\lambda^t)=\sum\limits_I[\log \pi_{i_1}+\sum\limits_{t=2}^T\log a_{i_{t-1},i_t}+\sum\limits_{t=1}^T\log b_{i_t}(o_t)]p(O,I|\lambda^t) Ilogp(O,Iλ)p(O,Iλt)=I[logπi1+t=2Tlogait1,it+t=1Tlogbit(ot)]p(O,Iλt)

(log把乘号变成了加号)

由于其他计算比较复杂,这里我们只以π的计算为例推导,A和B的就不推导了,理解思想即可

对于π:

log ⁡ π i 1 + ∑ t = 2 T log ⁡ a i t − 1 , i t + ∑ t = 1 T log ⁡ b i t ( o t ) \log \pi_{i_1}+\sum\limits_{t=2}^T\log a_{i_{t-1},i_t}+\sum\limits_{t=1}^T\log b_{i_t}(o_t) logπi1+t=2Tlogait1,it+t=1Tlogbit(ot)

因为只有第一项与π有关,所以后面两项可以消掉。

在这里插入图片描述

这里把大I写开了

在这里插入图片描述

发现:除了i1以外,从i2到iT 只有这个P里面有i2到iT

看做求 i 1 i_{1} i1的边缘分布,就可以消掉 i 2 i_{2} i2 i T i_{T} iT,得到:

π t + 1 = a r g m a x π ∑ i 1 [ log ⁡ π i 1 ⋅ p ( O , i 1 ∣ λ t ) ] \pi^{t+1}=\mathop{argmax}_\pi\sum\limits_{i_1}[\log \pi_{i_1}\cdot p(O,i_1|\lambda^t)] πt+1=argmaxπi1[logπi1p(O,i1λt)]

i 1 i_{1} i1替换符号 求和写成i=1到N

在这里插入图片描述

这里的i是状态的下标 即

在这里插入图片描述

同时πi也已经有定义了(这些都是第一节讲的)

π i = P ( i 1 = q i ) \pi_{i}=P(i_{1}=q_{i}) πi=P(i1=qi)

因为π是概率分布,所以有约束: ∑ i π i = 1 \sum\limits_i\pi_i=1 iπi=1

有约束 所以我们用拉格朗日乘子法

定义Lagrange函数:

L ( π , η ) = ∑ i = 1 N log ⁡ π i ⋅ p ( O , i 1 = q i ∣ λ t ) + η ( ∑ i = 1 N π i − 1 ) L(\pi,\eta)=\sum\limits_{i=1}^N\log \pi_i\cdot p(O,i_1=q_i|\lambda^t)+\eta(\sum\limits_{i=1}^N\pi_i-1) L(π,η)=i=1Nlogπip(O,i1=qiλt)+η(i=1Nπi1)

后一项是把约束加进去的。

η是超参数

对πi求偏导

∂ L ∂ π i = 1 π i p ( O , i 1 = q i ∣ λ t ) + η = 0 \frac{\partial L}{\partial\pi_i}=\frac{1}{\pi_i}p(O,i_1=q_i|\lambda^t)+\eta=0 πiL=πi1p(O,i1=qiλt)+η=0

即:

P ( O , i 1 = q i ∣ λ t ) + π i η = 0 P(O, i_{1}=q_{i}|\lambda^t) + \pi_{i}\eta = 0 P(O,i1=qiλt)+πiη=0

利用条件:

s . t . ∑ i = 1 N π i = 1 \mathrm{ s.t. }\sum\limits_{i=1}^N\pi_i=1 s.t.i=1Nπi=1

式子两边同时求和(i从1到N):

P ( O ∣ λ t ) + η = 0 P(O|\lambda^t)+\eta=0 P(Oλt)+η=0

所以:

η = − p ( O ∣ λ t ) \eta=-p(O|\lambda^t) η=p(Oλt)

再把 η \eta η带入式子中,解得 π i \pi_{i} πi

π i t + 1 = p ( O , i 1 = q i ∣ λ t ) p ( O ∣ λ t ) \pi_i^{t+1}=\frac{p(O,i_1=q_i|\lambda^t)}{p(O|\lambda^t)} πit+1=p(Oλt)p(O,i1=qiλt)

A和B就不做过多推导了

5.decoding问题——Viterbi算法

Decoding 问题表述为:
I = a r g m a x I p ( I ∣ O , λ ) I=\mathop{argmax}\limits_{I}p(I|O,\lambda) I=Iargmaxp(IO,λ)
我们需要找到一个序列,其概率最大,这个序列就是在参数空间中的一个路径,可以采用动态规划的思想。

很多人吧decoding叫做预测问题

但个人偏向于叫做解码问题

因为预测问题是:

给定T时刻,求T+1的后验概率

decoding也是求后验概率,但是求的是完整i1到it的序列 所以用decoding这个术语更贴切

在这里插入图片描述

我们给定一个观测序列I,求得一个最有可能出现的I(隐状态)序列

在这里插入图片描述

由于这里Q是I的值域,那么对于每一个i 都有q1…qN个值的选择

在这里插入图片描述

假如说随便组合,一共有T个i的话,就是N^T 指数级种组合方式

我们就是要从N^T个序列中挑出一个序列,使得后验概率最大。

这实际是一个动态规划问题

在这里插入图片描述

比如我们的序列的取值是这样这样取的

动态规划问题就是比如:路径规划 比如有N个车站,先到哪个车站 怎么走怎么走 找一个最短路径。。。只不过这里是找一个最大概率

q1->q2对应 P ( q 2 ∣ q 1 ) P(q2|q1) P(q2q1)

我们把概率类比成距离

比如距离=1/概率

意思就是概率越大距离越短 路径就最优

定义:
δ t ( j ) = max ⁡ i 1 , ⋯   , i t − 1 p ( o 1 , ⋯   , o t , i 1 , ⋯   , i t − 1 , i t = q i ) \delta_{t}(j)=\max\limits_{i_1,\cdots,i_{t-1}}p(o_1,\cdots,o_t,i_1,\cdots,i_{t-1},i_t=q_i) δt(j)=i1,,it1maxp(o1,,ot,i1,,it1,it=qi)

o1…ot已知

这个式子的意思就是到qi这个点的最大概率的概率值

下面找递推式:

δ t + 1 ( j ) = max ⁡ i 1 , i 2 , . . . , i n P ( O 1 , O 2 , . . . , O t , O t + 1 , i 1 , i 2 , . . . , i t , i t + 1 = q j ) \delta_{t+1}(j)=\max\limits_{i_{1}, i_{2}, ... ,i_{n}}P(O_{1}, O_{2}, ..., O_{t}, O_{t+1}, i_{1}, i_{2}, ..., i_{t}, i_{t+1}=q_{j}) δt+1(j)=i1,i2,...,inmaxP(O1,O2,...,Ot,Ot+1,i1,i2,...,it,it+1=qj)

在这里插入图片描述

在这里插入图片描述

从上图看,就是前面的N种情况转移到qj的概率中的最大值

最后得出:

δ t ( j ) = max ⁡ i 1 , ⋯   , i t − 1 p ( o 1 , ⋯   , o t , i 1 , ⋯   , i t − 1 , i t = q i ) \delta_{t}(j)=\max\limits_{i_1,\cdots,i_{t-1}}p(o_1,\cdots,o_t,i_1,\cdots,i_{t-1},i_t=q_i) δt(j)=i1,,it1maxp(o1,,ot,i1,,it1,it=qi)

这个式子就是从上一步到下一步的概率再求最大值。记这个路径为:
ψ t + 1 ( j ) = a r g m a x 1 ≤ i ≤ N δ t ( i ) a i j ψ t + 1 ( j ) = a r g m a x 1 ≤ i ≤ N δ t ( i ) a i j \psi_{t+1}(j)=\mathop{argmax}\limits_{1\le i\le N}\delta_t(i)a_{ij}\psi_{t+1}(j)=\mathop{argmax}\limits_{1\le i\le N}\delta_t(i)a_{ij} ψt+1(j)=1iNargmaxδt(i)aijψt+1(j)=1iNargmaxδt(i)aij

6.小结:

HMM 是一种动态模型,是由混合树形模型和时序结合起来的一种模型(类似 GMM + Time)。对于类似 HMM 的这种状态空间模型,普遍的除了学习任务(采用 EM )外,还有推断任务,推断任务包括:

  1. 译码 Decoding: p ( z 1 , z 2 , ⋯   , z t ∣ x 1 , x 2 , ⋯   , x t ) p(z_1,z_2,\cdots,z_t|x_1,x_2,\cdots,x_t) p(z1,z2,,ztx1,x2,,xt)

  2. 似然概率: p ( X ∣ θ ) p(X|\theta) p(Xθ)

  3. 滤波:$ p(z_t|x_1,\cdots,x_t)$,Online
    p ( z t ∣ x 1 : t ) = p ( x 1 : t , z t ) p ( x 1 : t ) = C α t ( z t ) p(z_t|x_{1:t})=\frac{p(x_{1:t},z_t)}{p(x_{1:t})}=C\alpha_t(z_t) p(ztx1:t)=p(x1:t)p(x1:t,zt)=Cαt(zt)

  4. 平滑: p ( z t ∣ x 1 , ⋯   , x T ) p(z_t|x_1,\cdots,x_T) p(ztx1,,xT),Offline
    p ( z t ∣ x 1 : T ) = p ( x 1 : T , z t ) p ( x 1 : T ) = α t ( z t ) p ( x t + 1 : T ∣ x 1 : t , z t ) p ( x 1 : T ) p(z_t|x_{1:T})=\frac{p(x_{1:T},z_t)}{p(x_{1:T})}=\frac{\alpha_t(z_t)p(x_{t+1:T}|x_{1:t},z_t)}{p(x_{1:T})} p(ztx1:T)=p(x1:T)p(x1:T,zt)=p(x1:T)αt(zt)p(xt+1:Tx1:t,zt)
    根据概率图的条件独立性,有:
    p ( z t ∣ x 1 : T ) = α t ( z t ) p ( x t + 1 : T ∣ z t ) p ( x 1 : T ) = C α t ( z t ) β t ( z t ) p(z_t|x_{1:T})=\frac{\alpha_t(z_t)p(x_{t+1:T}|z_t)}{p(x_{1:T})}=C\alpha_t(z_t)\beta_t(z_t) p(ztx1:T)=p(x1:T)αt(zt)p(xt+1:Tzt)=Cαt(zt)βt(zt)
    这个算法叫做前向后向算法。

  5. 预测: p ( z t + 1 , z t + 2 ∣ x 1 , ⋯   , x t ) , p ( x t + 1 , x t + 2 ∣ x 1 , ⋯   , x t ) p(z_{t+1},z_{t+2}|x_1,\cdots,x_t),p(x_{t+1},x_{t+2}|x_1,\cdots,x_t) p(zt+1,zt+2x1,,xt),p(xt+1,xt+2x1,,xt)
    p ( z t + 1 ∣ x 1 : t ) = ∑ z t p ( z t + 1 , z t ∣ x 1 : t ) = ∑ z t p ( z t + 1 ∣ z t ) p ( z t ∣ x 1 : t ) p(z_{t+1}|x_{1:t})=\sum_{z_t}p(z_{t+1},z_t|x_{1:t})=\sum\limits_{z_t}p(z_{t+1}|z_t)p(z_t|x_{1:t}) p(zt+1x1:t)=ztp(zt+1,ztx1:t)=ztp(zt+1zt)p(ztx1:t)

    p ( x t + 1 ∣ x 1 : t ) = ∑ z t + 1 p ( x t + 1 , z t + 1 ∣ x 1 : t ) = ∑ z t + 1 p ( x t + 1 ∣ z t + 1 ) p ( z t + 1 ∣ x 1 : t ) p(x_{t+1}|x_{1:t})=\sum\limits_{z_{t+1}}p(x_{t+1},z_{t+1}|x_{1:t})=\sum\limits_{z_{t+1}}p(x_{t+1}|z_{t+1})p(z_{t+1}|x_{1:t}) p(xt+1x1:t)=zt+1p(xt+1,zt+1x1:t)=zt+1p(xt+1zt+1)p(zt+1x1:t)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值