统计学习方法---隐马尔可夫模型(HMM)

本文介绍了隐马尔可夫模型(HMM)的基础概念,包括马尔可夫性、模型构成、两个关键假设以及三个核心问题:评估、学习和解码。文章通过具体的例子解释了模型的运作机制,并详细探讨了前向算法和后向算法。此外,还提到了参数学习的Baum-Welch算法和解码问题的维比特算法。
摘要由CSDN通过智能技术生成

基本了解

什么是马尔可夫性:
通俗的说,马尔可夫性就是在当前确定的条件下,未来至于当前有关而与过去无关。

我们可以从两个简单的模型来了解隐马尔可夫模型:

  1. Navie bayes :
    朴素贝叶斯模型是用来判断二分类的问题,在该模型中,我们假设观测变量 x i x_i xi是独立同分布的。隐马尔可夫模型就是在朴素贝叶斯模型的基础上将判断二分类 y ( 1 ∣ 0 ) y(1|0) y(10) 变为标注问题,即 y y y 变为一个序列,状态对应着标记。以 nlp 为例,标注问题就是判断一句话中每个单词的词性。

  2. Gaussian mixture model :
    高斯混合模型加上时间概念就成为了隐马尔可夫模型。高斯混合模型的隐变量 Z Z Z 表示的是选择第 K K K个高斯模型,相当于隐马尔可夫模型在某一个时刻的状态变量 Y i Y_i Yi, Y i Y_i Yi为一个概率分布,表示选择第 k k k个状态的概率。
    在这里插入图片描述

基本概念

隐马尔可夫的基本概念
隐马尔可夫模型是可用于标注问题的统计学习模型,描述由隐藏的马尔可夫链随机生成观测序列的过程,属于生成模型。

马尔可夫模型的基本概念主要是由以下三个方面组成:

  1. 一个模型:
    λ = ( π , A , B ) \lambda = (\pi, A, B) λ=(π,A,B)

  2. 两个假设:
    (1). 齐次一阶马尔可夫假设
    (2). 观测独立假设

  3. 三个问题:
    (1). evaluation
    (2). learning
    (3). decoding

1. 一个模型

设Q是所有可能的状态的集合,V是所有可能的观测的集合。
Q = { q 1 , q 2 , q 3 , . . . , q N } , d V = { v 1 , v 2 , v 3 , . . . , v M } Q = \{q_1, q_2, q_3, ..., q_N\}, \quad d V = \{v_1, v_2, v_3, ..., v_M\} Q={ q1,q2,q3,...,qN},dV={ v1,v2,v3,...,vM}

I I I 是长度为T的状态序列, O O O是对应的观测序列
I = { i 1 , i 2 , i 3 , . . . , i T } , d O = { o 1 , o 2 , o 3 , . . . , o T } I = \{i_1, i_2, i_3, ..., i_T\}, \quad d O = \{o_1, o_2, o_3, ..., o_T\} I={ i1,i2,i3,...,iT},dO={ o1,o2,o3,...,oT}

以下我们都以盒子和球模型的例子进行讲解,假设我们有4个盒子,每个盒子中有红球和白球,我们首先随机选择一个盒子,然后在该盒子中随机抽取一个球,连续抽取5次,5次抽取的球的颜色的序列即为观测序列,抽取的盒子的序号即为状态序列。状态的集合Q是盒子的序号{1,2,3,4}, 观测的集合V是 {红球, 白球}

隐马尔可夫模型 λ \lambda λ 为:

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

π \pi π :初始状态概率向量, π = ( π i ) \pi = (\pi_i) π=(πi) π i \pi_i πi 表示在初始时刻,状态( i 1 i_1 i1)是 q i q_i qi的概率,即第一次抽取时抽到第 i i i个箱子的概率。 π \pi π 则是第一次抽取箱子的概率分布。
A A A:状态转移概率矩阵, A = ( a i j ) A = (a_{ij}) A=(aij) a i j a_{ij} aij 表示在时刻t处于状态 q i q_i qi 在时刻 t+1 时刻转移到状态 q j q_j qj 的概率。即若本次抽取到第i个箱子,下一次抽取到第j个箱子的概率。A 则是状态转移的所有可能情况的概率的矩阵。
B B B:观测概率矩阵, B = ( b j ( k ) ) B = (b_j(k)) B=(bj(k)) b j ( k ) b_j(k) bj(k) 表示在时刻 t 状态处于 q j q_j qj 的条件下生成观测 v k v_k vk 的概率,即在第t次抽取的箱子时第 j 个箱子的条件下,取到 红球(vk=红球) 的概率。

