文章目录

  • 前言
  • 维特比算法
    • 第一步:初始化
    • 第二步:向下递推
    • 第三步:得到最优路径的概率和终点
    • 第四步:逆向得到完整的状态序列
  • 后记

本文完全基于李航老师的《统计学习方法第2版》

前言

先介绍一下HMM隐式马尔科夫主要解决三大基本问题:
1.概率计算问题(已知模型参数,观测序列出现的概率):

  • 直接计算法,复杂度为 O ( T N T ) O(TN^T) O(TNT),不实际
  • 前向算法,复杂度为 O ( T N 2 ) O(TN^2) O(TN2)
  • 后向算法

2.学习问题(已知观测序列,估计模型参数)

  • 监督学习方法:计算简单,但需要大量的人工标注
  • 无监督学习方法(Baum-Welch算法)

3.预测问题(已知观测序列,估计状态序列)

  • 近似算法:贪心算法,获得每一个时刻t的最大概率的状态,只是考虑了局部的最优,很难得到全局最优解
  • 维特比算法

维特比算法

维特比算法就是一个动态规划算法,本质是填表。考虑时间序列长度为T,可能的状态为N,算法的过程其实就是填满N*T这一大小的表。下面我们一起来结合实例,填完这个表。
考虑如下问题:

A是状态转移矩阵,B是由状态得观测的矩阵,Π是初始状态向量。故,有3个状态(N=3),又观测序列长度为3(T=3),所以我们要填一个3*3的表格。

第一步:初始化

时间1时,根据下式得到三个状态下各自的概率(视作最优)

填入表格:

第二步:向下递推

时间2时,有三种可能的状态,考虑时间1时的三种情况与当前时间的组合,求得时间2时,三种状态下的最大概率,公式如下:

其中,当前时间,选取状态为1的概率计算如下:

也就是说,当前状态为1时,上一个时间的状态为3,这样的组合可能性最大。

所有结果填入表格:

时间3时,同样根据时间2的三种情况,考虑三种情况与当前时间三种状态的组合,分别得到最大的概率(公式不变):

填入表格

第三步:得到最优路径的概率和终点

显然,最优路径的概率为0.0147,终点是状态3.

第四步:逆向得到完整的状态序列

其实,我们得到的完整路径如下:

也就是说,时间1时,三个初始化概率分别为0.28、0.16、0.1;紧接着,时间2的三种状态的最大概率都是基于时间1为状态3;时间3的三种状态的最大概率中的最大为0.0147,它基于时间2的状态3。
我们在填表的过程中,也要记录这一信息,很简单,同时再维护一个数组D即可:

解释:第一步初始化时,全填0,第二步递推时,填剩下。

我们已经在第三步中得到终点(t=3)的状态为3,t=2时的状态为D(3,3) = 3,t=1时的状态为D(2,3)=3。
所以最后的状态序列为:[3,3,3]。

后记

完全就是一个动态规划,并把最优解给重构了。
HMM、CRF都可以用作序列标注的问题。其中,输入的单词序列是观测序列;输出的标签序列是状态序列。由于状态序列不仅和观测序列有关,根据马尔可夫性质,两两状态之间也有一定的关联,所以可以增加一定的性能。
这些模型可以精确地考虑标签之间的依赖,这是神经网络如RNN和CNN等所做不到的。但神经网络可以无限的深,能够很好的抽取特性,所以我们可以integrate them:

(图片来自台大李宏毅)

神经网络,仅仅考虑了观测序列与状态序列之间的关系,讲其输出进一步放入HMM、CRF等,进一步考虑状态与状态之间的关系。

