10.隐马尔可夫模型(HMM)

1. 隐马尔可夫模型简介

HMM属于生成式模型,是对联合概率进行建模。

ps:判别式模型(计算条件概率分布)和生成式模型(计算联合概率分布)

隐马尔可夫模型是对含有隐变量的马尔可夫序列链进行建模,主要用于时序数据建模,主要应用于语音识别和NLP。

状态序列:yi表示第i时刻的系统状态,它是隐藏的不可被观测的,亦称“隐变量”。例如:Y表示大气层的变化!

ps:需要预测的概率目标。

观测序列:xi表示第i时刻的观测值,离散值。例如:X表示天气的情况!

ps:样本的特征。

模型的参数:矩阵A(状态转移矩阵  N种状态)  矩阵B(特征矩阵 N种状态M种观测\pi 向量(初始化状态 N种状态),

ps:模型的三要素:目标矩阵,特征矩阵,初始化向量,构成

ps:学习参数的问题使用EM算法进行了解决。

2.模型的假设和三个基本问题

两个基本假设:

(1)任意t时刻的状态只依赖于前一时刻的状态,与其他时刻均无关。

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

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

10.隐马尔可夫模型(HMM)_第1张图片

三个基本问题:

(1)观测序列的概率计算问题。给定模型参数\lambda和观测序列O,计算在模型参数条件下观测序列出现的概率P(O\mid \lambda )。(DP)

(2)参数学习问题。已知观测序列,估计模型参数\lambda,使得在该模型下观测序列出现概率最大P(O\mid \lambda )。(EM)

(3)状态序列的预测问题。已知模型参数\lambda和观测序列O,求给定观测序列条件概率P(I\mid O )最大的状态序列I。(DP)

3.问题一:概率计算算法

直接计算法:

10.隐马尔可夫模型(HMM)_第2张图片

前向算法:

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

算法过程:

10.隐马尔可夫模型(HMM)_第3张图片

递推解释:

10.隐马尔可夫模型(HMM)_第4张图片

后向算法:

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

10.隐马尔可夫模型(HMM)_第5张图片

递推解释:同上

给定模型参数求观测序列:

10.隐马尔可夫模型(HMM)_第6张图片

10.隐马尔可夫模型(HMM)_第7张图片

4.问题二:学习算法

若训练数据包含观测序列和状态序列,那么HMM的学习非常简单,是监督学习。

可以直接利用大数定理“频率的极限是概率”给出HMM的参数估计!

10.隐马尔可夫模型(HMM)_第8张图片

若训练数据不包含状态序列,那么HMM的学习需要使用EM算法,是非监督学习。

第一步(E):根据初始化的参数求出隐变量的概率。

10.隐马尔可夫模型(HMM)_第9张图片

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

并且对Q取期望得:

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

10.隐马尔可夫模型(HMM)_第10张图片

注意三个参数分别位于三个项中,所以可以分别极大化,分别用拉格朗日乘子法+概率和为1的约束条件去求!

5.问题三:预测算法

近似算法:

在每一时刻t选择一个最有可能出现的状态It^{*},从而得到一个状态序列,将他作为预测结果。

10.隐马尔可夫模型(HMM)_第11张图片

10.隐马尔可夫模型(HMM)_第12张图片

10.隐马尔可夫模型(HMM)_第13张图片

实际中是有效的!

维特比(Viterbi)算法:

利用DP思路求概率最大的路径,这一条路径对应一个状态序列!

10.隐马尔可夫模型(HMM)_第14张图片

递推解释:同上

你可能感兴趣的:(机器学习)