隐马尔可夫模型总结
来源:互联网 发布:复数矩阵的qr分解例题 编辑:程序博客网 时间:2024/06/05 21:49
一. HMM的基本概念
1. 隐马尔可夫模型的定义
隐马尔可夫模型是关于时序的概率模型,描述由一个隐藏的马尔可夫链随机生成不可观测的状态随机序列,再由各个
状态生成一个观测而产生观测随机序列的过程。隐藏的马尔可夫链随机生成的状态的序列,成为状态序列;每个状态
生成一个观测,而由此产生的观测的随机序列,称为观测序列。序列的每一个位置又可以看作是一个时刻。
隐马尔可夫模型由初始状态概率向量、状态转移概率矩阵和观测概率矩阵决定。和决定状态序列,决定观测
序列。因此,隐马尔可夫模型可以用三元符号表示,如下所示:
其中,,,称为隐马尔可夫模型的三要素。是可能的状态数,是可能的观测数。
(1)状态转移概率矩阵
其中,是在时刻处于状态的条件下在时刻转移到状态的
概率。
(2)观测概率矩阵
其中,是在时刻处于状态的条件下生成观测的概率。
(3)初始状态概率向量
其中,是时刻处于状态的概率。
2. 观测序列的生成过程
根据隐马尔可夫模型的定义,一个长度为的观测序列的生成过程,如下所示:
输入:隐马尔可夫模型,观测序列长度;
输出:观测序列。
(1)按照初始状态分布产生状态
(2)令
(3)按照状态的观测概率分布生成
(4)按照状态的状态转移概率分布产生状态,
(5)令;如果,转步(3);否则,终止
3. 隐马尔可夫模型的3个基本问题
(1)概率计算问题
给定模型和观测序列,计算在模型下观测序列出现的概率。
(2)学习问题
已知观测序列,估计模型参数,使得在该模型下观测序列概率最大,即用极大似然
估计的方法估计参数。
(3)预测问题
已知模型和观测序列,求对给定观测序列条件概率最大的状态序列
,即给定观测序列,求最有可能的对应的状态序列。
二. 概率计算算法
1. 直接计算法
通过列举所有可能的长度为的状态序列,求各个状态序列与观测序列的联合概率
,然后对所有可能的状态序列求和,得到。这种方法时间复杂度是阶的,因此概念上可行但
计算上不可行。
2. 前向算法
给定隐马尔可夫模型,定义到时刻部分观测序列为且状态为的概率为前向概率,记作
,可以递推地求得前向概率及观测序列概率。
观测序列概率的前向算法,如下所示:
输入:隐马尔可夫模型,观测序列;
输出:观测序列概率。
(1)初值:
初始化前向概率是初始时刻的状态和观测的联合概率。
(2)递推:对,如下所示:
计算到时刻部分观测序列为且在时刻处于状态的前向概率。
(3)终止
其中,。
3. 后向算法
给定隐马尔可夫模型,定义在时刻状态为的条件下,从到的部分观测序列为的概率为后向概
率,记作,可以用递推的方法求得后向概率及观测序列概率。
观测序列概率的后向算法,如下所示:
输入:隐马尔可夫模型,观测序列;
输出:观测序列概率。
(1)初值:
初始化后向概率,对最终时刻的所有状态规定。
(2)递推:对,如下所示:
(3)终止
4. 一些概率与期望值的计算
(1)给定模型和观测,在时刻处于状态的概率,记。如下所示:
(2)给定模型和观测,在时刻处于状态且在时刻处于状态概率,记。
如下所示:
(3)将和对各个时刻求和,可以得到一些有用的期望值,如下所示:
- 在观测下状态出现的期望值;
- 在观测下由状态转移的期望值;
- 在观测下由状态转移到状态的期望值。
三. 学习算法
1. 监督学习算法
假设已给训练数据包含个长度相同的观测序列和对应的状态序列,那么可以利用极大
似然估计法来估计隐马尔可夫模型的参数。如下所示:
(1)转移概率的估计
设样本中时刻处于状态时刻转移到状态的频数为,那么状态转移概率的估计,如下所示:
(2)观测概率的估计
设样本中状态为,并观测为的频数是,那么状态为观测为的概率的估计,如下所示:
(3)初始状态概率的估计为个样本中初始状态为的频率。
2. Baum-Welch算法
假设给定训练数据只包含个长度为的观测序列而没有对应的状态序列,目标是学习隐马尔可夫模型
的参数。将观测序列数据看作观测数据,状态序列数据看作不可观测的隐数据,那么隐马尔可夫模型事
实上是一个含有隐变量的概率模型,它的参数可以由EM算法实现。
(1)确定完全数据的对数似然函数
所有观测数据写成,所有隐数据写成,完全数据是,
完全数据的对数似然函数是。
(2)EM算法的E步
求函数。其中,是隐马尔可夫模型参数的当前估计值,是要极大化的隐马尔可
夫模型参数。,于是函数可以写成,如下所示:
式中求和都是对所有训练数据的序列总长度进行的。
(3)EM算法的M步
极大化函数求模型参数。如下所示:
3. Baum-Welch模型参数估计公式
Baum-Welch算法就是EM算法在隐马尔可夫模型学习中的具体实现,如下所示:
输入:观测数据;
输出:隐马尔可夫模型参数。
(1)初始化
对,选取,得到模型。
(2)递推。对如下所示:
右端各值按观测和模型计算。
(3)终止
得到模型参数。
四. 预测算法
1. 近似算法
近似算法的思想是,在每个时刻选择在该时刻最优可能出现的状态,从而得到一个状态序列,
将它作为预测的结果。
给定隐马尔可夫模型和观测序列,在时刻处于状态的概率,如下所示:
在每一时刻最有可能的状态是,从而得到状态序列。
近似算法的优点是计算简单,其缺点是不能保证预测的状态序列整体是最有可能的状态序列,因为预测的状态序列可
能有实际不发生的部分。事实上,近似算法得到的状态序列中有可能存在转移概率为0的相邻状态,即对某些,当
时。
2. 维特比算法
维特比算法实际是用动态规划解隐马尔可夫模型预测问题,即用动态规划求概率最大路径,这时一条路径对应着一个
状态序列。
定义在时刻状态为的所有单个路径中概率最大值为
由定义可得变量的递推公式,如下所示:
定义在时刻状态为的所有单个路径中概率最大的路径的第个结点,如下所示:
维特比算法,如下所示:
输入:模型和观测;
输出:最优路径。
(1)初始化
(2)递推。对,如下所示:
(3)终止
(4)最优路径回溯
对,有,求得最优路径。
参考文献:
[1] 《统计学习方法》
[2] HMM相关文章索引:http://www.52nlp.cn/category/hidden-markov-model
- 隐马尔可夫模型总结
- 模型总结
- ADO 对象模型总结
- RDS 对象模型总结
- 软件开发模型总结
- ClearCase应用模型总结
- RDS对象模型总结
- ADO对象模型总结
- DOM事件模型总结
- ClearCase应用模型总结
- IOCP模型总结(转)
- IOCP模型的总结
- IOCP模型的总结
- IOCP模型总结(转)
- IOCP模型总结(转)
- IOCP模型总结(转)
- IOCP模型总结(转)
- 总结领域模型
- 机器学习之特征编码总结
- Java:InputStream读取文本文件内容出现乱码问题的解决方法
- Lucene学习总结
- spring-boot idea demo
- CodeForces 832 B. Petya and Exam
- 隐马尔可夫模型总结
- 关于软件开发中遇到的问题解决思路
- struts2发送json数组,js使用ajax接收。
- ThreadLocal小案例
- pat乙级1025
- 原创移动端高清、多屏适配方案
- 【笔记】Activity、Fragment、Service生命周期梳理
- HDU 2063 过山车(匈牙利算法)
- 字符串:HDU3064-最长回文