机器学习算法(五)之隐马尔可夫算法理论

​一. 隐马尔可夫模型的概念

隐马尔可夫模型(Hidden Markov Model,HMM)是统计模型,它用来描述一个含有隐含未知参数的马尔可夫过程。

隐马尔可夫模型是机器学习算法中比较具有代表性,也是难度比较大的机器学习算法。隐马尔科夫算法是用来解决时空序列领域的传统逻辑方法,相当于深度学习领域中RNN网络模型的用途。以下进行一下隐马尔可夫模型的具体说明与解释。

二. 隐马尔可夫模型的原理

隐马尔可夫模型的原理是在马尔科夫模型的基础之上,隐马尔可夫模型是关于时序的概念模型,描述了由一个隐藏的马尔可夫链随机产生不可观测的状态随机序列,再由各个状态生成一个观测而产生的观测随机序列的过程。

举一个例子,今天是否出去玩,与今天是否有雨之间存在某种联系,今天的天气{cloud, rain, sunny},则是模型的状态变量,最后的决策{去, 不去},则是模型的观测变量。
在这里插入图片描述
以上可以认为是比较直观的隐马尔科夫模型示意图。

在李航博士的《统计学习方法》中使用了红球与白球的例子解释隐马尔可夫模型,通过阅读其他的博客还有一种掷色子的更加有意思,而且更容易理解。

如下图以下有三个骰子,D6骰子有六个面,{1, 2 , 3 ,4, 5, 6}

D4骰子有4个面,{1, 2, 3, 4},D8骰子为八棱锥,{1, 2, 3, 4, 5, 6, 7, 8}。现在如果我们知道现在的骰子序列为{1, 6 , 3},反过来推测是怎样的骰子进行投掷得出的,这就是求解隐马尔可夫模型
在这里插入图片描述
理论上抽到每个筛子的概率是1/3,三种骰子出1的概率分别为1/6, 1/4,1/8

推算得到如图所示的D6-> D8->D8的时序关系就是隐马尔可夫模型,当其中的D8或者D6骰子发生了替换,或者之间的顺序发生转换,则可以通过观测变量的变化进行推理。则是进行时空序列的预测。
在这里插入图片描述
在上图中表示每一个骰子接着是下一种骰子的概率,(图中没有标注),以对应的二维矩阵进行存储输入模型进行运算。

三. 隐马尔可夫模型的应用

隐马尔可夫算法中包括前向算法,后向算法,维比特算法隐马尔科夫模型是用于隐藏关系的时间序列数据挖掘,例如语音识别,自然语言处理等领域,一般有分词等应用。下一次通过编写代码对《统计学习方法》的课后习题进行调试实现。

参考文献

猜你喜欢

转载自blog.csdn.net/baidu_39629638/article/details/107374063