1 马尔可夫性质
2 马尔可夫链
- 马尔可夫链是指具有马尔可夫性质的随机过程。在过程中,在给定当前信息的情况下,过去的信息状态对于预测将来状态是无关的。
- 在马尔可夫链的每一步,系统根据概率分布,可以从一个状态变成另外一个状态,也可以保持当前状态不变。状态的改变叫做转移,状态改变的相关概率叫做转移概率。
- **马尔可夫链中的三元素是:**状态空间S、转移概率矩阵P、初始概率分布π。
2.1 马尔可夫链—案例
设将天气状态分为晴、阴、雨三种状态,假定某天的天气状态只和上一天的天气状态有关,状态使用1(晴)、2(阴)、3(雨)表示,转移概率矩阵P如下:
3 隐马尔可夫模型(HMM)
- 隐马尔可夫模型(Hidden Markov Model, HMM)是一种统计模型,在语音识别、行为识别、NLP、故障诊断等领域具有高效的性能。
- HMM是关于时序的概率模型,描述一个含有未知参数的马尔可夫链所生成的不可观测的状态随机序列,再由各个状态生成观测随机序列的过程。HMM是一个双重随机过程—具有一定状态的隐马尔可夫链和随机的观测序列。
- HMM随机生成的状态随机序列被称为状态序列;每个状态生成一个观测,由此产生的观测随机序列,被称为观测序列。
- HMM由隐含状态S、可观测状态O、初始状态概率矩阵π、隐含状态转移概率矩阵A、可观测值转移矩阵B(又称为混淆矩阵,Confusion Matrix);
- π和A决定了状态序列,B决定观测序列,因此HMM可以使用三元符号表示,称为HMM的三元素:
3.1 HMM参数说明
3.2 HMM的两个基本性质
3.3 HMM案例
3.4 HMM案例—前向算法
- 在给定参数π、A、B的时候,得到观测序列为“白黑白白黑”的概率是多少?? (4.1.3 前向算法)
3.5 HMM案例-Viterbi
在给定参数π、A、B的时候,得到观测序列为“白黑白白黑”,求出最优的隐藏状态序列。
回溯最优路径:
δ5(3)→δ4(2)→δ3(2)→δ2(3)→δ1(2)
最终盒子序列为:(2,3,2,2,3)
4 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。
4.1 概率计算问题(3种解法)
4.1.2前向概率-后向概率
4.1.3 ②前向算法
定义:给定λ,定义到时刻t部分观测序列为q1,q2,…,qt且状态为si的概率为前向概率。记做:
4.1.4 ③后向算法
定义:给定λ,定义到时刻 t 状态为 si 的前提下,从t+1到T部分观测序列为qt+1,qt+2,…,qT的概率为后向概率。记做:
4.1.5 单个状态的概率
求给定模型λ和观测序列Q的情况下,在时刻t处于状态si的概率,记做:
单个状态概率的意义主要是用于判断在每个时刻最可能存在的状态,从而可以得到一个状态序列作为最终的预测结果。具体求解公式如下:
4.1.6 两个状态的联合概率
求给定模型λ和观测序列Q的情况下,在时刻t处于状态si并时刻t+1处于状态sj概率,记做:
4.2 学习问题
- 若训练数据包含观测序列和状态序列,则HMM的学习问题非常简单,是监督学习算法。
- 若训练数据只包含观测序列,则HMM的学习问题需要使用EM算法求解,是非监督学习算法。
4.2.1 学习问题—监督学习
直接利用大数定理的结论“频率的极限是概率”,直接给出HMM的参数估计;
4.2.2 学习问题—非监督学习(使用Baum-Welch算法)
-
若训练数据中只有观测序列,则HMM的学习问题需要使用EM算法,属于非监督算法;此时一般使用Baum-Welch算法。
-
所有的观测数据为Q={q1,q2……qT},所有的隐状态为l={i1,i2.……iT},则完整的数据为(O,I),完整数据的对数似然函数为In(p(Q,I;λ));然后直接使用EM算法的方式来进行参数估计。
4.2.3 Baum-Welch算法 - π求解
极大化L,使用拉格朗日乘子法,求解π的值:
4.2.4 Baum-Welch算法 - A求解
极大化L,使用拉格朗日乘子法,求解aij的值:
4.2.5 Baum-Welch算法 - B求解
极大化L,使用拉格朗日乘子法,求解bij的值:
4.2.6 Baum-Welch算法 - 分别求得π、A、B
极大化L函数,分别可以求得π、a、b的值
4.3 预测问题
问题: 在观测序列已知的情况下,状态序列未知。想找到一个最有可能产生当前观测序列的状态序列。
可以用下面两种办法来求解这个问题:
1、近似算法
2、Viterbi算法
4.3.1 近似算法
直接在每个时刻t时候最优可能的状态作为最终的预测状态,使用下列公式计算概率值:
遍历时间t。
优点是计算简单;而缺点就很明显了,没有考虑时序关系,不能保证预测的状态序列整体上是最优可能的状态序列,预测的状态序列可能有实际不发生的部分。
4.3.2 Viterbi算法
Viterbi算法实际是用动态规划的思路求解HMM预测问题,求出概率最大的“路径”,每条“路径”对应一个状态序列。