隐马尔科夫模型
Viviterbi算法
马尔科夫性质
马尔科夫链
马尔科夫链案例
HMM
HMM(Hidden Markov Model)隐马尔科夫模型是一种统计模型,在语音识别、行为识别、NLP、故障诊断等领域具有高效的性能。
HMM是关于时序概率模型,描述一个含有未知参数的马尔科夫链所生成的不可观测的状态序列,再由各个状态生成观测随机序列的过程。HMM是一个双重随机过程--具有一定状态的隐马尔科夫链和随机的观测序列。
HMM随机生成的状态随机序列被称为状态序列;每一个状态生成的一个观测,由此产生的观察随机序列,被称为观测序列。
HMM由隐含状态S、可观测状态O、初始状态概率矩阵π、隐含状态转移概率矩阵A、可观测值转移矩阵B(又称为混淆矩阵,Confusion Matrix);
π和A决定了状态序列,B决定了观测序列,因此HMM可以使用三元符号表示,称为HMM的三元素:
HMM的两个性质
HMM案例
HMM的三个问题
- 概率计算的问题:前向-后向算法
- 给定模型λ=(A,B,π)和观测序列Q={q1,q2,...,qT},计算模型λ下观测到序列Q出现的概率P(Q|λ)
- 学习问题:Baum-Welch(状态未知)
- 已知观测序列Q={q1,q2,...,qT},估计模型λ=(A,B,π)的参数,使得在该模型下观测序列P(Q|λ)最大。
- 预测问题:Viterbi算法
- 给定模型λ=(A,B,π)和观测序列Q={q1,q2,...,qT},求给定观测序列条件概率P(I|Q,λ)最大的状态序列I
- 概率计算问题
直接计算法
暴力算法
前向算法
后向算法
- 直接计算法
- 前向概率-后向概率
- 前向算法
单个状态的概率
两个状态的联合
学习问题
若训练数据包含观测序列和状态序列,则HMM的学习问题就非常简单,是监督学习算法。
若训练数据指包含观测序列,则HMM的学习问题需要使用EM算法求解,是非监督学习算法。
学习问题_监督学习
直接使用大数定理的结论"频率的极限是概率",直接给出HMM的参数估计:
学习问题_非监督学习
Baum-Welch算法
预测问题
- 近似算法
- Viterbi算法
近似算法
HMM案例-Viterbi