- 9
- 0
- 约5.39千字
- 约 5页
- 2016-02-25 发布于江苏
- 举报
Viterbi算法与实现.doc
Viterbi算法iterbi算法是一种动态规划算法,用来寻找由观测信息产生(Observed Event)的最可能隐状态序列(Viterbi路径),这种方法通常用在隐马尔可夫模型中。向前算法是一个类似的算法,用来计算一串观测事件发生的概率。这些算法都属于信息论的范畴。
这个算法做一连串的假设。首先,观测事件和隐事件必须处于序列中。这个序列通常是关于时间的。第二,这两个序列需要对应,一个观测事件的实例必须与一个隐事件相关联。第三,计算在特定时间点t的最可能隐序列必须只依赖于位于t的观测事件,和t-1处的最可能序列。这些假设在一阶隐马尔可夫模型中都要被满足。
Viterbi路径和Viterbi算法同时遵循寻找单一最可能观测解释的相关动态规划算法。例如,在统计分析中的动态规划算法能应用于寻找一个字符串的单个最相似上下文无关推导,即“Viterbi推导”。
Viterbi算法是由Andrew Viterbi 在1967年提出的,是一种用于有噪声的数据链路中错误纠正的模型,并广泛应用在卷积码的解码中,例如CDMA/GSM数字蜂窝,拨号调制解调器,卫星通信,深空通信和802.11无线局域网等。现在也广泛的应用在语言理解,关键词匹配,计算机语言学,生物信息学等。例如,在语音理解中,听觉信号被认为是观测事件的序列,文字串被认为是“潜在的原因”。Viterbi算法能够找到对应听觉信号的最可能文字序列。
概要
前面提到的假设可以被如下概括。Viterbi算法在一个状态机的假设上做操作。也就是说,在任何时间系统被抽象为一些状态。这些状态是有限的,尽管很大。每个状态被表示为一个节点。多个状态的序列(路径)往往都能产生同一个给定的状态,但其中只有一条是最可能产生这个状态的,被称作“生存路径”。这是一个最基础的假设,因为这个算法会检测所有的可能路径并只保留一个最可能的路径。这种策略并不需要计算所有的路径,只需要一个状态一个路径而已。第二个关键的假设是前一个状态到一个新状态的转移被一个递增的度量描述,通常是一个数字。这种转移是从实践中计算而来的。第三个假设是事件在一个路径上是累加的。所以整个算法的关键是计算每个状态的数值。当发生了一个事件,算法结合上一个可能状态与转换产生的增量度量,并从中选择一个最优的,据此来检测向前的新状态。增量度量由事件触发,并由旧状态与新状态间的转换决定。例如,在数据交换中,可能发生一半的符号由奇状态转换,而另一半由偶状态开始转换。同时,在很多例子中,状态转换图是不连续的。一个简单的例子,一个汽车有三个状态,向前,停止和向后,状态从向前倒向后是不允许的。他必须先进入停止状态。在计算出增量度量和和状态度量后,只有最好的幸存,而其他的被舍弃。这种基础算法有一个改进,允许向前搜索和向后搜索。
路径历史必须被储存。在一些实例中,搜索历史是完整的,因为状态机在编码端是从一个已知的状态开始的,而且有充足的空间来维持这些路径。再另一些例子中,需要一个在资源有限条件下的解决方案:一个例子是卷积编码,解码器必须在性能能允许的前提下尽量缩短对历史的记录。尽管Viterbi算法是非常高效的,而且有很多降低计算压力的改进,但它对空间的要求仍然趋向常量。
实现
Alice知道Bob三天来的活动,第一天出去散步,第二天去购物,第三天清洁了公寓。Alice有两个问题:观测序列的整体概率是什么样的?这几天的天气是什么,最能给出观测序列这样的结果。第一个问题由向前算法计算;第二个问题由Viterbi算法计算。这两个算法在结构上是相似的,事实上,他们是同一种抽象算法的两个不同实例,所以他们可以在一个函数中实现。
def forward_viterbi(obs, states, start_p, trans_p, emit_p):
T = {}
for state in states:
## prob. V. path V. prob.
T[state] = (start_p[state], [state], start_p[state])
for output in obs:
U = {}
for next_state in states:
total = 0
argmax = None
valmax = 0
for source_state in states:
(prob, v_path, v_prob) = T[source_state]
p = emit_p[source_state][output]
您可能关注的文档
- TP04-关系映射.ppt
- TRH高负荷问题解决.doc
- T梁成-桥-图片.ppt
- U8 采购业务-制单.ppt
- U870-集团财务-ZYM.ppt
- u880导航与手机电视.doc
- Ubuntu系统 入门lab03.ppt
- unity3d游戏开发之脚本实现模型的平移与旋转.doc
- unity3d游戏开发之角色的动画脚本的编写(二).doc
- UNIX系统文件基础.doc
- 2025年全国演出经纪人员资格认定考试试卷带答案(研优卷).docx
- 2025年全国演出经纪人员资格认定考试试卷完整版.docx
- 2025年全国演出经纪人员资格认定考试试题库及完整答案.docx
- 2025年全国演出经纪人员资格认定考试试卷完美版.docx
- 2025年全国演出经纪人员资格认定考试试卷含答案(实用).docx
- 2025年全国演出经纪人员资格认定考试试卷及答案(各地真题).docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
- 2025年全国演出经纪人员资格认定考试试卷及答案1套.docx
- 2025年下半年四川成都市郫都区面向社会引进公共类事业单位人员2人备考题库最新.docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
最近下载
- 2021届高考物理三轮冲刺重难点训练:磁场(解析版).pdf VIP
- IDC数据时代2025白皮书_数据时代2025资源The Digitization of the World From Edge to Core.pdf VIP
- 《民航服务心理学(第2版)》项目二(改).pptx
- 民航服务心理学(第2版)严光玉课后习题答案.pdf VIP
- 《民航服务心理学(第2版)》课程标准.docx VIP
- 高考物理压轴题.pdf VIP
- 【高考真题】2023年新高考物理真题试卷——湖南卷(含答案).pdf VIP
- 欧洲规范-NF P18-561-中文版.pdf VIP
- 调相机系统构成及原理培训教材(课件49张).ppt VIP
- 2024届浙江省杭州市高考一轮复习培优提升卷(一)语文试卷含答案.docx VIP
原创力文档

文档评论(0)