机器学习之HMM

Posted jacker2019

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习之HMM相关的知识,希望对你有一定的参考价值。

必要的数学知识

1.联合概率与边缘概率

联合概率是指多维随机变量中同时满足多个变量时候的概率,也就是共同发生的概率。A,B的联合概率通常写成 P(A∩B)或 P(AB)或  P(AB)

  对于离散的变量,联合概率可以用表格形式表示或者求和表示,连续的变量可以使用积分表示(若是二维就一个二重积分)

边缘概率是指多维随机变量中只满足部分变量时的概率

图片帮助理解:技术图片

 联合概率与边缘概率的关系

技术图片X的边缘概率等于联合概率 所以j的联合概率相加

 边缘概率分布公式

技术图片

 联合概率的条件概率链式法则:

技术图片

举例:P(a,b,c)=P(a|b,c)*P(b,c)

      =P(a|b,c)*P(b|c)*P(c)

条件概率

技术图片

独立性(XY相互独立)

P(X,Y)=P(X) *P(Y)

条件独立性

P(X,Y|Z)=P(X|Z)*P(Y|Z)

2.EM算法

技术图片

 

         技术图片

技术图片

关于EM算法利用jensen不等式近似实现极大似然估计的推导过程:https://zhuanlan.zhihu.com/p/36331115

 

 

隐马尔可夫模型(HMM)

1.基本模型样式

 技术图片

 上图中,白圈代表状态变量,蓝圈代表观测变量。所以白圈那一行是状态序列(隐状态),而白圈这一行是观测序列。

 

2.模型的数学表达

HMM由隐含状态S可观测状态O初始状态概率矩阵pi隐含状态概率转移矩阵A可观测值转移矩阵B(混淆矩阵)组成,可以使用一个三元组进行表述:技术图片

 

 

3.Markov两个假设

3.1齐次假设:表示 t 时刻的状态只与 t-1 时刻的状态有关

技术图片

3.2观测独立性假设:表示 t 时刻的观测变量只与 t 时刻的状态有关

技术图片

 

 

4.解决三个问题

概率计算问题(Evalution ):前向后向算法,已知模型 λ = (A, B, π)和观测序列O=o1, o2, o3 ...,计算模型λ下观测O出现的概率P(O | λ)

学习问题(learning):EM算法,已知观测序列O=o1, o2, o3 ...,计算估计模型λ = (A, B, π)的参数即推断状态的转移情况,使得在该参数下该模型的观测序列P(O | λ)最大

预测问题(Decoding):Viterbi算法,已知模型λ = (A, B, π)和观测序列O=o1, o2, o3 ...,求给定观测序列条件概率P(I | O,λ)最大的状态序列 I

 

4.1HMM模型的实质

HMM实际上就是建立建模 P(O,Q),对于给定的lamda 进行建模:

技术图片

 技术图片

   技术图片

技术图片

 

5.关于转移矩阵AB及Pai的定义

5.1状态转移矩阵A:根据Markov齐次假设去定义

状态转移矩阵是一个NxN的矩阵,表示一个状态有N种可能性,前一个状态也有N种可能性。aij表示状态从前一个的 i 状态转变为现在的 j 状态的概率。

技术图片

 

 上述式中 q 表示状态,所以 qt 表示 t 时刻的转态。

5.2观测概率矩阵B(混淆矩阵):根据Markov 观测独立性假设定义

观测概率矩阵B是一个NxM的矩阵,表示对于N种状态,在这N种状态下对应的M个可观测变量的概率(比如说在晴天状态下,观测到的湿度、温度、风速等观测量的概率)。

bj(k)表示 j 状态下的第 k 个观测量的 概率。 

技术图片技术图片

 

 上式中P(ot=vk|it=qj)表示t 时刻状态为 qj 的情况下,t 时刻观察量为 vk的概率。

 5.3隐藏状态概率分布 pai(t=1时刻的状态)

技术图片

 举例总结

针对上述将的几个转移矩阵概念和初始状态pai,举出一个盒子中摸球的例子帮助理解。

技术图片

 

 摸球规则:

  开始的时候,从第一个盒子抽球的概率是0.2,从第二个盒子抽球的概率是0.4,从第三个盒子抽球的概率是0.4。以这个概率抽一次球后,将球放回。然后从当前盒子转移到下一个盒子进行抽球。规则是:如果当前抽球的盒子是第一个盒子,则以0.5的概率仍然留在第一个盒子继续抽球,以0.2的概率去第二个盒子抽球,以0.3的概率去第三个盒子抽球。如果当前抽球的盒子是第二个盒子,则以0.5的概率仍然留在第二个盒子继续抽球,以0.3的概率去第一个盒子抽球,以0.2的概率去第三个盒子抽球。如果当前抽球的盒子是第三个盒子,则以0.5的概率仍然留在第三个盒子继续抽球,以0.2的概率去第一个盒子抽球,以0.3的概率去第二个盒子抽球。

   从紫色背景的摸球规则中,可以推断出初始矩阵:技术图片

 

   从绿色背景的摸球规则中,可以推断出状态转移矩阵为技术图片(矩阵的行列表示盒子123,数据表示转移概率)

 

   从数据表格中可以推断出观测概率矩阵为:技术图片(矩阵的2列标识对应的观测结果,3行表示该观测结果下来自于不同盒子的概率)

 

 【注】集合与序列的问题,集合不重复,所以这个案例中,观测集合为 红,白,状态集合为盒子1,盒子2,盒子3。所以M=2,N=3.但是观测序列可以是[红,白,红]等非2个元素的组成

 

概率计算问题

在给定模型 λ和 观测序列 O的情况下计算 P(O|λ)

思路:

  1. 列举所有可能的长度为T的状态序列I = i1, i2, ..., iT;每个i都有N个可能的取值。
  2. 求各个状态序列I与观测序列 的联合概率P(O,I|λ);
  3. 所有可能的状态序列求和∑_I P(O,I|λ)得到P(O|λ)。

用到的公式:边缘概率公式 技术图片和条件概率的链式法则

  ∵ P(O|λ)=ΣIP(O,I|λ)    ←边缘概率公式

  P(O,I|λ)= P(O|I, λ)P(I|λ)   ←链式法则

第一步:

  P(I|λ)= P(i1,i2, ..., iT |λ)  

    = P(i1 |λ)P(i2 | i1, λ)P(i3 | i2, λ)...P(iT | iT-1, λ)  ←链式法则

  上面的P(i1 |λ) 是初始为状态i1的概率,P(i2 | i1, λ) 是从状态 i1转移到 i2的概率,其他同理,于是分别使用初始概率分布π 和状态转移矩阵A,就得到结果:

  ∴技术图片

第二步:

  P(O|I, λ) 在序列 I的条件下观测,所以技术图片

   于是带入求和可得:

    技术图片

复杂度为:aij 的复杂度为NT,b的复杂度为 T,所以总的复杂度 O(TnT)

 

前向算法(Forwarding)/后向算法

前后向算法的区别之处:

  技术图片

 

 在概念的定义上:

  前向算法:当第t个时刻的状态为i时,前面的时刻分别观测到y1,y2, ..., yt的概率,即:技术图片

 

    后向算法:当第t个时刻的状态为i时,后面的时刻分别观测到yt+1,yt+2, ..., yT的概率,即:技术图片

前向算法推导过程:在给定模型 λ和 观测序列 O的情况下计算 P(O|λ)

   在上面的粗暴概率计算中,复杂度大,所以我们可以使用递推公式来降低复杂度,于是在这里就是构造一个递推。

技术图片

 

 又因αt(i)=P(o1,o2,o3...ot,it=qi|λ),P(it+1=qj|it=qi)=aij,然后初P(ot+1|it+1=qj)=bj(ot+1)

所以整个递推公式为技术图片

 

 后向算法类似于前向算法:

技术图片

 

 Baum Welch-EM算法

 已知观测序列O=o1, o2, o3 ...,计算估计模型λ = (A, B, π)的参数即推断状态的转移情况,使得在该参数下该模型的观测序列P(O | λ)最大

而我们知道,观测O由对应的状态决定,所以这里还隐含了状态这个未知变量,所以这个求解问题实际是一个隐变量求解问题,于是需要使用EM算法解决

 1.求Q函数

技术图片

 

 因为技术图片,其中 O与 λ 已知,所以P(O| λ) 可以看成一个常数。

 

于是技术图片

 

 2.求解Q函数

因为完全数据对数似然:技术图片

 

 所以 Q函数可以写成

 技术图片

 

 求解最大化的过程参考此贴:https://blog.csdn.net/u014688145/article/details/53046765

 

 

Viterbi(维特比)算法

 已知模型与观测序列,求取最大的 状态序列。也就是求取 技术图片,但是由于技术图片,并且这边观测O与模型λ处于已知状态,所以技术图片可以认为是一个常数,于是这个问题就等价于求取技术图片,所以引入δ变量的时候按照这个求取就行了。

 

维特比算法的流程:

技术图片

 

 技术图片

 

 对于这个流程的理解可以看https://zhuanlan.zhihu.com/p/41864904上面的例子,实际在维特比算法的计算过程中存在两个T分别保存最大概率和最大概率的那个来自那个状态。

还有https://zhuanlan.zhihu.com/p/63087935帮助理解(感觉这个更直观)

 

 

 

 

 

 

 参考:

https://www.cnblogs.com/sddai/p/8475424.html

https://blog.csdn.net/yywan1314520/article/details/50454063

https://www.cnblogs.com/pinking/p/8531405.html

 

以上是关于机器学习之HMM的主要内容,如果未能解决你的问题,请参考以下文章

机器学习之判别式模型和生成式模型

机器学习之概率统计基础,机器学习学习笔记----07

python学习之机器学习

学习打卡可解释机器学习之导论

学习打卡01可解释机器学习之导论

通俗易懂的图解机器学习之机器学习概论