隐马尔科夫模型——学习问题与预测问题

本文接着说隐马尔科夫的后两个问题,学习问题与观测问题:

学习问题,已知观测序列,估计三要素参数π、B、A。
预测问题,也称作解码问题。已知模型和观测序列,求对给定的观测序列对应概率最大的状态序列。

学习问题,根据是否给出状态序列把学习问题分为监督学习和无监督学习两类,本文先介绍监督学习算法。

监督学习算法主要就是采用极大似然估计估计模型参数,根据已有的样本 进行频数统计计算概率。
无监督的学习算法采用的是EM(Expectation maximization )期望极大算法(原理理解简单,实现略麻烦,有时间了单独写一篇)

对于没有隐含变量,所有的概率模型变量都是观测变量,那么通过给定的数据可以通过极大似然估计或者贝叶斯估计来估计模型的参数,但是对于拥有隐含变量的模型,就要用EM算法来估计参数。
算法每次迭代有两步组成:E步 ,求期望;M步,求极大。

预测问题,有两种算法可以预测:近似算法与维特比算法。
近似算法的想法是每个时刻t选择在该时刻最有可能出现的状态i,从而得到状态序列。但是这个算法有一个致命伤,就是预测的状态序列实际可能不会发生,就是转移状态为0的情况,这就导致了算法的在实际情况中会出现问题。
比较好的做法是采用维特比算法(Viterbi Algorithm),和近似算法相比,他考虑了相邻节点的状态转移概率。该算法采用动态规划的方式降低了时间复杂度。代码戳这里
维特比算法的大致思路就是,从第一个观测节点开始,预测可能的状态概率,选出概率最大的那个状态节点,然后递归继续求下一个状态节点,直到结束。

——Snake

snake

作者: snake

我们需要为这个社会做一点贡献,失去了才懂得去珍惜。

《隐马尔科夫模型——学习问题与预测问题》有1个想法

发表评论

电子邮件地址不会被公开。 必填项已用*标注