马尔科夫模型

马尔科夫模型是基于概率论的,一个马尔科夫模型就是一个具有马尔科夫性的概率模型。马尔科夫性的假设让很多问题的求解简化和变得可能。在语音处理,以及你现在赈灾使用的输入法(自然语言处理)都有很好的应用。

首先,马尔科夫模型根据系统是否可控和可观察分为以下四类,这也是最普遍的四类情况。

  系统状态完全可观察 系统状态部分可观察
自主系统 马尔科夫链 隐马尔科夫模型
受控系统 马尔科夫决策过程 隐马尔科夫

一.马尔科夫链(Markov Chain)

这里面最简单的就是马尔科夫链了。假设系统有有限个离散的状态,此刻系统的状态只依赖于上一刻系统状态,与其他条件无关。同理,下一刻系统的状态只会依赖于此刻的系统状态。这被称为“无记忆性的随机过程”(因为只依赖于前一刻的系统状态嘛~所以没啥记忆性,不考虑所有时刻的系统状态)。由于系统是随机的,所以我们不能预测在将来某一个时刻的系统状态,但是我们能给出在该时刻系统处于某个状态上的概率。


上图是最简单的两状态马尔科夫链,如初始状态为E,下一状态为A的概率0.7,在下一状态仍为A的概率为0.6。用公式可以这样表达:


式子左部分表示已知X1时刻系统状态为x1...Xn时刻系统状态为xn,求Xn+1时刻系统状态为x的概率。式子右半部分说明这只和Xn时刻的系统状态有关,即求从xn到x的转移概率。

 一般来讲,如果系统存在c个有限状态,那可以用一个c*c的转移矩阵P来描述这个马尔科夫链,每个元素如下。


注意,这个矩阵是对称的,且每一行(列)加起来的值会等于1,你说是么?


二.隐马尔科夫模型(Hidden Markov Chain)

在上面的模型中,系统的状态是可以观测到的,但在某些情况下,系统状态要由另外一个变量来反应。比如现在用的拼音输入法,对输入法程序来说,我们想打出的汉字叫做隐含状态S,可观测状态O为我们打的拼音。S是不能直接被观测到的,比如我打出shi,输入法可以观测到我们输入的拼音,但真正状态可能是“是时事使市室...”这些状态中的一个,输入法必须通过观测状态O到真实状态S的转移概率给出汉字的排序以供我们选择。同样的方法也应用于语音识别。下图X为隐含状态S,y为观察状态O。


隐马尔科夫模型(HMM)可以用五个元素来描述,包括2个状态集合和3个概率矩阵:

  1. 隐含状态 S
  这些状态之间满足马尔可夫性质,是马尔可夫模型中实际所隐含的状态。这些状态通常无法通过直接观测而得到。(例如S1、S2、S3等等)
  2. 可观测状态 O
  在模型中与隐含状态相关联,可通过直接观测而得到。(例如O1、O2、O3等等,可观测状态的数目不一定要和隐含状态的数目一致。)
  3. 初始状态概率矩阵 π 
  表示隐含状态在初始时刻t=1的概率矩阵,(例如t=1时,P(S1)=p1、P(S2)=P2、P(S3)=p3,则初始状态概率矩阵 π=[ p1 p2 p3 ].
  4. 隐含状态转移概率矩阵 A。
  描述了HMM模型中各个状态之间的转移概率。
  其中Aij = P( Sj | Si ),1≤i,,j≤N.
  表示在 t 时刻、状态为 Si 的条件下,在 t+1 时刻状态是 Sj 的概率。
  5. 观测状态转移概率矩阵 B (英文名为Confusion Matrix,直译为混淆矩阵不太易于从字面理解)。
  令N代表隐含状态数目,M代表可观测状态数目,则:
  Bij = P( Oi | Sj ), 1≤i≤M,1≤j≤N.
  表示在 t 时刻、隐含状态是 Sj 条件下,观察状态为 Oi 的概率。
  总结:一般的,可以用λ=(A,B,π)三元组来简洁的表示一个隐马尔可夫模型。隐马尔可夫模型实际上是标准马尔可夫模型的扩展,添加了可观测状态集合和这些状态与隐含状态之间的概率关系。


references:维基百科 百度百科 机器视觉教程



你可能感兴趣的:(马尔科夫模型)