第九章 隐马尔科夫模型HMM

1 隐马尔科夫模型定义

隐马尔科夫模型是一个seq2seq模型。例如词性标注。

时间序列t1t2t3
状态序列代词动词名词
观察序列机器学习

能够看到的,例如词语是观察序列。看不到的部分是状态序列,例如词性。
状态集合: Q = { q 1 , q 2 , . . . q N } Q=\{q_1,q_2,...q_N\} Q={q1,q2,...qN}, ∣ Q ∣ = N |Q|=N Q=N
观察集合: V = { v 1 , v 2 , . . . v M } V=\{v_1,v_2,...v_M\} V={v1,v2,...vM}, ∣ V ∣ = M |V|=M V=M
强定义:状态是观测不到的,类比于心理活动。观察是可以看到的,类比于面部表情。

状态序列: I = { i 1 , i 2 , . . . i t . . . i T } I=\{i_1,i_2,...i_t...i_T\} I={i1,i2,...it...iT}, i t ∈ Q i_t\in Q itQ, (t=1,2,…T)
观察序列: O = { o 1 , o 2 , . . . o t , . . . . o T } O=\{o_1,o_2,...o_t,....o_T\} O={o1,o2,...ot,....oT}, o i ∈ V o_i\in V oiV, (t=1,2,…T)

  • 序列与集合是不同的。序列中的元素是有前后顺序的。
  • 总的时刻用T表示
  • 强定义:每个时刻的观察只与这个时刻的状态有关系。(心理活动影响了面部表情)

在这里插入图片描述

状态转移矩阵:是从一个状态转移到另外一个状态的概率。例如从代词转到动词的概率。 A = [ a i j ] N ∗ N A=[a_{ij}]_{N*N} A=[aij]NN,表示从状态i到状态j的转换概率。在t时刻,处于状态 q i q_i qi条件下,在t+1时刻,转移到状态 q j q_j qj的概率 a i j = P ( i t + 1 = q j ∣ i t = q i ) a_{ij}=P(i_{t+1}=q_j|i_t=q_i) aij=P(it+1=qjit=qi)

观测概率矩阵: B = [ b j ( k ) ] N ∗ M B=[b_{j}(k)]_{N*M} B=[bj(k)]NM。在t时刻处于状态 q j q_j qj下生成观测 v k v_k vk的概率 b j ( k ) = P ( o t = v k ∣ i t = q j ) b_j(k)=P(o_t=v_k|i_t=q_j) bj(k)=P(ot=vkit=qj)

初始概率向量: π = ( π i ) \pi=(\pi_i) π=(πi),在t=1的时刻,状态处于 q i q_i qi的概率。 π i = P ( i 1 = q i ) \pi_i=P(i_1=q_i) πi=P(i1=qi), π \pi π是一个N维向量。

隐马尔科夫模型: λ = ( A , B , π ) \lambda = (A,B,\pi) λ=(A,B,π)

以上可以成立的假设是:
1 ⻬次⻢尔科夫性假设:在任意时刻t的状态只依赖于t-1时刻的状态。
P ( i t ∣ i t − 1 , , o t − 1 , . . . i 1 , o 1 ) = P ( i t ∣ i t − 1 ) P(i_t|i_{t-1,},o_{t-1},...i_1,o_1)=P(i_t|i_{t-1}) P(itit1,,ot1,...i1,o1)=P(itit1)

2 观测独立性假设:任意时刻t的观测只与t时刻的状态有关。
P ( o t ∣ i t , i t − 1 . . . i 1 , o t − 1 , o t − 2 . . . o 1 ) = P ( o t ∣ i t ) P(o_t|i_t,i_{t-1}...i_1,o_{t-1},o_{t-2}...o_1)=P(o_t|i_{t}) P(otit,it1...i1,ot1,ot2...o1)=P(otit)

观测序列生成算法
输入:隐马尔科夫模型 λ = ( A , B , π ) \lambda=(A,B,\pi) λ=(A,B,π),观测序列长度T
输出:观测序列 O = o 1 , o 2 , . . . , o T O={o_1,o_2,...,o_T} O=o1,o2,...,oT

