【ML小结12】隐马尔科夫模型HMM

在这里插入图片描述

1. 前言

选自《数学之美》第5章:隐含马尔科夫模型HMM

在这里插入图片描述

  1. 通信的本质就是一个编解码和传输的过程。NLP对应通信系统中的解码问题。即在已知接收端的观测信号 o 1 , o 2 , . . . o_1,o_2,... o1,o2,...的情况下,推断出令条件概率 P ( s 1 , s 2 , . . . ∣ o 1 , o 2 , . . . ) P(s_1,s_2,...|o_1,o_2,...) P(s1,s2,...o1,o2,...)达到最大值的那个信息串 s 1 , s 2 , . . . s_1,s_2,... s1,s2,...也就是信号源发送的信息。 (5-1) s 1 , s 2 , . . . = A r g max ⁡ a l l s 1 , s 2 , . . . P ( s 1 , s 2 , . . . ∣ o 1 , o 2 , . . . ) = A r g max ⁡ a l l s 1 , s 2 , . . . P ( o 1 , o 2 , . . . ∣ s 1 , s 2 , . . . ) P ( s 1 , s 2 , . . . ) P ( o 1 , o 2 , . . . ) ⇔ A r g max ⁡ a l l s 1 , s 2 , . . . P ( o 1 , o 2 , . . . ∣ s 1 , s 2 , . . . ) P ( s 1 , s 2 , . . . ) s_1,s_2,...=Arg\max_{all s_1,s_2,...} P(s_1,s_2,...|o_1,o_2,...)=Arg\max_{all s_1,s_2,...} \frac{P(o_1,o_2,...|s_1,s_2,...)P(s_1,s_2,...)}{P(o_1,o_2,...)}\\\Leftrightarrow Arg\max_{all s_1,s_2,...} P(o_1,o_2,...|s_1,s_2,...)P(s_1,s_2,...)\quad \tag{5-1} s1,s2,...=Argalls1,s2,...maxP(s1,s2,...o1,o2,...)=Argalls1,s2,...maxP(o1,o2,...)P(o1,o2,...s1,s2,...)P(s1,s2,...)Argalls1,s2,...maxP(o1,o2,...s1,s2,...)P(s1,s2,...)(5-1)
  2. 随机过程有2个维度的不确定性,其一是每个状态 s t s_t st都是随机的,其二是任一状态 s t s_t st的取值都可能和周围其他状态相关 P ( s 1 , s 2 , . . . ) = ∏ t P ( s t ∣ s 1 , s 2 , . . . , s t − 1 ) P(s_1,s_2,...)=\prod_tP(s_t|s_1,s_2,...,s_{t-1}) P(s1,s2,...)=tP(sts1,s2,...,st1)
  3. 马尔科夫提出了上述的简化假设(马尔科夫假设),随机过程中每个状态 s t s_t st的概率分布只与它的前一个状态 s t − 1 有 关 s_{t-1}有关 st1,即 P ( s t ∣ s 1 , s 2 , . . . , s t − 1 ) = P ( s t ∣ s t − 1 ) P(s_t|s_1,s_2,...,s_{t-1})=P(s_t|s_{t-1}) P(sts1,s2,...,st1)=P(stst1),符合该假设的随机过程称为马尔科夫过程(马尔科夫链)。 (5-2) P ( s 1 , s 2 , . . . ) = ∏ t P ( s t ∣ s t − 1 ) P(s_1,s_2,...)=\prod_tP(s_t|s_{t-1})\tag{5-2} P(s1,s2,...)=tP(stst1)(5-2)
  4. 鲍姆提出隐含马尔可夫模型:基于马尔科夫假设和独立输出假设(模型在每时刻t会输出一个符号 o t o_t ot,并且 o t o_t ot只与 s t s_t st相关)。 (5.3) P ( o 1 , o 2 , . . . ∣ s 1 , s 2 , . . . ) = ∏ t P ( o t ∣ s t ) P(o_1,o_2,...|s_1,s_2,...)=\prod_tP(o_t|s_t)\tag{5.3} P(o1,o2,...s1,s2,...)=tP(otst)(5.3)则某个状特定的状态序列 s 1 , s 2 , . . . s_1,s_2,... s1,s2,...产生出输出符号 o 1 , o 2 , . . . o_1,o_2,... o1,o2,...的概率为 (5-4) P ( s 1 , s 2 , . . . , o 1 , o 2 , . . . ) = ∏ t P ( s t ∣ s t − 1 ) P ( o t ∣ s t ) P(s_1,s_2,...,o_1,o_2,...)=\prod_tP(s_t|s_{t-1})P(o_t|s_t)\tag{5-4} P(s1,s2,...,o1,o2,...)=tP(stst1)P(otst)(5-4)将式(5-2)(5-3)代入(5-1)中,则得到(5-4)!!!因此,通信的解码问题就可以用隐含马尔科夫模型解决。应用:语言识别、机器翻译、拼写纠错、基因序列分析、股票预测……
  5. 训练算法,即给定足够多的观测数据,如何估计隐含马尔科夫模型的参数?(1)有监督训练,效果好,但是需要大量人工标注的数据;(2)无监督训练,鲍姆-韦尔奇算法,每一次迭代都是不断估计新的模型参数,使得输出概率(我们的目标函数)最大化,该过程称为期望值最大化(EM过程)。
  6. 解码算法,即给定一个模型和某个特定的输出序列,如何找出最可能产生这个输出的序列状态?=>维特比算法

2. HMM基本概念

隐马尔科夫模型(HMM)是关于时序的概率模型,描述由隐藏的马尔科夫链随机生成观测序列的过程,属于生成模型

HMM由初始状态概率向量 π \pi π、状态转移概率矩阵A和观测概率矩阵B决定。 π \pi π和A决定状态序列,B决定观测序列。因此,HMM模型 λ \lambda λ可以用三元符号表示: λ = ( A , B , π ) \lambda=(A,B,\pi) λ=(A,B,π)在这里插入图片描述
在这里插入图片描述
应用
HMM可以用于标注,这时状态对应着标记,标注问题是给的观测的序列预测其对应的标记序列

3. HMM的3个基本问题

3.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),计算在模型 λ \lambda λ下观测序列 O O O出现的概率 P ( O ∣ λ ) P(O|\lambda) P(Oλ)

3.1.1 直接计算法在这里插入图片描述

3.1.2 前向算法

在这里插入图片描述
在这里插入图片描述

3.1.3 后向算法

在这里插入图片描述

3.2 学习问题:EM算法

非监督学习算法
已知观测序列 O = ( o 1 , . . . , o T ) O=(o_1,...,o_T) O=(o1,...,oT),估计模型 λ = ( A , B , π ) \lambda=(A,B,\pi) λ=(A,B,π)参数,使得在该模型下观测序列概率 P ( O ∣ λ ) P(O|\lambda) P(Oλ)最大。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.3 预测问题(解码问题):维特比算法

已知模型 λ = ( A , B , π ) \lambda=(A,B,\pi) λ=(A,B,π)和观测序列 O = ( o 1 , . . . , o T ) O=(o_1,...,o_T) O=(o1,...,oT),求使得条件概率 P ( I ∣ O ) P(I|O) P(IO)最大的状态序列 I = ( i 1 , . . . , i T ) I=(i_1,...,i_T) I=(i1,...,iT)。即给定观测序列,求最有可能的对应的状态序列。

维特比算法实际是用动态规划求解HMM预测问题,即用动态规划求概率最大路径(最优路径),这时一条路径对应着一个状态序列。
在这里插入图片描述

4. HMM的应用

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值