隐马尔科夫学习六(一)
来源:互联网 发布:excel数据拆分公式 编辑:程序博客网 时间:2024/05/12 15:31
出处:http://www.52nlp.cn/hmm-learn-best-practices-six-viterbi-algorithm-1
六、维特比算法(Viterbi Algorithm)
寻找最可能的隐藏状态序列(Finding most probable sequence of hidden states)
对于一个特殊的隐马尔科夫模型(HMM)及一个相应的观察序列,我们常常希望能找到生成此序列最可能的隐藏状态序列。
1.穷举搜索
我们使用下面这张网格图片来形象化的说明隐藏状态和观察状态之间的关系:
我们可以通过列出所有可能的隐藏状态序列并且计算对于每个组合相应的观察序列的概率来找到最可能的隐藏状态序列。最可能的隐藏状态序列是使下面这个概率最大的组合:
Pr(观察序列|隐藏状态的组合)
例如,对于网格中所显示的观察序列,最可能的隐藏状态序列是下面这些概率中最大概率所对应的那个隐藏状态序列:
Pr(dry,damp,soggy | sunny,sunny,sunny), Pr(dry,damp,soggy | sunny,sunny,cloudy), Pr(dry,damp,soggy | sunny,sunny,rainy), . . . . Pr(dry,damp,soggy | rainy,rainy,rainy)
这种方法是可行的,但是通过穷举计算每一个组合的概率找到最可能的序列是极为昂贵的。与前向算法类似,我们可以利用这些概率的时间不变性来降低计算复杂度。
2.使用递归降低复杂度
给定一个观察序列和一个隐马尔科夫模型(HMM),我们将考虑递归地寻找最有可能的隐藏状态序列。我们首先定义局部概率,它是到达网格中的某个特殊的中间状态时的概率。然后,我们将介绍如何在t=1和t=n(>1)时计算这些局部概率。
这些局部概率与前向算法中所计算的局部概率是不同的,因为它们表示的是时刻t时到达某个状态最可能的路径的概率,而不是所有路径概率的总和。
2a.局部概率‘s和局部最佳途径
考虑下面这个网格,它显示的是天气状态及对于观察序列干燥,湿润及湿透的一阶状态转移情况:
对于网格中的每一个中间及终止状态,都有一个到达该状态的最可能路径。举例来说,在t=3时刻的3个状态中的每一个都有一个到达此状态的最可能路径,或许是这样的:
我们称这些路径局部最佳路径(partial best paths)。其中每个局部最佳路径都有一个相关联的概率,即局部概率或。与前向算法中的局部概率不同,是到达该状态(最可能)的一条路径的概率。
因而(i,t)是t时刻到达状态i的所有序列概率中最大的概率,而局部最佳路径是得到此最大概率的隐藏状态序列。对于每一个可能的i和t值来说,这一类概率(及局部路径)均存在。
特别地,在t=T时每一个状态都有一个局部概率和一个局部最佳路径。这样我们就可以通过选择此时刻包含最大局部概率的状态及其相应的局部最佳路径来确定全局最佳路径(最佳隐藏状态序列)。
- 隐马尔科夫学习六(一)
- Spring 注解学习手札(一 --- 六)
- 个人学习总结一机器学习入门(六)
- 六级英语学习(一)
- 隐马尔科夫学习六(二)
- 隐马尔科夫学习六(三)
- 隐马尔科夫学习六(四)
- 隐马尔科夫学习六(五)
- Tapestry学习六:关于组件(一)前戏
- [学习笔记] Java核心技术 卷一:基础知识 集合(六)
- 编程学习(六)----c++数据类型(一)
- JavaScript 学习笔记 六 正则表达式《一》
- JavaScript学习(六)
- 学习笔记(六)
- 入门学习(六)
- Oracle学习(六)
- 学习笔记(六)
- jquery学习(六)
- 文本计算器
- mybatis---级联保存,级联删除
- 莫让网盘成为网络侵权帮凶
- 九度OJ-题目1503:二叉搜索树与双向链表
- 文件的读写操作2
- 隐马尔科夫学习六(一)
- CocoaPods安装和使用教程 自我实践
- LeetCode31:Next Permutation
- Android 调用QQ登录
- 一个 MVC + 三层结构,基于数据库的Web商用系统,通用架构,请看图,,
- C#高级编程第六天----枚举
- C++ STL之set详解
- 虚拟化(桌面、服务器)与显卡(本地、远端)
- 如何解压RPM包