算法导论----学习笔记011

本文详细介绍了维特比算法的工作原理及其应用流程。通过解析算法的每一步骤,包括初始化、递归计算以及路径回溯等,帮助读者理解如何利用该算法找出最有可能的隐含状态序列。

所谓的马尔科夫过程,就是该过程的当前状态仅由前一时刻的状态确定。用概率表达即为:

Viterbi算法的步骤为:

  1. 初始(t=0)

,对应各状态产生输出的概率;

  1. 接下来的各时间步上,

是在t时刻到达状态j时产生对应输出序列的概率,也是前面的前向变量;

  1. 结束:

状态序列回溯:

 

 输入:  观察空间  O=\{o_1,o_2,\dots,o_N\}, 
           状态  S=\{s_1,s_2,\dots,s_K\} , 
           观察序列   Y=\{y_1,y_2,\ldots, y_T\}  若在 t  时间观察值为  o_i  ,则  y_t==i ,
           大小为  K\cdot K  的转移矩阵  A ,  A_{ij}  为从状态  s_i  s_j  的转移概率,
           大小为  K\cdot N  的放射矩阵  B ,  B_{ij}  为状态  s_i  观察到  o_j  的概率, 
           初始概率数组  \pi  of size  K ,  \pi_i  x_1 ==  s_i  的概率, 
   输出: 最有可能的隐含状态序列  X=\{x_1,x_2,\ldots,x_T\} 
A01 function VITERBI( O, S,π,Y,A,B ) : X
A02     for each state si do
A03         T1[i,1]πi\cdotBiy_1
A04         T2[i,1]←0
A05     end for
A06     for i2,3,...,T do
A07         for each state sj do
A08             T1[j,i]\max_{k}{(T_1[k,i-1]\cdot A_{kj}\cdot B_{jy_i})} 
A09             T2[j,i]\arg\max_{k}{(T_1[k,i-1]\cdot A_{kj}\cdot B_{jy_i})} 
A10         end for
A11     end for
A12     zT\arg\max_{k}{(T_1[k,T])} 
A13     xT←szT
A14     for iT,T-1,...,2 do
A15         zi-1←T2[zi,i]
A16         xi-1szi-1
A17     end for
A18     return X
A19 end function

根据原作 https://pan.quark.cn/s/459657bcfd45 的源码改编 Classic-ML-Methods-Algo 引言 建立这个项目,是为了梳理和总结传统机器学习(Machine Learning)方法(methods)或者算法(algo),和各位同仁相互学习交流. 现在的深度学习本质上来自于传统的神经网络模型,很大程度上是传统机器学习的延续,同时也在不少时候需要结合传统方法来实现. 任何机器学习方法基本的流程结构都是通用的;使用的评价方法也基本通用;使用的一些数学知识也是通用的. 本文在梳理传统机器学习方法算法的同时也会顺便补充这些流程,数学上的知识以供参考. 机器学习 机器学习是人工智能(Artificial Intelligence)的一个分支,也是实现人工智能最重要的手段.区别于传统的基于规则(rule-based)的算法,机器学习可以从数据中获取知识,从而实现规定的任务[Ian Goodfellow and Yoshua Bengio and Aaron Courville的Deep Learning].这些知识可以分为四种: 总结(summarization) 预测(prediction) 估计(estimation) 假想验证(hypothesis testing) 机器学习主要关心的是预测[Varian在Big Data : New Tricks for Econometrics],预测的可以是连续性的输出变量,分类,聚类或者物品之间的有趣关联. 机器学习分类 根据数据配置(setting,是否有标签,可以是连续的也可以是离散的)和任务目标,我们可以将机器学习方法分为四种: 无监督(unsupervised) 训练数据没有给定...
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值