HMM三个问题
1 概率计算,已知 λ = ( A , B , π ) \lambda=(A,B,\pi) λ=(A,B,π) O = o 1 , o 2 , . . . , o T O={o_1,o_2,...,o_T} O=o1,o2,...,oT,计算 P ( O ∣ λ ) P(O|\lambda) P(Oλ)
在模型已知的情况下,出现观测序列的概率

2 学习:已知 O = o 1 , o 2 , . . . , o T O={o_1,o_2,...,o_T} O=o1,o2,...,oT,计算 λ ∗ = a r g m a x P ( O ∣ λ ) \lambda^{*}= argmax P(O|\lambda) λ=argmaxP(Oλ)
已知观测序列,计算模型,计算得到的模型应该是使得观测序列的概率最大。

3 预测/编码问题:已知 λ = ( A , B , π ) \lambda=(A,B,\pi) λ=(A,B,π) O = o 1 , o 2 , . . . , o T O={o_1,o_2,...,o_T} O=o1,o2,...,oT,计算 I ∗ = a r g m a x P ( I ∣ O λ ) I^*=argmaxP(I|O\lambda) I=argmaxP(IOλ)
已知模型和观测序列,计算概率最大的状态序列。

2 概率计算算法

2.1 前向概率

在这里插入图片描述
给定模型 λ \lambda λ,时刻t部分观测序列为 o 1 , o 2 , . . . , o t o_1,o_2,...,o_t o1,o2,...,ot且状态为 q i q_i qi的概率
递推公式:
在这里插入图片描述
这一步是简写,用 O 1 t O^t_1 O1t 表示从1到t时刻的观察序列。
在这里插入图片描述
i t = q i i_t=q_i it=qi的时候,在 t − 1 t-1 t1时刻的状态可能为 q 1 , q 2 , . . . q N q_1,q_2,...q_N q1,q2,...qN,那么 P ( i t = q i ) = P ( i t = q i ∣ i t − 1 = q 1 ) + P ( i t = q i ∣ i t − 1 = q 2 ) + . . . + P ( i t = q i ∣ i t − 1 = q N ) P(i_t=q_i)=P(i_t=q_i|i_{t-1}=q_1)+P(i_t=q_i|i_{t-1}=q_2)+...+P(i_t=q_i|i_{t-1}=q_N) P(it=qi)=P(it=qiit1=q1)+P(it=qiit1=q2)+...+P(it=qiit1=qN),根据加法公式得到这一步递推。
在这里插入图片描述
这一步利用的是乘法公式:P(AB)=P(A|B)P(B)
在这里A= i t = q i , o t i_t=q_i,o_t it=qi,ot,B= i t − 1 = q j , o 1 t − 1 i_{t-1}=q_j,o^{t-1}_1 it1=qj,o1t1

在这里插入图片描述

根据定义 P ( i t − 1 = q j , o 1 t − 1 ) = α t − 1 ( j ) P(i_{t-1}=q_j,o^{t-1}_1)=\alpha_{t-1}(j) P(it1=qj,o1t1)=αt1(j)
能够省略公式中的 o 1 t − 1 o^{t-1}_1 o1t1是因为假设,t时刻的状态只与t-1时刻的状态有关,t时刻的观察只与t时刻的状态有关。所以可以去掉。

在这里插入图片描述
这里同样是利用乘法规则做变换。:P(AB)=P(A|B)P(B)
在这里A= o t o_t ot,B= i t = q i i_{t}=q_i it=qi
在这里插入图片描述

这一步替换是根据A方程和B方程的定义来的。

2.2 概率计算

具体计算过程可以通过前向或者后向计算得到。

3 学习算法

已知 O = o 1 , o 2 , . . . , o T O={o_1,o_2,...,o_T} O=o1,o2,...,oT,计算 λ ∗ = a r g m a x P ( O ∣ λ ) \lambda^{*}= argmax P(O|\lambda) λ=argmaxP(Oλ)
已知观测序列,计算模型,计算得到的模型应该是使得观测序列的概率最大。