维特比算法(基于李航)相关推荐

  1. 基于维特比算法的概率路径

    简介: 维特比算法(Vieterbi algorithm)是一种动态规划算法,探索出很多预测天气的方法,这种基于经验的预测方式,是一种基于历史数据的概率模型. 思想 维特比算法的思想是假设某一个数据的 ...

  2. 语音识别维特比解码_一种基于维特比算法的花洒语音识别系统及方法与流程

    本发明涉及语音识别技术领域,具体涉及一种基于维特比算法的花洒语音识别系统及方法. 背景技术: 随着生活水平的提高和住房条件的改善,很多家庭都安装了沐浴设施,花洒是其中最常见的淋浴装置.目前花洒产品多为 ...

  3. 【10.1算法理论部分(4)预测问题(近似算法和维特比算法)】Hidden Markov Algorithm——李航《统计学习方法》公式推导

    10.4预测算法(解决Decoding: S ^ = a r g m a x S P ( S ∣ O , λ ) \hat{S} = argmax_{S}P(S|O,\lambda) S^=argma ...

  4. NLP-基础任务-中文分词算法(2)-基于词典:基于N-gram语言模型的分词算法【基于词典的分词方法】【利用维特比算法求解最优路径】【比机械分词精度高】【OOV:基于现有词典,不能进行新词发现处理】

    例子:"经常有意见分歧" 词典:["经常","有","意见","意","见",& ...

  5. viterbi维特比算法和隐马尔可夫模型(HMM)

    阅读目录 隐马尔可夫模型(HMM) 回到目录 隐马尔可夫模型(HMM) 原文地址:http://www.cnblogs.com/jacklu/p/7753471.html 本文结合了王晓刚老师的ENG ...

  6. 机器学习算法 10 —— HMM模型(马尔科夫链、前向后向算法、维特比算法解码、hmmlearn)

    文章目录 系列文章 隐马尔科夫模型 HMM 1 马尔科夫链 1.1 简介 1.2 经典举例 2 HMM简介 2.1 简单案例 2.2 案例进阶 问题二解决 问题一解决 问题三解决 3 HMM模型基础 ...

  7. NLP-HMM模型、维特比算法、Baum-Welch算法

    马尔科夫链 在机器学习算法中,马尔可夫链(Markov chain)是个很重要的概念.马尔可夫链(Markov chain),又称离散时间马尔可夫链(discrete-time Markov chai ...

  8. 条件随机场(CRF) - 4 - 学习方法和预测算法(维特比算法)

    声明: 1,本篇为个人对<2012.李航.统计学习方法.pdf>的学习总结,不得用作商用,欢迎转载,但请注明出处(即:本帖地址). 2,由于本人在学习初始时有很多数学知识都已忘记,所以为了 ...

  9. CRF(条件随机场)与Viterbi(维特比)算法原理详解

    摘自:https://mp.weixin.qq.com/s/GXbFxlExDtjtQe-OPwfokA https://www.cnblogs.com/zhibei/p/9391014.html C ...

最新文章

  1. oracle Router,Oracle官方轻量级中间件MySQL Router介绍与性能测试
  2. 20180313分块查找
  3. 康奈尔ECE MEng项目拒信+1 哈哈哈
  4. 关于JQuery简单介绍
  5. 第十四节: 介绍四大并发集合类并结合单例模式下的队列来说明线程安全和非安全的场景及补充性能调优问题。
  6. 谈判失败:Oracle 杀死 Java EE
  7. android贪吃蛇设计报告,贪吃蛇游戏报告毕业设计android
  8. 视频教程-CCNA视频----从零开始学CCNA实验视频课程(加强版)-思科认证
  9. html4角星,运用ai绘画出5角星4角星三角形形状的设置步骤
  10. 『一篇老文章』现有p2p协议分类与简介
  11. 【读书笔记】《乔布斯的魔力演讲》卡迈恩•加洛
  12. 注册Google邮箱,也许你就差这一步
  13. linux uwsgi 非root,nginx – 只能用root运行uwsgi
  14. Android百度地图(四):百度地图运动轨迹纠偏、去噪、绑路之百度鹰眼
  15. 向量点积衡量相似度_余弦距离、欧氏距离和杰卡德相似性度量的对比分析
  16. 2019年秋季学期实验室安全考试1
  17. xml的三种解析方式
  18. list object has no attribute ZScan_书香家庭NO.31 | 成长路上飘书香
  19. [Matlab]巴特沃夫滤波器设计:低通、高通、带通和带阻
  20. 【剑灵攻略】001、底部菜单栏实现

热门文章

  1. mysql pt kill脚本_使用pt-kill为MySQL保驾护航
  2. 如何添加/去掉开机的启动项
  3. Arcgis连接sql server发布地图服务详解
  4. 浙大 | PTA 习题9-5 通讯录排序 (20分)
  5. jquery日历插件daterangepicker全面详解汇总
  6. 【雷达信号处理】---雷达分辨率
  7. KBEngine 房间示例创建脚本调用解读
  8. Kronecker(克罗内克积)积
  9. 入行月薪过万的数据挖掘必看的学习建议!
  10. 【题解】JZOJ1321:灯