首页 > 代码库 > 隐马尔科夫模型
隐马尔科夫模型
马尔科夫过程
马尔科夫过程可以看做是一个自动机,以一定的概率在各个状态之间跳转。
考虑一个系统,在每个时刻都可能处于N个状态中的一个,N个状态集合是 {S1,S2,S3,...SN}。我们现在用q1,q2,q3,…qn来表示系统在t=1,2,3,…n时刻下的状态。在t=1时,系统所在的状态q取决于一个初始概率分布PI,PI(SN)表示t=1时系统状态为SN的概率。
马尔科夫模型有两个假设:
1. 系统在时刻t的状态只与时刻t-1处的状态相关;(也称为无后效性)
2. 状态转移概率与时间无关;(也称为齐次性或时齐性)
第一条具体可以用如下公式表示:
P(qt=Sj|qt-1=Si,qt-2=Sk,…)= P(qt=Sj|qt-1=Si)
其中,t为大于1的任意数值,Sk为任意状态
第二个假设则可以用如下公式表示:
P(qt=Sj|qt-1=Si)= P(qk=Sj|qk-1=Si)
其中,k为任意时刻。
隐马尔科夫模型由初始状态向量S、状态转移概率矩阵A和观测概率矩阵B决定,S和A决定状态序列,B决定观测序列,因此,隐马尔科夫模型λ可以用三元组符号表示,即
λ=(A,B,S)
A,B,S称为隐马尔科夫模型的三要素。
隐马尔科夫可以解决的三个问题
(1)概率计算问题:给定模型λ=(A,B,S)和观测序列O=(o1,o2,...,or),计算在模型λ下观测序列O出现的概率p(O|λ)①直接计算法
②前向算法
③后向算法
(2)学习模型:已知观测序列O=(o1,o2,...,or),估计模型λ=(A,B,S)的参数,使得在该模型下观测序列概率p(O|λ)最大,即用极大似然估计的方法估计参数
(3)预测问题:已知模型λ=(A,B,S)和观测序列O=(o1,o2,...,or),求给定观测序列条件概率p(O|λ)最大的状态序列。即给定观测序列,求最优可能的对应的状态序列。
隐马尔科夫模型