1、MM
先有马尔可夫模型,再有隐马尔可夫模型,什么叫马尔可夫模型呢,也就是具有马尔可夫性质的模型,而马尔可夫性质用概念来讲,就是:一个过程的“将来”只取决于“现在”,而不取决于“过去”。这就叫马尔可夫性,具有马尔可夫性的过程叫做马尔可夫过程。
(下面来一段数学定义:
设在时刻t的随机变量用St 表示,其观察值用st表示,则如果当S1=s1,S2=s2,……St=st的前提下 ,S(t+1)=s(t+1)的概率为:
当n=1时就是一阶马尔可夫模型了,这个式子就是表明:系统在任一时刻所处的状态只与此时刻的前一时刻所处的状态有关 (注意,跟上面的“过去”、“现在”、“将来”要理解开来),后面还有一些时间无关性、转移概率相关的数学函数,在此先不列出,重在理解马尔可夫模型的思想先。
)
2、HMM
HMM与一阶MM形式差不多,而H则体现在HMM是由两个随机过程组成,一个是状态转移序列,它对应着一个单纯Markov过程;另一个是每次转移时输出的符号组成的符号序列。这两个随机过程,其中状态转移随机过程是不可观测的,只能通过另一个随机过程的输出观察序列观测。
例如,容器与彩球的模型:有若干个容器,每个容器中按已知比例放入各色的彩球(这样,选择了容器后,我们可以用概率来预测取出各种彩球的可能性);我们做这样的实验,实验者从容器中取彩球——先选择一个容器,再从中抓出某一个球,只给观察者看球的颜色;这样,每次取取出的球的颜色是可以观测到的,即o1, o2,…,但是每次选择哪个容器是不暴露给观察者的,容器的序列就组成了隐藏状态序列S1, S2,…Sn。这是一个典型的可以用HMM描述的实验。
以语音识别为例讲讲HMM模型,HMM一般可用六个参数来定义,M={S,O,A,B,PI,F};
S:模型中状态的有限集合,记t时刻模型所处状态为St
O:输出的观察值符号集合,t时刻模型观察到的观察值为Ot
A:状态转移概率的集合
B:输出观测值概率的集合,根据B将HMM分为离散型和连续型
PI:系统初始状态概率的集合
F:系统终了状态的集合
为了便于表示,常用下面的形式表示一个HMM,即简写为M={A,B,pi }。HMM可以分为两部分,一个是Markov链,由pi ,A描述,产生的输出为
状态序列。另一个随机过程,由B描述,产生的输出为观察符号序列。
3、HMM的三个基本问题
a.已知观测序列O={ o1 , o2 …… oT }和模型 U{A,B,pi },如何有效计算在给定模型的条件下产生观测序列O的条件概率P(O/U)最大。
b.已知观测序列O=O={ o1 , o2 …… oT }和模型U {A,B,pi },如何选择相应的在某种意义上最佳的(能最好解释观测序列的)状态序列S。
c.如何调整模型参数U {A,B,pi }以使条件概率P(O|U)最大。
4、3中abc问题的解决方案
a问题由上一篇文章中的前向算法解决
b问题由viterbi算法解决
c问题后续继续说明,其使用的算法是Baum-Welch算法
5、viterbi算法的例子
假设你有一个朋友在外地,每天你可以通过电话来了解他每天的活动。他每天只会做三种活动之一——Walk, Shop, Clean。你的朋友从事哪一种活动的概率与当地的气候有关,这里,我们只考虑两种天气——Rainy, Sunny。我们知道,天气与运动的关系如下:
P(o|state) | Rainy |
Sunny |
Walk |
0.1 |
0.6 |
Shop |
0.4 |
0.3 |
Clean |
0.5 |
0.1 |
例如,在下雨天出去散步的可能性是0.1。
而天气之前互相转换的关系如下,(从行到列)
p(state—>next_state) | Rainy |
Sunny |
Rainy |
0.7 |