一. 马尔科夫模型
马尔科夫模型描述了一类的重要随机过程。如果一个系统有N个 有限状态 S = { s 1 , s 2 , s 3 , . . . . . . , s n } S=\{s1,s2,s3,......,sn\} S={s1,s2,s3,......,sn}, 随着时间的推移, 该系统将从某一个状态转移到另外一个状态。 Q = ( q 1 , q 2 , . . . . . . . , q 3 ) Q=(q_1,q_2,.......,q_3) Q=(q1,q2,.......,q3) 为一个随机变量序列,随机变量的取值为状态集S中的某个状态,简单来说 观测到的序列即为状态的序列, 所以所状态序列是可见的,假定在时间t的状态记为 q t q_t qt.对该系统的描述通常需要给出当前时刻t 的状态和其前面所有的状态的关系:系统在时间t处于状态 s j s_j sj的概率取决于其在时间1,2,…,t-1的状态,该概率为 P ( q t = s j ∣ q ( t − 1 ) = s i , q ( t − 2 ) = s k , . . . . ) P(q_t=s_j|q_(t-1)=s_i,q_(t-2)=s_k,....) P(qt=sj∣q(t−1)=si,q(t−2)=sk,....).
- 马尔科夫链
如果在特定条件下,系统在时间t 的状态 只与其在时间 t-1 的状态相关, 即式 (6-1)
该系统构成 一个离散的一阶马尔科夫链**
- 马尔科夫模型
在马尔科夫模型中,每个状态代表了可观察的事件, 所以,马尔可夫模型又称为 可视马尔科夫模型。
m 阶马尔科夫模型中的m 为用于预测下一个状态的前面状态的个数.
二. 隐马尔科夫模型
2.1 隐马尔科夫模型定义
- 一个HMM记为一个五元组
μ
=
(
Q
,
V
,
A
,
B
,
π
)
\mu=(Q,V,A,B,\pi)
μ=(Q,V,A,B,π), 其中 S为状态的集合,K 为输出符号的集合,
π
\pi
π,A和B分别是初始状态的概率分布,状态分布和符号发射概率。为了简单,有时也将其即为三元组
μ
=
(
A
,
B
,
π
)
\mu=(A,B,\pi)
μ=(A,B,π)
- 隐马尔科夫做的假设
2.2 隐马尔可夫模型三个问题
2.3 解决三个问题的算法以及相关实现
- 概率计算问题 使用前向后向算法
- 学习问题 使用BW算法
- 预测问题 使用维特比算法,维特比java 的实现版本。
算法的说明参考统计学方法,算法的实现参考隐马尔可夫模型(http://www.hankcs.com/ml/hidden-markov-model.html),