2. 两个假设:

  1. 齐次一阶马尔可夫假设:
    我们需要了解什么是齐次、一阶以及马尔可夫链。
    首先,马尔可夫链为 时刻 t+1 的状态只依赖与前 k 个时刻的状态,与其他时刻的状态无关。然后,一阶则是指 k = 1, 即是指未来至于当前时刻有关。最后,齐次则是指 p ( i t + 1 ∣ i t ) p(i_{t+1} | i_{t}) p(it+1it) 的值不随 t 的改变而改变。
    总而言之,即假设隐藏的马尔可夫链在任意时刻 t 的状态只依赖于前一时刻的状态,与其他时刻的状态与观测无关,也与时刻 t 无关。

  2. 观测独立假设:
    假设任意时刻的观测只依赖于当前时刻的马尔可夫链的状态,与其他观测及状态无关。
    从例子角度来说,就是在第 t 次抽取的球只与选择的箱子有关,与之前抽取的箱子和球无关。

其实这两个假设都不合理,首先说观测独立假设,如果从箱子和球的例子来说,那么可能感觉不到有什么问题,但如果以nlp的词性标注举例,当前时刻观察到的单词其实是与之前时刻观测到的单词和其词性相关的。在真实世界中,其实是很少有观测独立的情况存在的。因此,在HMM的基础上提出了MEMM(Maximum Entropy Morkov Model)算法,它通过改变状态变量到观察变量的箭头方向,打破了观测独立假设的存在。但是MEMM由于有向图的局部归一化导致了标注偏差问题,简单说明就是熵很小的条件概率很少关注观测量。由此,又出现了CRF(条件随机场)模型,CRF在MEMM即基础上将状态变量之间的有向转换变为无向转换。这里只是简要介绍,具体则在以后进行讲解。
接下来说一下齐次马尔可夫假设,同样以nlp词性标注为例,当前时刻的单词的词性其实是与之前时刻的单词的词性相关的。

3. 三个问题

3.1 evaluation

什么是evaluation呢?
evaluation是一个该概率计算问题。计算在模型 λ \lambda λ 下观测序列 O 出现的概率,即
P ( O ∣ λ ) P(O | \lambda) P(Oλ)
如何进行evaluation呢?
理论上有直接计算法,但是由于其计算量过大,所以无法使用。常用的方法有前向法和后向法。

3.1.1直接计算法

P ( O ∣ λ ) = ∑ I P ( I , O ∣ λ ) = ∑ I P ( O ∣ I , λ ) P ( I ∣ λ ) 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(O|\lambda) = \sum_I P(I, O|\lambda) = \sum_I P(O | I, \lambda)P(I|\lambda) \\ P(I | \lambda) = P(i_1, i_2, ..., i_T | \lambda) = P(i_T| i_1, i_2, ..., i_{T-1} ,\lambda)P( i_1, i_2, ..., i_{T-1} |\lambda) P(Oλ)=IP(I,Oλ)=IP(OI,λ)P(Iλ)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, ..., i_{T-1} ,\lambda) = P(i_T|i_{T-1} ,\lambda) = a_{ i_{T-1},i_T} P(iTi1,i2,...,iT1,λ)=P(iTiT1,λ)=aiT1,iT, 且 P ( I ∣ λ ) P(I | \lambda) P(Iλ) 是一个递归过程,所以:

P ( I ∣ λ ) = π i 1 a i 1 , i 2 , ⋅ . . . ⋅ a i T − 1 , i T = π i 1 ∏ t = 2 T a i t − 1 , i t P(I | \lambda) = \pi_{i_1}a_{i_1, i_{2}}, \cdot ... \cdot a_{ i_{T-1},i_T} = \pi_{i_1}\prod_{t = 2}^T a_{ i_{t-1},i_t} P(Iλ)=πi1ai1,i2,...aiT1,iT=πi1t=2Tait1,it

又因为:
P ( O ∣ I , λ ) = P ( o 1 , o 2 , . . . , o T ∣ i 1 , i 2 , . . . , i T , λ ) = P ( o T ∣ o 1 , o 2 , . . . o T − 1 , i 1 , i 2 , . . . , i T , λ ) P ( o 1 , o 2 , . . . o T − 1 ∣ i 1 , i 2 , . . . , i T , λ ) P(O| I, \lambda) = P(o_1, o_2, ..., o_T | i_1, i_2,...,i_T , \lambda) = P(o_T|o_1, o_2, ...o_{T-1}, i_1, i_2, ..., i_T, \lambda) P(o_1, o_2, ...o_{T-1} | i_1, i_2, ..., i_T, \lambda) P(OI,λ)=P(o1,o2,...,oTi1,i2,...,iT,λ)=P(oTo1,o2,...oT1,i1,i2,...,iT,λ)P(o1,o2,...oT1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值