隐马尔可夫模型学习笔记
来源:互联网 发布:java调用本地程序 编辑:程序博客网 时间:2024/06/10 23:09
定义
隐马尔可夫模型是关于时序的概率模型,描述由一个隐藏的马尔可夫链随机生成不可观测的状态随机序列,再由各个状态生成一个观测而产生观测随机序列的过程。隐藏的马尔可夫链随机生成的状态的序列,称为状态序列;每个状态生成一个观测,而由此产生的观测的序列称为观测序列。序列的每一个位置又可看做是一个时刻。
设Q是所有可能的状态的集合,V是所有可能的观测的集合。
其中,n是可能的状态数,m是可能的观测数。
A是状态转移矩阵:
其中,
是在时刻t处于状态
B是观测概率矩阵:
其中,
是在时刻t处于状态
其中,
是时刻t=1处于状态
两个基本假设
- 齐次马尔可夫性假设:马尔可夫链在任意时刻t的状态只依赖于前一时刻的状态,与其他时刻的状态及观测无关,也与时刻t无关。
- 观测独立性假设:任意时刻的观测只依赖于该时刻的马尔可夫链的状态,与其他观测、状态和时刻无关。
学习算法
一、监督学习算法
假设已给训练数据包含s个长度相同的观测序列和对应的状态序列
1.转移概率aij 的估计
设样本中时刻t处于i时刻t+1转移到状态j的频数为
2.观测概率bj(k) 的估计
设样本中状态为j并观测为k的频数是
3.初始状态概率πi 的估计π∗ 为S个样本中初始状态为qi 的频率
由于监督学习需要使用训练数据,而人工标注训练数据往往代价很高,又是就会利用非监督学习的方法。
2.Baum-Welch算法
假设给定训练数据只包含s个长度为T的观测序列
它的参数学习可以由EM算法实现。
1.确定完全数据的对数似然函数
所有观测数据写成
2.EM算法的E步
求
于是函数
3.EM算法的M步
最大化
(1)对
式(1)的第一项
其中,
对
对所有
(2)对
(3)对
预测算法
一、近似算法
在每个时刻t选择在该时刻最有可能出现的状态。
二、维特比算法
考虑整体最优性,在选择下一个状态时,记时刻t状态为i的可能性为
HHM的简单应用
考虑一个简单的分词模型,S由四种状态组成:词头、词中、词尾、单字成词。首先,收集一些已经分词好的语料,如:我 爱 程序员。我 是 祖国 的 花朵。训练状态转移的概率参数
参考
李航的《统计学习分析》
CSDN博客——HMM在简单分词模型中的应用
- 隐马尔可夫模型学习笔记
- 王小草【机器学习】笔记--隐马尔可夫模型HMM
- 机器学习笔记(九)隐马尔可夫模型
- 神经网络模型学习笔记
- RFM模型学习笔记
- django学习笔记(模型)
- 实例模型-学习笔记
- LDA模型学习笔记
- IO模型学习笔记
- Djanog学习笔记-模型
- 线性模型学习笔记
- Delphi 对象模型学习笔记
- Delphi 对象模型学习笔记
- AppFuse学习笔记-模型层
- javascript 事件模型学习笔记
- Delphi 对象模型学习笔记
- 【django 学习笔记】04-模型
- Java内存模型学习笔记
- CUDA学习笔记三
- 对于已经存在的项目,如何在不改变原来目录结构的情况下,使用maven
- Android之Volley框架加载网络图片的三种方式
- CodeForces 670B Game of Robots
- Toy Program 基础线程入门 via “extends Thread”
- 隐马尔可夫模型学习笔记
- CodeForces 670C Cinema
- Agent proxy
- CodeForces 670D
- STL map的复制
- CodeForces 670E(模拟双向链表)
- 解决PLSQL developer 乱码问题
- CUDA学习笔记四
- [BZOJ4195] [NOI2015] 程序自动分析 - 并查集 + 离散化