隐马尔科夫模型-EM模型-混合理解

本文主线:首先从隐马尔科夫模型开始说起,接着由马尔科夫模型的计算引出EM模型,并进行讲解。

      (内容会尽量以交流白话的形式,便于大家理解,文章中对模型的介绍会先提出一些专业名词,然后结合实例对公式和名词进行解释。)

1、什么是隐马尔科夫:

    隐马尔科夫主要在于“隐”字,因为其中有一个状态是看不到的,比如我们有三个不同的骰子,你怎么根据你看到最终得到的点数序列推算出各个点数是哪个骰子投掷出来的?也就是说我们之前遇到的模型一般都是由x如何得到y,但是现在是x先得到了z,然后再根据z得到了y,但是z我们是不知道,也无法直接得到的,所以我们要解决这个问题。目前主流描述为:由一个隐藏的马尔科夫链随机生成不可观测的状态随机序列,然后再根据这个状态随机序列,生成可观测的序列。

    可能你听了上面的概念还有些不理解,接下来我还是先把需要的理论列一下,然后根据一个例子进行通俗的解释。

2、隐马尔科夫模型

    主要包括五个元素:可观测序列,状态序列,初始状态分布π,状态转移矩阵A,观测概率分布B。

    其中的关系:(帮助后续理解例子中的关系)

        我们一般如何描述一个隐马尔科夫模型,一般来说   隐马尔科夫模型=(A,B,π),A,B,π就是该模型的参数,就类似logstic regression 中的权重 w 类似。

        那么可观测序列和状态序列以及上述三个参数之间的关系 呢? 

        A,和π确定了隐藏的马尔科夫链,生成了状态序列,其中状态序列在和B进行运算就得到了观测序列。

3、通过例子理解模型以及参数含义

    该例子来自于统计学习方法,方便大家下去对照理解。

各盒子的红白球个数
盒子(box)b1b2b3b4
红球数5368
白球数5742

抽球过程描述: 开始先从4个盒子里以等概率随机选取一个盒子,从这个盒子中随机抽出一个球,记录其颜色后放回。然后从当前盒子转移到下一个盒子:规则为:如果当前盒子是盒子1,那么下一个盒子一定是盒子2或者3,如果当前盒子是盒子2,那么分别以概率0.4和0.6转移到左边或者右边的盒子,如果当前盒子是盒子4,那么各以0.5的概率停留在盒子4或者转移到盒子3;确定转移的盒子之后,再从该盒子中随机抽取一个球,记录其颜色后放回,如此重复5次,得到球的观测序列:

                        Q={红,红,白,白,红}

在这个过程中,以为观察者智能看到球的最后抽取出来的颜色,看不到球是哪个盒子中取出的。因此抽取盒子该序列是隐藏的。

那么好了,根据上述的描述,我们来对应下上述的参数和名词吧:

        初始状态分布π:也就是初始的状态,上面提到“从4个盒子里以等概率随机选取一个盒子”,因此:

                                                          初始状态分布π={0.25,0.25,0.25,0.25}

        状态转移矩阵A:状态转移就是从一个状态转移到下一个时刻的状态,这里指的是从当前时刻的盒子转移到下一时刻的盒子。根据上面的描述,可以知道状态转移的概率,比如当前是盒子1,那么下一时刻转移到盒子2的概率就是1,其余的都是0。因此我们可以推导出状态转移矩阵A:

 盒子b1b2b3b4
盒子b10100
b20.400.60
b300.400.6
b4000.50.5

         观测概率分布B:上面我们提到了观测序列是根据(观测概率分布B和状态序列生成的),因此很容易得到观测概率分布B的矩阵,也就是当我们的状态序列中某一时刻乘以观测分布矩阵就可以得到观测序列的某一时刻,eg:假如我们知道了当前要抽取的盒子为盒子1,那么我们可以根据盒子里面球的个数知道将要得到的观测状态为红球的概率为0.5,白球的状态也为0.5。

 红球白球
