分词算法模型学习笔记(一)——HMM
来源:互联网 发布:ubuntu启动网络服务 编辑:程序博客网 时间:2024/05/18 05:26
分词算法模型学习笔记(一)——HMM
Hidden Markov Model(HMM,隐马尔科夫模型)
主要参考资料:52nlp
1.HMM的特点
生成式模型
主要研究观察序列X和隐藏状态序列Y的联合概率分布P(X,Y)
通常为一阶马尔卡夫过程(即当前状态的概率分布只跟前一个状态有关)
HMM模型图示
2.HMM的三个基本用途
1.评估(比如语音识别)
计算某一观测序列X的出现概率
典型加速算法:前向算法、后向算法
2.解码(比如分词和词性标注)
对于某一观测序列X计算出使其出现概率最大的隐藏状态序列Y
典型加速算法:维特比算法
3.参数学习
基于EM算法的加速算法:前向-后向算法(Baum-Welch算法)
3.前向算法
计算目标:
如果直接利用上面的式子进行编程计算,需要枚举y的所有取值(假设隐藏状态数目为|S|,y则有
下来我们考虑引入一个新的中间状态——通常称它为局部概率,从而避免大量不必要的计算(典型的动态规划策略)
这个局部概率的含义可以解释为在对于所有以t时刻
算法步骤(时间复杂度为O|S|2T ):
- 定义局部概率的初始值(边界值)
- 利用状态转移方程迭代计算当t=1,···,T-1时的局部概率值
- 利用计算好了的局部概率值,得到我们的最终目标
具体图例(隐藏状态数|S|=3,序列总长度T=4,t=1):
4.后向算法
后向算法的局部概率定义刚好跟前向算法恰好相反(值得注意的是前向算法使用的是联合概率,后向算法使用的是条件概率),但它们要解决的问题是一样的。
其含义可以解释为在对于所有以t时刻
算法步骤(时间复杂度为O|S|2T ):
- 定义局部概率的初始值(边界值)
- 利用状态转移方程迭代计算当t=T-1,···,1时的局部概率值
- 利用计算好了的局部概率值,得到我们的最终目标
具体图例(隐藏状态数|S|=3,序列总长度T=4,t=3):
5.维特比算法
计算目标:
同样地,为了避免枚举所有可能取值的y,需要采取动态规划策略,引入中间状态
这个局部概率的含义可以解释为在所有以t时刻
同时因为要求的是这个概率值最大的隐藏状态序列本身,而不是它的概率值,因此还需要一个回退指针变量
算法步骤(时间复杂度为O|S|2T ):
- 定义局部概率的初始值(边界值)
- 利用状态转移方程迭代计算当t=1,···,T-1时的局部概率值
- 利用计算好了的局部概率值,确定回退起点
- 利用回退指针变量
ψ ,逐个确定目标序列(t = T-1,···,1)
具体图例(隐藏状态数|S|=3,序列总长度T=4):
6.前向-后向算法
未完待续。。。
- 分词算法模型学习笔记(一)——HMM
- 分词算法模型学习笔记(二)——MEMM
- 分词算法模型学习笔记(三)——CRF
- 声学模型学习笔记(一) HMM
- 学习笔记之HMM模型
- 【学习笔记】HMM统计模型
- HMM学习笔记—001--前向算法(forward algorithm)
- 机器学习:HMM隐马尔可夫模型用于中文分词
- GMM-hmm算法学习笔记
- 隐马尔科夫模型HMM学习(一)
- HMM(隐马尔科夫模型)学习一
- 王小草【机器学习】笔记--隐马尔可夫模型HMM
- 【算法】 隐马尔可夫模型 HMM
- 机器学习27—隐马尔科夫模型HMM(二)
- 机器学习笔记(十四)——HMM估计问题和前向后向算法
- 机器学习笔记(十五)——HMM序列问题和维特比算法
- HMM学习笔记—002--维特比算法(viterbi algorithm)
- 【笔记】HMM模型论文阅读笔记(一)
- java实现二叉树
- JavaScript利用HTML DOM进行文档操作的方法
- oracle用户与表空间关系
- Let the Balloon Rise
- hdu 1429
- 分词算法模型学习笔记(一)——HMM
- MySQL主从复制性能优化
- iOS 【野路子】获取WKWebView内容高度做H5原生连接
- 优化hive
- Caused by: java.lang.ClassNotFoundException: com.alibaba.druid.support.http.StatViewServlet
- MapReduce漫谈
- MiXin
- 浏览器工作原理详解
- MSSQL Value 2017-09-06 08:32 cannot be converted to TIMESTAMP.