一、概述
1. 介绍
动态模型可以类比高斯混合模型这种静态模型,高斯混合模型的特点是“混合”,动态模型的特点是在“混合”的基础上加入了“时间”。动态模型包括多种模型:
隐马尔可夫模型是动态模型的一种,它的状态空间是离散的,而另外两种动态模型的状态空间是连续的。
2. 模型
隐马尔可夫模型的概率图模型如下:
上图中代表时刻,阴影部分为观测变量序列,非阴影部分为状态变量序列,另外我们定义观测变量取值的集合为,状态变量取值的集合为:
隐马尔可夫模型的参数用表达:
其中为初始概率分布,是一个多维向量;为状态转移矩阵;为发射矩阵:
3. 两个假设
- 齐次马尔可夫假设
任意时刻的状态只依赖于前一时刻的状态,即:
- 观测独立假设
任意时刻的观测只依赖于当前时刻的状态,即:
4. 三个问题
- Evaluation
已知模型的参数,计算某个观测序列发生的概率,即求:
- Learning
已知观测序列,使用EM算法求参数:
- Decoding
已知观测序列和参数,求使概率最大的状态序列,即:
二、Evaluation问题
对于下图中的隐马尔可夫模型,Evaluation问题是在已知参数的情况下,求解:
1. 前向算法
首先我们有:
对于上式中的,有:
对于上式中的,有:
因此可得:
上面的求和是对所有的观测变量求和,所以复杂度为
下面记:
所以:
所以可以得到:
对于:
上式利用两个假设得到了一个递推公式,这个算法叫做前向算法,其复杂度为。
2. 后向算法
定义:
所以:
因此如果我们能找到到的递推式,就可以由通过递推得到,从而计算:
上式中红色的一步变换利用了概率图模型中有向图head to tail结构的性质:
这种结构满足:
到此为止便得到了递推式。这就是后向算法,其复杂度也为。
三、Learning问题
Learning问题的目标是求解参数,使用的是Baum Welch算法(也就是EM算法)。
EM算法的迭代公式如下:
在隐马尔可夫模型中,隐变量即为,观测变量即为,参数即为,因此隐马尔可夫模型的EM算法迭代公式可以写为:
上式中,由于在Learning问题中,观测序列是已知的,所以是个常数,迭代公式可以写为:
根据之前的计算对函数进行整理:
接下来以求解为例展示迭代的过程:
结合对的约束,构建拉格朗日函数:
然后对求导:
同样地,和都以同样的方法求出,然后不断迭代直至收敛,最终求得模型的参数。
四、Decoding问题
Decoding问题是指已知观测序列和参数,求使概率最大的状态序列,即:
我们采用动态规划的思想来求解这个问题,首先定义:
由于参数是已知的,为简便起见省略了,接下来我们需要找到和之间的递推式:
由此我们就找到了动态规划的递推式,同时我们还需要记录路径,因此定义:
因此:
使最大的指时刻,然后由得到时刻的取值,然后继续得到前一时刻的时刻的取值,最终得到整个序列。
五、总结
HMM 是⼀种动态模型(Dynamic Model),是由混合树形模型和时序结合起来的⼀种模型(类似 GMM + Time)。对于类似 HMM 的这种状态空间模型(State Space Model),普遍的除了学习任务(采⽤ EM )外,还有推断任务。
使用代表观测序列,代表隐变量序列,代表参数。这一类模型需要求解的问题的大体框架为:
接下来对Filtering&Smoothing&Prediction问题做一些说明,下面使用代表,同时也省略已知参数。
1. Filtering问题
因此使用Forward Algorithm来解决Filtering问题。
Filtering问题通常出现在online learning中,当新进入一个数据,可以计算概率。
2. Smoothing问题
其中:
红色这一步是使用了有向图的D划分的方法,有关讲解参照概率图模型-表示|机器学习推导系列(十)。这里我们定义A集合为,B集合为,C集合为,通过D划分的方法我们可以知道,即与是相互独立的。
由上面的式子我们可以得出:
因此解决Smoothing问题的算法叫做Forward-Backward Algorithm。
Smoothing问题通常出现在offline learning中,当知道全部观测数据时,来计算概率。
3. Prediction问题
上式应用了齐次马尔可夫假设将预测的问题进行了转化,使用转移概率和求解Filtering问题的方法就可以计算这个概率。
上式应用了观测独立假设将预测的问题进行了转化,使用发射概率和求解上一个Prediction问题的方法就可以计算这个概率。