HMM模型
1.⻢尔科夫链
1.1 简介
⻢尔科夫链即为状态空间中从⼀个状态到另⼀个状态转换的随机过程。
-
该过程要求具备“⽆记忆”的性质:
- 下⼀状态的概率分布只能由当前状态决定,在时间序列中它前⾯的事件均与之⽆关。这种特定类型的“⽆记忆性”称作⻢尔可夫性质。
-
⻢尔科夫链作为实际过程的统计模型具有许多应⽤。
-
在⻢尔可夫链的每⼀步,系统根据概率分布,可以从⼀个状态变到另⼀个状态,也可以保持当前状态。
-
状态的改变叫做转移,与不同的状态改变相关的概率叫做转移概率。
-
⻢尔可夫链的数学表示为:
-
既然某⼀时刻状态转移的概率只依赖前⼀个状态,那么只要求出系统中任意两个状态之间的转移概率,这个⻢尔科夫链的模型就定了。
2.2 经典举例
下图中的⻢尔科夫链是⽤来表示股市模型,共有三种状态:⽜市(Bull market), 熊市(Bear market)和横盘 (Stagnant market)。
每⼀个状态都以⼀定的概率转化到下⼀个状态。⽐如,⽜市以0.025的概率转化到横盘的状态。
- 这个状态概率转化图可以以矩阵的形式表示。
- 如果我们定义矩阵阵P某⼀位置P(i, j)的值为P(j|i),即从状态i变为状态j的概率。
- 另外定义⽜市、熊市、横盘的状态分别为0、1、2,这样我们得到了⻢尔科夫链模型的状态转移矩阵为:
当这个状态转移矩阵P确定以后,整个股市模型就已经确定
2.HMM模型的三个基本问题
HMM模型⼀共有三个经典的问题需要解决:
1)评估观察序列概率 —— 前向后向的概率计算
-
即给定模型λ = (A, B, Π)和观测序列O = {o 1 , o 2 , …o T },计算在模型 λ 下某⼀个观测序列O出现的概率P(O|λ )。
-
这个问题的求解需要⽤到前向后向算法,是HMM模型三个问题中最简单的。
2)预测问题,也称为解码问题 ——维特⽐(Viterbi)算法
- 即给定模型λ = (A, B, Π)和观测序列O = {o 1 , o 2 , …o T },求给定观测序列条件下,最可能出现的对应的状态序列。
- 这个问题的求解需要⽤到基于动态规划的维特⽐算法,是HMM模型三个问题中复杂度居中的算法。
3)模型参数学习问题 —— 鲍姆-⻙尔奇(Baum-Welch)算法(状态未知) ,这是⼀个学习问题
- 即给定观测序列O = {o 1 , o 2 , …o T },估计模型λ = (A, B, Π)的参数,使该模型下观测序列的条件概率P(O∣λ)最⼤。
- 这个问题的求解需要⽤到基于EM算法的鲍姆-⻙尔奇算法,是HMM模型三个问题中最复杂的。