EM算法是一个一般算法,涉及两类数据,一类数据已知,一类数据未知的时候,可以用EM。

3.1 EM算法

EM算法中观测变量Y 对应 观测序列
EM算法中隐随机变量Z 对应 状态序列
含有隐变量 的概率模型,⽬标是极⼤化观测变量 关于参数 的对数似然函数,即 m a x θ L ( θ ) max_{\theta}L(\theta) maxθL(θ)
其中
L ( θ ) = l o g P ( Y ∣ θ ) L(\theta)=logP(Y|\theta) L(θ)=logP(Yθ)
= l o g ∑ Z P ( Y , Z ∣ θ ) =log\sum_ZP(Y,Z|\theta) =logZP(Y,Zθ)(边缘概率到联合概率)
= l o g ∑ Z P ( Y ∣ Z , θ ) P ( Z ∣ θ ) =log\sum_ZP(Y|Z,\theta)P(Z|\theta) =logZP(YZ,θ)P(Zθ) (乘法规则)

对数似然函数𝐿 (𝜃)与第𝑖次迭代后的对数似然函数 L ( θ ( i ) ) L(\theta^{(i)}) L(θ(i))的差 :
在这里插入图片描述

根据Jensen不等式

将上面的式子做以下变形,
在这里插入图片描述

得到: L ( θ ) > = B ( θ , θ ( i ) ) L(\theta)>=B(\theta,\theta^{(i)}) L(θ)>=B(θ,θ(i)) B ( θ , θ ( i ) ) B(\theta,\theta^{(i)}) B(θ,θ(i))是一个下界函数。如果不断找到下界函数的最大值,就近似找到了上界函数的最大值。

Q = a r g m a x θ ( ∑ Z P ( Z ∣ Y , θ ( i ) ) l o g P ( Y , Z ∣ θ ) ) Q=arg max_{\theta}(\sum_ZP(Z|Y,\theta^{(i)})logP(Y,Z|\theta)) Q=argmaxθ(ZP(ZY,θ(i))logP(Y,Zθ))

3.2EM在HMM

对于HMM而言
θ \theta θ就是(A,B,π)
Z就是状态序列I
Y就是观测序列O

隐马尔科夫模型是含有隐变量的概率模型: P ( O ∣ λ ) = ∑ P ( O ∣ I , λ ) P ( I ∣ λ ) P(O|\lambda)=\sum P(O|I,\lambda)P(I|\lambda) P(Oλ)=P(OI,λ)P(Iλ)

完全数据 ( O , I ) = ( o 1 , o 2 . . . o T , i 1 , i 2 , . . . i T ) (O,I)=(o_1,o_2...o_T,i_1,i_2,...i_T) (O,I)=(o1,o2...oT,i1,i2,...iT)

完全数据的对数似然函数 l o g P ( O , I ∣ λ ) logP(O,I|\lambda) logP(O,Iλ)

Q ( λ , λ − ) Q(\lambda,\lambda^-) Q(λ,λ)函数
在这里插入图片描述

使用Baum-Welch算法完成学习过程。

4 预测算法

已知 λ = ( A , B , π ) \lambda=(A,B,\pi) λ=(A,B,π) O = o 1 , o 2 , . . . , o T O={o_1,o_2,...,o_T} O=o1,o2,...,oT,计算 I ∗ = a r g m a x P ( I ∣ O λ ) I^*=argmaxP(I|O\lambda) I=argmaxP(IOλ)
已知模型和观测序列,计算概率最大的状态序列。
在时刻𝑡状态为𝑖的所有单个路径(𝑖1, 𝑖2, ⋯ , 𝑖𝑡)中概率最⼤值
在这里插入图片描述

得到递推公式:
在这里插入图片描述

这是一个动态规划的过程。在求得 δ T ( i ) \delta_{T}(i) δT(i)取得最大概率的i,经过倒推获得整个I序列。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值