1. 隐马尔可夫模型简介
HMM属于生成式模型,是对联合概率进行建模。
ps:判别式模型(计算条件概率分布)和生成式模型(计算联合概率分布)
隐马尔可夫模型是对含有隐变量的马尔可夫序列链进行建模,主要用于时序数据建模,主要应用于语音识别和NLP。
状态序列:yi表示第i时刻的系统状态,它是隐藏的不可被观测的,亦称“隐变量”。例如:Y表示大气层的变化!
ps:需要预测的概率目标。
观测序列:xi表示第i时刻的观测值,离散值。例如:X表示天气的情况!
ps:样本的特征。
模型的参数:矩阵A(状态转移矩阵 N种状态) 矩阵B(特征矩阵 N种状态M种观测) 向量(初始化状态 N种状态),
ps:模型的三要素:目标矩阵,特征矩阵,初始化向量,构成
ps:学习参数的问题使用EM算法进行了解决。
2.模型的假设和三个基本问题
两个基本假设:
(1)任意t时刻的状态只依赖于前一时刻的状态,与其他时刻均无关。

(2)任意时刻的观测只依赖于该时刻模型的状态,与其他观测和状态无关。

马尔可夫序列链:属于马尔科夫链

三个基本问题:
(1)观测序列的概率计算问题。给定模型参数 和观测序列O,计算在模型参数条件下观测序列出现的概率 。(DP)
(2)参数学习问题。已知观测序列,估计模型参数 ,使得在该模型下观测序列出现概率最大 。(EM)
(3)状态序列的预测问题。已知模型参数 和观测序列O,求给定观测序列条件概率 最大的状态序列 。(DP)
3.问题一:概率计算算法
直接计算法:

前向算法:
给定模型 ,定义到时刻t观测序列为O1,O2.....Ot且状态为qi的概率为前向概率。

算法过程:

递推解释:

后向算法:
给定参数 ,定义在时刻t状态为qi前提下,从t+1到T部分的观测序列为Ot+1,Ot+2,OT的概率为后向概率。


递推解释:同上
给定模型参数求观测序列:


4.问题二:学习算法
若训练数据包含观测序列和状态序列,那么HMM的学习非常简单,是监督学习。
可以直接利用大数定理“频率的极限是概率”给出HMM的参数估计!

若训练数据不包含状态序列,那么HMM的学习需要使用EM算法,是非监督学习。
第一步(E):根据初始化的参数求出隐变量的概率。

确定Q函数(对数似然函数):

并且对Q取期望得:

第二步(M):将第一步求出来的值带入到化简的模型(用极大似然估计建立)中去,在求极值更新参数即可

注意三个参数分别位于三个项中,所以可以分别极大化,分别用拉格朗日乘子法+概率和为1的约束条件去求!
5.问题三:预测算法
近似算法:
在每一时刻t选择一个最有可能出现的状态 ,从而得到一个状态序列,将他作为预测结果。



实际中是有效的!
维特比(Viterbi)算法:
利用DP思路求概率最大的路径,这一条路径对应一个状态序列!



递推解释:同上 |