赞
踩
阅读参考吴军老师《数学之美》一书第五章部分
引入:马尔可夫链(Markov Chain),描述了一种状态序列,其每个状态值取决于前面有限个状态 。马尔可夫链是具有马尔可夫性质的随机变量的一个数列。这些变量的范围,即它们所有可能取值的集合,被称为“状态空间”,而的值则是在时间n的状态。
首先,在任何一个时刻t,对应的状态都是随机的。
举例:我们把,
,……,
,....看成是北京每天的最高气温,这里的每个状态
都是随机的。
第二,任一状态的取值都可能和周围其他的状态相关。
即:上述例子中任何一天的最高气温与这段时间以前的最高气温是相关的。
故在这样的随机过程中就有了两个维度的不确定性。
马尔可夫为了简化问题,提出假设:随机过程中的各个状态的概率分布,只与它的前一个状态
有关
即P(St|S1,S2,S3,…,St-1) = P(St|St-1)。(该假设称为马尔可夫假设,符合这个假设的随机过程则称为马尔可夫过程,也称为马尔可夫链)
在这个马尔可夫链中,四个圈表示四个状态,每条边表示一个可能的状态转换,边上的权值是转移概率。
隐含马尔可夫链是上述马尔可夫链的一个扩展:任一时刻t的状态St是不可见的。所以观察者没法通过观察到一个状态序列来推测转移概率等参数。但是隐含马尔可夫模型在每个时刻t会输出一个符号
,而且
和
相关且仅和St相关。这称为独立输出假设。
隐含马尔可夫模型的结构如下图,其中隐含的状态是一个典型的马尔可夫链。鲍姆把这种模型称为“隐含”马尔可夫模型。
基于马尔可夫假设和独立输出假设,可以计算出某个特定的状态序列产生出输出符号
的概率。
围绕隐含马尔可夫模型的三个基本问题
1、给定一个模型,如何计算某个特定的输出序列的概率?
Forward-Backward算法
2、给定一个模型和某个特定的输出序列,如何找到最可能产生这个输出的状态序列?
维特比算法
3、给定足够量的观测数据,如何估计隐含马尔可夫模型的参数?
训练隐含马尔可夫模型更实用的方式是仅仅通过大量观测到的信号O1,O2,O3,….就能推算模型参数的P(St|St-1)和P(Ot|St)的方法(无监督训练算法),其中主要使用鲍姆-韦尔奇算法。
在利用隐含马尔可夫模型解决实际问题中,需要事先知道从前一个状态进入当前状态
的概率
,也称为转移概率,和每个状态
产生相应输出符号
的概率
,也称为生成概率。
这些概率成为隐含马尔可夫模型的参数,而计算或者估计这些参数的过程称为模型的训练。
隐含马尔可夫模型的五元组
一个ΗΜΜ可以记做λ = ( S, O, A, B, π) 或λ = ( A, B, π)
1. 状态集合S={a1,a2,…,aN},一般以qt表示模型在t时刻的状态;
2. 输出符号集合O={O1,O2,…OM};
3. 状态转移概率矩阵A = aij(aij是从i状态转移到j状态的概率)
4. 可观察符号的概率分布B = bj(k),表示在状态j时输出符
号vk的概率(又称发射概率),其中:
5 .初始状态概率分布,一般记做π= {πi}, 其中:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。