目录
关于什么是隐马尔可夫模型我想你看到的解释应该是酱紫的:
隐马尔可夫模型(Hidden Markov Model,HMM)是统计模型,它用来描述一个含有隐含未知参数的马尔可夫过程。其难点是从可观察的参数中确定该过程的隐含参数。然后利用这些参数来作进一步的分析,隐马尔科夫模型在语音识别、自然语言处理、生物信息、模式识别等领域有着广泛的应用。
或者是这样子的:
隐马尔可夫模型是关于时序的概率模型,描述由一个隐藏的马尔可夫链随机生成不可观测的状态随机序列,再由各个状态生成一个观测而产生观察随机序列的过程......
看不懂没关系,我也看不懂,这可能是出于专业出版的对于定义的严谨性,所以很多时候看不懂一些文献、书籍没关系,我很喜欢博客上各位大神的博文,他们常常能够解决我最根本的问题,看懂了他们博文,再去看书籍和文献,什么都通了。
一、什么是隐马尔可夫模型
我们先用一个例子来说明一下什么是隐马尔可夫模型
该例子来自Yang Eninala博士的知乎https://www.zhihu.com/question/20962240/answer/33438846
一个经典的例子,掷骰子。假设我手里有三个不同的骰子。第一个骰子是我们平常见的骰子(称这个骰子为D6),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/3。然后我们掷骰子,得到一个数字,1,2,3,4,5,6,7,8中的一个。不停的重复上述过程,我们会得到一串数字,每个数字都是1,2,3,4,5,6,7,8中的一个。例如我们可能得到这么一串数字(掷骰子10次):1 6 3 5 2 7 3 5 2 4
这串数字叫做可见状态链。但是在隐马尔可夫模型中,我们不仅仅有这么一串可见状态链,还有一串隐含状态链。在这个例子里,这串隐含状态链就是你用的骰子的序列。比如,隐含状态链有可能是:D6 D8 D8 D6 D4 D8 D6 D6 D4 D8,这条链就是HMM中说到的马尔可夫链。基于这种类型引发的问题就是隐马尔可夫模型。
马尔可夫链不是为了隐马尔科夫模型取的,他的应用也不只是隐马尔可夫。
我们再来看看马尔可夫链的定义过程:
马尔可夫过程的定义:
⑴设 是一个随机过程,如果在
在
时刻所处的状态为已知时,
以后的状态与它在时刻
之前所处的状态无关,则称具有马尔可夫性。(就是说某个状态的概率只受前一个状态的影响)
⑵设 的状态空间为
,如果对于任意的
,任意的
,在条件
下,
的条件概率分布函数恰好等于其在条件
下的条件概率分布函数,即
则称 为马尔可夫过程。
((2)在于用公式来表达定义(1),==》P(t时刻的状态|前1—t-1时刻发生的条件下)=P(t时刻的状态|t-1时刻发生的条件)
其实对于HMM来说,如果提前知道所有隐含状态之间的转换概率和所有隐含状态到所有可见状态之间的输出概率,做模拟是相当容易的。但是应用HMM模型时候呢,往往是缺失了一部分信息的,有时候你知道骰子有几种,每种骰子是什么,但是不知道掷出来的骰子序列;有时候你只是看到了很多次掷骰子的结果,剩下的什么都不知道。如果应用算法去估计这些缺失的信息,就成了一个很重要的问题。这些东西就是HMM要解决的问题。
二、隐马尔可夫模型要解决的问题
*在提问题之前我们先来定义几个变量(重新看一下这个图的图例)
*几个矩阵的定义
所有可能的状态集合 |
所有可能的观测集合 |
T时刻的状态序列 |
T时刻的观测序列 |
状态转移概率矩阵
|