【机器学习系列】隐马尔科夫模型第二讲:前向算法、后向算法
作者:CHEONG
公众号:AI机器学习与知识图谱
研究方向:自然语言处理与知识图谱
阅读本文之前,首先注意以下两点:
1、机器学习系列文章常含有大量公式推导证明,为了更好理解,文章在最开始会给出本文的重要结论,方便最快速度理解本文核心。需要进一步了解推导细节可继续往后看。
2、文中含有大量公式,若读者需要获取含公式原稿Word文档,可关注公众号后回复:HMM第二讲,本文主要讲解使用前向算法和后向算法求解隐马尔科夫模型的Evaluation问题。
一、核心结论
1.HMM Evaluation问题定义:已知参数λ=(π,A,B)\lambda=(\pi,A,B)λ=(π,A,B),求输出观测序列OOO的概率p(O∣λ)p(O|\lambda)p(O∣λ)
2.常规复杂计算p(O∣λ)p(O|\lambda)p(O∣λ):
复杂计算的时间复杂度为O(NT)O(N^T)O(NT)
3.前向算法,假设:
求αt(i)\alpha_t(i)αt(i)递推式得αT(i)\alpha_T(i)αT(i),最终得出:
4.后向算法,假设:
求βt(i)\beta_t(i)βt(i)递归式得β1(i)\beta_1(i)β1(i),最终得出:
前向、后向算法的时间复杂度为O(TN2)O(TN^2)O(TN2)
二、复杂计算
一般情况下,求解p(O∣λ)p(O|\lambda)p(O∣λ)的时间复杂度为O(NT)O(N^T)O(NT),指数级的复杂度,运算如下:
其中:
其中:
因此:
同理可得:
所以:
由此可见,常规计算的时间复杂度是O(NT)O(N^T)O(NT)
三、前向算法
下面介绍通过前向算法来求解p(O∣λ)p(O|\lambda)p(O∣λ),如下图所说:
根据上图,先给出一个假设变量
因此:
所以:
接下来目的便是找出αt(i)\alpha_t(i)αt(i)的递推式,从而可以方便的求出αT(i)\alpha_T(i)αT(i),最终求得p(O∣λ)p(O|\lambda)p(O∣λ)
根据观测独立假设,存在:
因此:
根据齐次马尔科夫假设,存在:
并且
所以可以得到递推式:
从而便得到了前向算法的递归公式,通过递归公式便可以计算出p(O∣λ)p(O|\lambda)p(O∣λ)
四、后向算法
下面介绍通过后向算法来求解p(O∣λ)p(O|\lambda)p(O∣λ),如下图所说:
根据上图,先做出一个假设:
因此:
所以可以通过上述假设变量求出p(O∣λ)p(O|\lambda)p(O∣λ),推导过程如下:
其中:
因此:
其中:
因此:
因此只需要通过后向算法求出β1(i)\beta_1(i)β1(i),便可以求解p(O∣λ)p(O|\lambda)p(O∣λ),接下来推导βt(i)\beta_t(i)βt(i)的递推公式
结合上图,其中:
因此:
根据观测独立假设,其中:
因此:
从而得到了βt(i)\beta_t(i)βt(i)的递归式,可以求出p(O∣λ)p(O|\lambda)p(O∣λ)
三、往期精彩
【知识图谱系列】Over-Smoothing 2020综述
【知识图谱系列】基于生成式的知识图谱预训练模型
【知识图谱系列】基于2D卷积的知识图谱嵌入
【知识图谱系列】基于实数或复数空间的知识图谱嵌入
【知识图谱系列】自适应深度和广度图神经网络模型
【知识图谱系列】知识图谱多跳推理之强化学习
【知识图谱系列】知识图谱的神经符号逻辑推理
【知识图谱系列】动态时序知识图谱EvolveGCN
【知识图谱系列】多关系神经网络CompGCN
【知识图谱系列】探索DeepGNN中Over-Smoothing问题
【知识图谱系列】知识图谱表示学习综述 | 近30篇优秀论文串讲
【知识图谱系列】动态知识图谱表示学习综述 | 十篇优秀论文导读
【面经系列】八位硕博大佬的字节之旅
【机器学习系列】机器学习中的两大学派
各大AI研究院共35场NLP算法岗面经奉上
干货 | Attention注意力机制超全综述
干货 | NLP中的十个预训练模型
干货|一文弄懂机器学习中偏差和方差
FastText原理和文本分类实战,看这一篇就够了
Transformer模型细节理解及Tensorflow实现
GPT,GPT2,Bert,Transformer-XL,XLNet论文阅读速递
机器学习算法篇:最大似然估计证明最小二乘法合理性
Word2vec, Fasttext, Glove, Elmo, Bert, Flair训练词向量教程+数据+源码
原稿获取请关注公众号后回复:HMM第二讲 ,原创不易,有用就点个赞呀!
【机器学习系列】隐马尔科夫模型第二讲:前向算法、后向算法相关推荐
- m基于隐马尔科夫模型(HMM)的手机用户行为预测(MMUB)算法matlab仿真
目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 隐马尔可夫模型(Hidden Markov Model,HMM)是一种统计模型,广泛应用在语音识别, ...
- 机器学习-- > 隐马尔科夫模型(HMM)
博客内容将首发在微信公众号"跟我一起读论文啦啦",上面会定期分享机器学习.深度学习.数据挖掘.自然语言处理等高质量论文,欢迎关注! 本篇博文将详细总结隐马模型相关知识,理解该模型有 ...
- 【NLP | 机器学习】隐马尔科夫模型与代码实现
1.马尔科夫模型.马尔科夫网络.马尔科夫过程.贝叶斯网络的区别 前提条件:将随机变量作为节点,若两个随机变量相关或不独立,则将二者连接一条边:若给定的若干个随机变量,则构成一个有向图 若该 ...
- 隐马尔科夫模型 (HMM) 算法介绍及代码实现
Table of Contents Hidden Markov Model (隐马尔科夫模型) 定义 基本问题 前向算法 算法流程 实现代码 后向算法 算法流程 实现代码 Viterbi算法 算法流程 ...
- 隐马尔科夫模型HMM详解(1)
目录 隐马尔科夫模型基本概念 隐马尔科夫模型的三个基本问题 概率计算 预测算法-Viterbi算法 HMM学习算法参考下篇文章 代码地址:https://gitee.com/liangcd/speec ...
- 隐马尔科夫模型(Hidden Markov Models) 系列之五
隐马尔科夫模型(Hidden Markov Models) 系列之五 介绍(introduction) 生成模式(Generating Patterns) 隐含模式(Hidden Patterns) ...
- 20200918:【广发金融工程】2018年重磅专题系列之九:基于隐马尔科夫模型的选股策略研究
参考链接:https://www.sohu.com/a/252454782_465470 [广发金融工程]2018年重磅专题系列之九:基于隐马尔科夫模型的选股策略研究 2018-09-07 11:26 ...
- 隐马尔科夫模型(Hidden Markov Models) 系列之三
隐马尔科夫模型(Hidden Markov Models) 系列之三 介绍(introduction) 生成模式(Generating Patterns) 隐含模式(Hidden Patterns) ...
- 隐马尔科夫模型(Hidden Markov Models) 系列之四
隐马尔科夫模型(Hidden Markov Models) 系列之四 介绍(introduction) 生成模式(Generating Patterns) 隐含模式(Hidden Patterns) ...
- 隐马尔科夫模型(Hidden Markov Models) 系列之一
隐马尔科夫模型(Hidden Markov Models) 系列之一 介绍(introduction) 生成模式(Generating Patterns) 隐含模式(Hidden Patterns) ...
最新文章
- 装系统w7、ubuntu、centos等系统(一)
- asp.net 中Gridview 使用总结
- editor 插入图片之后将光标放到右侧_通过vscode插件自动上传剪贴板图片至aws s3
- 集成 AquaLogic BPM Suite 6.0 和 AquaLogic Service Bus
- 七、朴素贝叶斯中文文本分类
- mysql5.6优化建议
- mysql数据库连接失败,挑战大厂重燃激情!
- spring webflow getting start
- 冲压模板自动标注LISP_干货满满!超实用冲压模具资料,加薪必看!
- strtotime()加半个小时_椰子鸡这样做太好吃了,一滴水不用加,鲜香嫩滑,做法非常简单...
- 项目管理系列:项目启动会
- 从微软和思科的 IT 服务化转型过程中得到的几点思考
- 基于java图书销售系统
- vrep和simulink联合仿真
- LaTeX详细教程+技巧总结
- 中国足球深度剖析之五,破除周期性怪圈
- 内存对齐是什么?为什么要内存对齐?
- 北斗GPS同步时钟(授时系统)技术原理详解
- 思科路由器配置enable password
- c语言程序个人实验报告,C语言程序设计实验报告(5)