马尔科夫链即为状态空间中从一个状态到另一个状态转换的随机过程,并且当前状态只与上一个状态有关,即:上一个事件的发生可以影响到下一个事件的发生概率。
1. HMM 模型
隐马尔科夫模型用于解决序列预测问题。
HMM 特征:
- 问题中有两类数据:状态值序列、观测值序列
- 问题都是基于序列,比如:时间序列、状态序列
HMM 假设:
- 齐次马尔科夫假设:任意时刻的状态值只依赖于它前一个状态值。
- 观测独立性假设:任意时刻的观测值只依赖于此刻的状态值。
一个 HMM 模型由:初始状态概率 Π、状态转移概率 A、观测概率 B 决定,λ = (A, B, Π) 也可以理解为 HMM 的模型参数。
隐马尔科夫模型主要解决三类问题:
- 估值问题,即:计算马尔科夫模型产生一个观测序列的概率
- 解码问题,即:已知一个观测序列,寻找最有可能产生它的状态序列
- 学习问题,即:给定隐马尔科夫模型的结构,但参数未知,给定一组训练样本,确定模型的参数 A 和 B
2. 估值问题
已知:初始状态概率、转移概率、观测概率、观测值序列,状态值序列【未知】
求解:计算马尔科夫模型产生一个观测序列的概率
分析:任意状态值序列都可能导致此观测序列的出现,需要把不同状态值序列导致观测值出现的概率累加。
算法: 前向分布算法.
3. 解码问题
已知:初始状态概率、转移概率、观测概率、观测值序列
目标:寻找最有可能产生它的状态序列
未知:最优可能的状态值序列,即:概率值最大的状态值序列
算法:维特比算法
分析:
- 对于观测序列: 红、白、红,可以由以下多种状态值序列产生:
- 盒子1、盒子2、盒子3
- 盒子1、盒子1、盒子3
- 盒子2、盒子2、盒子3
- … 多种可能,不同的状态值序列对应不同的观测值序列概率
- 希望得到最大的观测值序列的概率对应的状态值序列
4. 学习问题
问题:给定隐马尔科夫模型的结构,但参数未知,给定一组训练样本,求解模型的参数 Π、A 和 B
已知:训练样本、观测序列、状态序列
未知:隐马尔科夫模型的参数:λ = (A, B, Π)
鲍姆-韦尔奇算法原理既然使用的就是EM算法的原理。