11.11大促主会场
新人页面
精选商品
首月0月租体验,领12个月京东PLUS
自营热卖

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

隔山隔海 1年前   阅读数 131 0

1. 隐马尔可夫模型简介

先提一句,判别式模型(计算条件概率分布)和生成式模型(计算联合概率分布),而HMM是生成式模型。

隐马尔可夫模型是一种贝叶斯网,是一种有向图模型,主要用于时序数据建模,主要应用于语音识别和NLP。

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

观测序列:xi表示第i时刻的观测值,可以是连续值也可以是离散值(仅讨论离散的)。例如:X表示天气的情况!

模型的参数:矩阵A(状态转移概率 N*N  N种状态)                 矩阵B(观测概率矩阵N*M N种状态M种观测)     向量(初始化状态 N种状态),      这就是模型的三要素:

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

两个基本假设:

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

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

这就是它的模型:

三个基本问题:

(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.问题一:概率计算算法

直接计算法:

前向算法:

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

算法过程:

递推解释:

后向算法:

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

递推解释:同上

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

4.问题二:学习算法

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

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

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

第一步(E):根据初始化的参数求值,确定Q函数并且取期望。

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

并且对Q取期望得:

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

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

5.问题三:预测算法

近似算法:

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

实际中是有效的!

维特比(Viterbi)算法:

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

递推解释:同上


注意:本文归作者所有,未经作者允许,不得转载

全部评论: 0

    我有话说: