机器学习:隐马尔可夫模型——预测算法

问答总结

  • 近似算法的思想是什么,方法是怎样的?
  • 维秘特算法的思想是什么,方法是怎样的?

一、目标

前文说过,预测问题可以描述为:

已知模型 λ = ( 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 = { i 1 , i 2 , . . . , i T } I=\{i_1, i_2, ..., i_T\} I={i1,i2,...,iT}. 即: I ∗ = a r g max ⁡ I P ( I ∣ O , λ ) I^* = arg \max_{I}P(I|O,\lambda) I=argImaxP(IO,λ)

二、近似算法

1、思想

在每个时刻 t t t选择该时刻最可能出现的状态 i t ∗ i_t^* it, 从而得到状态序列 I ∗ = ( i 1 ∗ , i 2 ∗ , . . . , i T ∗ ) I^*=(i_1^*, i_2^*, ..., i_T^*) I=(i1,i2,...,iT).

2、方法

回想概率计算方法,我们得到了一个很重要的概率值:
γ t ( i ) = P ( i t = q i ∣ O , λ ) = α t ( i ) β t ( i ) ∑ j = 1 N α t ( j ) β t ( j ) \gamma_t(i)=P(i_t=q_i|O, \lambda)=\frac{\alpha_t(i)\beta_t(i)}{\sum_{j=1}^N\alpha_t(j)\beta_t(j)} γt(i)=P(it=qiO,λ)=j=1Nαt(j)βt(j)αt(i)βt(i)
其含义为: 给定模型 λ \lambda λ和观测 O O O, 在时刻 t t t处于状态 q i q_i qi的概率。

因此每个时刻 t t t最可能的状态 i t ∗ i_t^* it为:

i t ∗ = a r g max ⁡ 1 ≤ i ≤ N [ γ t ( i ) ] , t = 1 , 2 , . . . , T i_t^*=arg \max_{1 \le i \le N}[\gamma_t(i)], t=1,2,...,T it=arg1iNmax[γt(i)],t=1,2,...,T

这样,我们就可以得到状态序列 I ∗ = ( i 1 ∗ , i 2 ∗ , . . . , i T ∗ ) I^*=(i_1^*, i_2^*, ..., i_T^*) I=(i1,i2,...,iT).

三、维比特算法

1、思想

预测问题的目标是 I ∗ = a r g max ⁡ I P ( I ∣ O , λ ) I^* = arg \max_{I}P(I|O,\lambda) I=argImaxP(IO,λ)
由于状态序列 O O O和模型 λ \lambda λ已知,因此 P ( O ∣ λ ) P(O|\lambda) P(Oλ)为一个常数,所以有:

I ∗ = a r g max ⁡ I P ( I ∣ O , λ ) = a r g max ⁡ I P ( I , O ∣ λ ) P ( O ∣ λ ) = a r g max ⁡ I P ( I , O ∣ λ ) I^* = arg \max_{I}P(I|O,\lambda) = arg \max_{I}\frac{P(I, O|\lambda)}{P(O|\lambda)} = arg \max_IP(I,O|\lambda) I=argImaxP(IO,λ)=argImaxP(Oλ)P(I,Oλ)=argImaxP(I,Oλ)

因此在预测问题中,我们可以转而对联合概率建模。找到联合概率最大的一个状态序列。

2、方法

将T步,每步可选状态数为N的状态序列的所有可能描述为一个图,其中图的一条路径等价于一个状态序列。 下图为序列长度: T = 3 T=3 T=3,状态数目: N = 3 N=3 N=3的所有路径。其中一条路径是对应一个状态序列,也对应着一个联合概率 P ( o 1 , o 2 , o 3 , i 1 , i 2 , i 3 ∣ λ ) P(o_1,o_2, o_3, i_1, i_2, i_3 | \lambda) P(o1,o2,o3,i1,i2,i3λ)。其中 i ∗ ∈ { A , B , C } i_* \in \{A, B, C\} i{A,B,C}, o ∗ o_* o为已知的观测, λ \lambda λ为已知模型。
在这里插入图片描述

最简单的,我们可以通过暴力搜索,求出每一条路径对于的概率,然后选取概率最大的那条路径,即为所求状态序列。但是复杂度太高,为 O ( N T ) O(N^T) O(NT)

仔细观察,这对应着一个有向无环图(DAG), 其最大联合概率路径很容易可以使用动态规划方法求出。

因此来到动态规划问题求解步骤:

  • (1) 定义状态:

    • 在时刻 t t t状态为 i i i的最大联合概率: δ t ( i ) = max ⁡ i 1 , i 2 , . . .   i t − 1 P ( i t = i , i t − 1 , . . . , i 1 , o t , . . . , o 1 ∣ λ ) \delta_t(i) = \max_{i_1, i_2, ...\, i_{t-1}}P(i_t=i, i_{t-1}, ..., i_1, o_t, ..., o_1|\lambda) δt(i)=i1,i2,...it1maxP(it=i,it1,...,i1,ot,...,o1λ)
    • 在时刻 t t t状态为 i i i的最大联合概率路径的前一个节点,即时刻 t − 1 t-1 t1的结点(相当于路径回溯的指针): Ψ t ( i ) = a r g max ⁡ 1 ≤ j ≤ N [ δ t − 1 ( j ) a j i ] \Psi_t(i)=arg \max_{1 \le j \le N}[\delta_{t-1}(j)a_{ji}] Ψt(i)=arg1jNmax[δt1(j)aji]
  • (2) 目标状态:

    • 路径最大联合概率: P ∗ = max ⁡ 1 ≤ i ≤ N δ T ( i ) P^* = \max_{1 \le i\le N}\delta_T(i) P=1iNmaxδT(i)
    • 所求路径最后一个状态节点: i T ∗ = a r g max ⁡ 1 ≤ i ≤ N [ δ T ( i ) ] i^*_T= arg \max_{1 \le i \le N}[\delta_T(i)] iT=arg1iNmax[δT(i)]
  • (3) 状态转移:

    • 状态转移图:
      在这里插入图片描述
    • 状态转移方程:
      δ t ( i ) = max ⁡ 1 ≤ j ≤ N [ δ t − 1 ( j ) a j i ] b i ( o t ) , i = 1 , 2 , . . . , N \delta_t(i)= \max_{1 \le j \le N}[\delta_{t-1}(j)a_{ji}]b_i(o_t), i=1,2,...,N δt(i)=1jNmax[δt1(j)aji]bi(ot),i=1,2,...,N
      Ψ t ( i ) = a r g max ⁡ 1 ≤ j ≤ N [ δ t − 1 ( j ) a j i ] b i ( o t ) , i = 1 , 2 , . . . , N \Psi_t(i) = arg \max_{1 \le j \le N}[\delta_{t-1}(j)a_{ji}]b_i(o_t), i=1,2,...,N Ψt(i)=arg1jNmax[δt1(j)aji]bi(ot),i=1,2,...,N
  • (4) 初始化:
    δ 1 ( i ) = π i b i ( o 1 ) , i = 1 , 2 , . . . , N \delta_1(i)=\pi_ib_i(o_1), i = 1,2,...,N δ1(i)=πibi(o1),i=1,2,...,N
    Ψ 1 ( i ) = 0 , i = 1 , 2 , . . . , N \Psi_1(i)=0, i=1,2,...,N Ψ1(i)=0,i=1,2,...,N

  • (5) 回溯

由于所求不只是一个概率,而是一条路径,因此最后回溯: i t ∗ = Ψ t + 1 ( i t + 1 ∗ ) , t = T − 1 , T − 2 , . . . , 1 i_t^* = \Psi_{t+1}(i_{t+1}^*), t=T-1,T-2,...,1 it=Ψt+1(it+1),t=T1,T2,...,1

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值