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

问答总结

  • 学习问题分为哪两种,它们的条件是怎样的?
  • 在有监督的学习问题中,如何估计参数?
  • 在无监督的学习问题中,我们采用EM算法求解模型。EM算法的 Q Q Q函数是什么?
  • 解决无监督学习问题的算法是什么?

一、目标

前文中说过,隐马尔可夫模型的学习问题是指:

已知观测序列 O = ( o 1 , o 2 , . . . , o T ) O = (o_1, o_2, ..., o_T) O=(o1,o2,...,oT), 估计模型 λ = ( A , B , π ) \lambda=(A, B, \pi) λ=(A,B,π).使得在该模型下观测序列概率 P ( O ∣ λ ) P(O|\lambda) P(Oλ)最大。即使用极大似然估计方法估计参数。即:
λ ∗ = a r g max ⁡ λ P ( O ∣ λ ) \lambda^*=arg \max_{\lambda}P(O|\lambda) λ=argλmaxP(Oλ)

具体的,我们还可以细化为

  • (1)训练数据包括观测序列和对应的状态序列。——监督学习
  • (2)训练数据仅仅包括观测序列。——无监督学习。

二、监督学习方法

输入训练样本为 S = { ( O 1 , I 1 ) , ( O 2 , I 2 ) , . . . , ( O s , I s ) } S = \{(O_1, I_1),(O_2,I_2), ..., (O_s, I_s)\} S={(O1,I1),(O2,I2),...,(Os,Is)},我们采取极大似然估计法估计模型 λ = ( A , B , π ) \lambda = (A, B, \pi) λ=(A,B,π).
1、转移概率 a i j a_{ij} aij的估计:

  • A i j A_{ij} Aij为样本中状态 i i i转到状态 j j j的频数。则 a i j ^ = A i j ∑ j = 1 N A i j \hat{a_{ij}} = \frac{A_{ij}}{\sum_{j=1}^NA_{ij}} aij^=j=1NAijAij

2、观测概率 b j ( k ) b_j(k) bj(k)的估计:

  • 令样本中状态 j j j且观测为 k k k的频数是 B j k B_{jk} Bjk, 则:
    b j ( k ) ^ = B j k ∑ i = 1 M B j k \hat{b_j(k)} = \frac{B_{jk}}{\sum_{i=1}^MB_{jk}} bj(k)^=i=1MBjkBjk

3、初始状态概率 π i \pi_i πi的估计 π i ^ \hat{\pi_i} πi^为样本中初始状态为 q i q_i qi的频率。

三、无监督学习方法

1、学习方法—EM

当输入训练样本 S S S只包含观测序列 S = { O 1 , O 2 , . . . , O S } S = \{O_1, O_2, ..., O_S\} S={O1,O2,...,OS}, 我们将状态序列看作不可观测的隐数据 I I I那么HMM事实上是含有隐变量的概率模型:
λ ∗ = a r g max ⁡ λ P ( O ∣ λ ) = a r g max ⁡ λ ∑ I P ( O ∣ I , λ ) P ( I ∣ λ ) \lambda^* = arg \max_{\lambda}P(O|\lambda) = arg \max_{\lambda}\sum_{I}P(O|I,\lambda)P(I|\lambda) λ=argλmaxP(Oλ)=argλmaxIP(OI,λ)P(Iλ)

对于含隐变量的模型,它的参数学习可以使用 E M EM EM方法。


EM方法简单的脉络如下

  • 起因: 最大似然的缺陷.
    • 两个(可以是多个)分布 (一般只是参数不同).两类数据,但是混合在一起,因此无法直接使用使用最大似然,求得两个分布的参数.(参考文献1中四川人东北人例子)
    • 因此考虑映入隐变量(一般代表着数据的类别).
  • 矛盾: 先鸡还是先蛋问题.
    • 隐变量(属于哪一类的概率)需要分布参数来确定.
    • 分布参数需要隐变量的值加上数据来确定.
    • 不知该从哪里下手.
  • 启发式: 一个一个来
    • 初始化两个分布的参数.
    • 根据两个分布的参数算出隐变量的概率.
    • 按算出隐变量的概率更新分布的参数.
      • 如果直接多个分布最大似然来求,涉及到 l o g log log相加, 数学上太麻烦.
      • 考虑jenson不等式. 搞出一个最大似然的下界.
      • 优化下界, 即可优化最大似然.
      • 省去下界的无关项,推出优化目标,取名为Q函数
    • 就这样交替更新.
    • 最后收敛到一个较好值.
  • 注意:
    • EM算法并不保证收敛到全局最优,因此和初值的选取有关系.

2、EM方法步骤

(1)、确定完全数据的对数似然函数。

  • 观测数据: 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)
  • 完全数据: ( O , I ) = ( o 1 , . . . , o T , i 1 , . . . i T ) (O, I) = (o_1, ..., o_T,i_1, ...i_T) (O,I)=(o1,...,oT,i1,...iT)
  • 完全数据对数似然函数: l o g P ( O , I ∣ λ ) logP(O, I| \lambda) logP(O,Iλ)

(2)、EM算法E步: 求Q函数 Q ( λ , λ ˉ ) Q(\lambda, \bar{\lambda}) Q(λ,λˉ)
Q ( λ , λ ˉ ) = ∑ I l o g P ( O , I ∣ λ ) P ( I ∣ O , λ ˉ ) = ∑ I l o g P ( O , I ∣ λ ) P ( I , O ∣ λ ˉ ) P ( O ∣ λ ˉ ) \begin{aligned} Q(\lambda, \bar{\lambda}) &= \sum_{I}logP(O, I|\lambda)P(I|O,\bar{\lambda}) \\ &= \sum_{I}logP(O,I|\lambda)\frac{P(I, O|\bar{\lambda})}{P(O|\bar{\lambda})} \end{aligned} Q(λ,λˉ)=IlogP(O,Iλ)P(IO,λˉ)=IlogP(O,Iλ)P(Oλˉ)P(I,Oλˉ)

由于 Q Q Q函数是关于 λ \lambda λ的参数,而 P ( O ∣ λ ˉ ) P(O|\bar{\lambda}) P(Oλˉ) λ \lambda λ是常数。因此极大化 Q Q Q函数时我们可以省去它,简化 Q Q Q函数为:
Q ( λ , λ ˉ ) = ∑ I l o g P ( O , I ∣ λ ) P ( O , I ∣ λ ˉ ) Q(\lambda, \bar{\lambda}) = \sum_{I}logP(O, I|\lambda)P(O, I|\bar{\lambda}) Q(λ,λˉ)=IlogP(O,Iλ)P(O,Iλˉ)

(3)、EM算法M步:极大化 Q Q Q函数 Q ( λ , λ ˉ ) Q(\lambda, \bar{\lambda}) Q(λ,λˉ)求得更新后的模型参数 A , B , π A,B,\pi A,B,π

推导过程省略,可参考李航统计学习方法第二版P205。

3、Baum-Welch算法

在这里插入图片描述

参考资料

[1] EM算法详细推导和讲解

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值