黑马程序员技术交流社区
标题:
【上海校区】隐马尔可夫模型
[打印本页]
作者:
梦缠绕的时候
时间:
2018-11-26 09:27
标题:
【上海校区】隐马尔可夫模型
摘要
介绍隐马尔可夫模型的基本概念、概率计算、学习方法、预测方法等内容。
正文
1. 基本概念
隐马尔可夫模型是关于时序的模型,描述一个隐藏的马尔可夫链随机生成不可观测的状态序列,再由各个状态序列生成一个可观测的观测序列的过程。模型由初始概率分布()、状态转移概率分布()、观测概率分布()决定,即模型可以表示为。
状态转移矩阵:
,
其中表示从状态转变为状态的概率,即
。
观测矩阵:
,
其中表示在时刻处于状态时,观测为的概率,即
。
初始概率分布:
,
其中表示初始时处理状态的概率,即
。
需要注意的是,从模型的定义上来看,模型有两个假设:当前时刻的状态只与前一时刻的状态相关(齐次马尔可夫性);当前时刻的观测只取决于当前的状态(观测独立性)。
注:笔者在看书时有个疑惑,即在时刻状态为,时刻的状态是还是。应该是前者,即中间状态噏状态相关,与观测无关。
2. 概率计算
马尔可夫模型的概率计算问题,可以归结为给定模型和观测序列,计算在模型下观测序列出现的概率。可以利用前向后向算法来计算。
2.1前向算法
前向概率:给定马尔可夫模型,定义到时刻时,状态为,观测序列为的概率为前向概率。即
。
假设初始值为
,
时刻的概率为
,
故
。
的解释为,计算到时刻部分观测序列为且在时刻处于状态的前向概率。表示到时刻观测到且在时刻处于状态,而在时刻处于状态的联合概率。对这个乘积在时刻的所有可能的N个状态求和,其结果表示到时刻观测到且在时刻处于状态的联合概率。再乘以后,其结果表示到时刻观测到且在时刻处于状态的联合概率。
的解释为,在时刻时,,对在时刻的所有状态求和,即表示到时刻观测到的概率。
解释图如下所示。
2.2后向算法
后向概率:给定马尔可夫模型,定义在时刻状态为的条件下,从到的部分观测序列为的概率为后向概率。公式为:
假设T时刻
对于
所以
解释图如下所示
2.3前向后向算法
利用前向后向概率的定义,可以将观测序列概率写成
2.4重要概率的计算
在给定观测序列和模型的情况下,在时刻处于状态的概率为
在给定模型与观测序列的情况下,在时刻处于状态且在时刻处理状态的概率为
可以将和对各个时刻求各,得到如下有用的期望值:
(1)在观测状态下状态出现的期望值,即在各个时刻出现状态的总和
(2)在观测状态下由状态转移的期望值,即在除最后时刻外,各个时刻出现状态的总和
(3)在观测状态下由状态转移到状态的期望值,即对每个时刻由状态转换到状态的概率的总和
3.学习算法——Baum-Welch算法
隐马尔可夫的学习问题为给定观测序列,状态序列未知,学习隐马尔可夫模型的参数。把观测序列看作观测数据,状态序列看作不可观测的隐数据,则隐马尔可夫模型可看作一个含有隐变量的概率模型
所以参数学习可以用EM算法实现。
3.1.确定完全数据的对数似然函数
观测数据,隐数据,则完全数据为。完全数据对应的对数似然函数是。
3.2.EM算法的E步
Q函数为
是隐马参数的当前估计值,是要极大化的隐马参数。
上式可写成
3.3.EM算法的M步
对上式三部分分别利用拉格朗日乘子法,写出拉格朗日函数,并求偏导数,得到各个参数的值。
第一部分可以写成
其中 ,利用拉格朗日乘子法后,可得
对求和得到
进而可以得到
第二部分写成
其中,利用拉格朗日乘子法后,可得
第三部分写成
其中。时对的偏导数才不为,以表示。利用拉格朗日乘子法后,可得
3.4. Baum-Welch模型参数估计公式
输入:观测数据
输出:隐马尔可夫模型参数
初始化,,选取,得到模型。
对于
最后得到模型参数。
4.利用维特比算法来预测
维特比算法实际上是用了动态规划的思想,在每个时刻记录每个由状态(N种可能)转变为状态,且观测为的最大概率的路径,最后比较在时刻T时的概率,选出概率最大者,并取出能到达该状态的那条路径作为状态序列。
算法过程如下:
初始化
对于
(记录上一时刻的结果与当前时刻的转移概率乘积的最大值所对应的当前状态)
最后
对于,可以用最优路径回溯来求出
分析一道例题来使该过程更加形象。
例题是《统计学习方法》中P186页例10.3。题目不再赘述,只是简单地讲一下与上述步骤相关的过程。左图为原图,右图中的红线是计算过程中由于结果小而忽略的情况。
初始状态1,2,3的 为0.28,0.16,0.1;
利用公式计算在时各个状态对应的概率值,最后只保留最大的概率值,即0.042,0.0504,0.028,并记录达到最大值时,上一时刻的状态,即状态3。
在时,从状态1到状态3的计算结果要大于状态2/3的概率值,因此对于状态3,记录计算值0.0147和对应的上一时刻的状态,即状态,3;状态2和3也是如此。
最后比较时,各个概率值,0.0147最大,因此从状态3开始回溯,能够使最大的状态是状态3,即的状态为3,同理时,状态为3。
---------------------
作者:另一个我竟然存在
来源:CSDN
原文:
https://blog.csdn.net/qq_24034545/article/details/83781200
版权声明:本文为博主原创文章,转载请附上博文链接!
作者:
不二晨
时间:
2018-11-28 15:47
奈斯
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2