盒子b10.50.5
b20.30.7
b30.60.4
b40.80.2

         好了,这就是隐马尔科夫模型,包括三个参数:(A,B,π),并且包含了两个状态,接下来的问题就围绕着这几个参数和状态展开,无非就是根据谁来求解谁。接下来就很自然的导出了隐马尔科夫的3个基本问题。

4、隐马尔科夫的3个基本问题

(1)、概率计算问题:  给定模型\lambda =(A,B,\pi )(A,B,π),和观测序列O,计算在模型\lambda下观测序列O出现的概率P(O|\lambda ).

 此处的问题就可以用前向或者后向算法来实现,直接说概念可能有点难以理解,简单来说就是利用模型的参数和传递的关系一个一个来计算最终状态的概率,然后在进行累加便可。

(2)、学习问题:  已知观测序列O,估计模型\lambda =(A,B,\pi )(A,B,π)参数,使得在该模型下观测序列概率P(O|\lambda )最大。即用极大似然估计的方法估计参数。

    其中在学习问题中有一种解法就是利用EM算法(这里叫 Baum-Welch算法),下面现将EM算法进行解读

    EM算法:

           EM算法就是含有隐变量的概率模型参数的极大似然估计法。所以EM算法可以很好的解决该问题(简直就是量身设计)。EM算法主要分为两步,E步:求期望,M步:求极大值。但是这里需要求解极大似然估计函数,因为没有解析解,所以只能通过迭代的方法,不断的逼近解,就像logistic regression中求权重w一样(脑补w3如何由w2得到,w2又如何由w1求得),所以可以说EM算法适用于求解该问题的一种迭代算法(一般来说需要用到EM算法的问题都具有1、含有隐变量2、式子里面有积分)

          最主要的就是Q函数方程的建立,得到Q函数以后E M两步就可以知道如何求得了.

          收敛性:可以保证估计的序列收敛到稳定点,但是不保证收敛到极大值点。

(3)、预测问题:  也成为解码问题,已知模型\lambda =(A,B,\pi )(A,B,π)和观测序列O,求当给定观测序列时,计算最有可能的对应的状态序列。

          该问题最有名的一个算法就是维比特算法(Viterbi),该算法是一个动态规划问题,当最终求解到最后一个状态时,在进行往回推,一步步的根据概率值从而对应相应的状态,回推到头的时候所有的状态序列也就推导出来了。

 

 

 

 

 

 

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
马尔科夫模型(HMM)是一种统计模型,用于描述一个由藏状态和可观察状态组成的序列,并通过计算概率来对藏状态进行推断。HMM算法可以应用于许多领域,包括地图匹配。 地图匹配是将移动对象的轨迹数据与预先定义的地图进行对应的过程。HMM算法可以用于实现地图匹配,以下是实现地图匹配的基本步骤: 1. 数据预处理:将原始轨迹数据进行清洗和处理,包括去除噪声、填充缺失值等。 2. 地图建模:将地图划分为一系列的离散区域,例如网格或路段,并给每个区域分配一个藏状态。 3. 初始化HMM模型:定义HMM模型的初始状态概率矩阵、转移概率矩阵和观测概率矩阵。 4. 观测生成:将轨迹数据中的观测状态映射到地图的区域。 5. 动态规划:利用前向算法或维特比算法计算给定观测序列条件下的最优藏状态序列。 6. 地图匹配结果:通过最优藏状态序列映射到地图的区域,得到地图匹配结果。 7. 评估与优化:对地图匹配结果进行评估和优化,比较匹配结果与真实轨迹数据的差异,并可能采取进一步的优化措施。 HMM算法在地图匹配中的优势是可以处理观测数据中的噪声和不确定性,并且具有较好的鲁棒性。然而,HMM算法也有一些限制,例如对初始参数的依赖和计算复杂度较高等。 综上所述,HMM算法可以实现地图匹配,通过对观测数据进行概率计算来推断藏状态序列,从而映射轨迹数据到地图上的区域。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值