HMM(隐马尔可夫)简介

通过一个简单的例子来介绍马尔可夫链:
假设天气有三种状态(晴天、多云、雨天),三种状态之间的转换关系如图:
在这里插入图片描述

我们想要通过今天的天气来推测明天的天气和后天的天气,可以直接根据状态转换关系来推测,这种可以直接观测到的状态转换(晴天—>雨天—>多云)就称作马尔可夫链。

如果我们不知道今天的天气只知道水藻的干湿状态,只通过水藻的状态来推测天气:
在这里插入图片描述

这种想推测的东西不能直接观测到,而是根据另一种我们可见的这种观测的东西去推算我们想知道的信息就需要用到隐马尔可夫模型。

隐马尔可夫模型(HMM):是结构最简单的动态贝叶斯网络,是一种尤其著名的有向图结构,主要用于时序数据的建模,在语音识别、自然语言处理等领域有广泛应用,在分词算法中,隐马尔可夫经常用作能够发现新词的算法,通过海量的数据学习,能够将人名、地名、互联网上的新词等一一识别出来,具有广泛的应用场景。

HMM五元组:
观测序列——O(上图中水藻的状态)
状态序列——I(上图中的天气序列)
初始状态概率——π
状态转移矩阵——A
观测概率矩阵——B(也叫发射概率)

HMM三要素:
初始状态概率——π
状态转移矩阵——A
观测概率矩阵——B

两个基本假设: 1,齐次马尔科夫性假设:在t时刻的状态只依赖于t-1时刻的状态 2,观测独立性假设:在任一时刻的观测只依赖于该时刻的状态

下面通过一个简单的例子来介绍隐马尔可夫模型的五元组和概率计算:
在这里插入图片描述
这里有三个骰子,第一个骰子6个面,每个面(1,2,3,4,5,6)出现的概率是1/6。
第二个骰子是个四面体(称这个骰子为D4),每个面(1,2,3,4)出现的概率是1/4。
第三个骰子有八个面(称这个骰子为D8),每个面(1,2,3,4,5,6,7,8)出现的概率是1/8。

把这三个骰子放入一个黑盒子中,有放回的抽取一个骰子,然后用投掷该骰子(假设并不知道该骰子是哪一个),记录投掷的数字,然后通过投掷的数字来推测我们抽取的骰子的顺序。
例如我们得到一个序列值:1 6 3 5 2 7 3 5 2 4。
在这里插入图片描述

这里就包含了两种状态:
1、隐含的状态,抽取的是哪一个骰子;
2、可观测的状态,使用该骰子投出的数值。

我们假设每个状态间转移的概率(抽取骰子的概率,这里为1/3)是固定的(即为不因观测值的数值而改变)。可以得到状态转移矩阵。
在这里插入图片描述
那么我们得到观测值序列1 6 3 5 2(这里只取1前五个)出现概率的计算公式:
在这里插入图片描述
在这里插入图片描述
在该例子中:
状态集合Q={D4,D6,D8} N=3
观测集合V={1,2,3,4,5,6,7,8} M=8
观测序列O={1,6,3,5,2,7,3,5,2,4}(我们所记录的数字)
初始概率分布π={1/3,1/3,1/3} (第一次抽取到的骰子属于{D4,D6,D8}这三种状态的概率)
状态转移概率分布A:(一个元素全为1/3的3x3矩阵)
观测概率分布B:在这里插入图片描述

计算概率的方法就是,初始状态概率分布、观测概率分布、转移概率矩阵的乘积。
当某个状态序列的概率值最大,则该状态序列即为,出现该观测值的情况下,最可能出现的状态序列。

猜你喜欢

转载自blog.csdn.net/liusisi_/article/details/108350944