Matlab2011b的HMM(隐马尔可夫模型)相关函数介绍.doc_第1页
Matlab2011b的HMM(隐马尔可夫模型)相关函数介绍.doc_第2页
Matlab2011b的HMM(隐马尔可夫模型)相关函数介绍.doc_第3页
Matlab2011b的HMM(隐马尔可夫模型)相关函数介绍.doc_第4页
Matlab2011b的HMM(隐马尔可夫模型)相关函数介绍.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Matlab 2011b Statistics Toolbox HMM作者:yuheng666Email:关键字:HMM,隐马尔科夫模型,Matlab,Statistics Toolbox 声明:本文主要介绍Matlab2011b中 Statistics Toolbox工具箱里与隐马尔科夫模型相关的函数及其用法(请勿与其它HMM工具箱混淆)。本文的主要内容来自Matlab 2011b的帮助文档,为作者自学笔记。水平有限,笔记粗糙,本着“交流探讨,知识分享”的宗旨,希望对HMM感兴趣的同学有些许帮助,欢迎指教,共同进步。有关马尔科夫模型的基本知识,请参考其他资料。如:/lliao/cis841s06/hmmtutorialpart1.pdf /lliao/cis841s06/hmmtutorialpart2.pdf /section/cs229-hmm.pdf http:/jedlik.phy.bme.hu/gerjanos/HMM/node2.html /dugad/hmm_tut.html .变量说明:设有M个状态,N个符号Markov模型。TRANS:对应状态转移矩阵,大小为M*M,表示各状态相互转换的概率,TRANS(i,j)表示从状态i转换到状态j的概率。EMIS:对应符号生成矩阵,又叫混淆矩阵,观察符号概率分布。EMIS(i,j)代表在状态i时,产生符号j的概率。函数介绍:hmmgenerate Generates a sequence of states and emissions from a Markov model从一个马尔科夫模型产生状态序列和输出序列,该序列具有模型所表达的随机性特征。A random sequence seq of emission symbolsA random sequence states of states用法:seq,states = hmmgenerate(len,TRANS,EMIS)hmmgenerate(.,Symbols,SYMBOLS)hmmgenerate(.,Statenames,STATENAMES)示例: trans = 0.95,0.05; 0.10,0.90; emis = 1/6 1/6 1/6 1/6 1/6 1/6; 1/10 1/10 1/10 1/10 1/10 1/2;seq,states = hmmgenerate(100,trans,emis)seq,states = hmmgenerate(100,trans,emis,. Symbols,one,two,three,four,five,six,.Statenames,fair;loaded)估计状态序列:Estimating the State Sequencehmmviterbi Calculates the most probable state path for a hidden Markov modelGiven the transition and emission matrices TRANS and EMIS, the function hmmviterbi uses the Viterbi algorithm to compute the most likely sequence of states the model would go through to generate a given sequence seq of emissions:给定状态转移矩阵TRANS和混淆矩阵EMIS,hmmviterbi使用Viterbi算法计算该模型最相似的状态序列。用法:STATES = hmmviterbi(seq,TRANS,EMIS)hmmviterbi(.,Symbols,SYMBOLS)hmmviterbi(.,Statenames,STATENAMES)示例:likelystates = hmmviterbi(seq, TRANS, EMIS);trans = 0.95,0.05; 0.10,0.90;emis = 1/6 1/6 1/6 1/6 1/6 1/6; 1/10 1/10 1/10 1/10 1/10 1/2;seq,states = hmmgenerate(100,trans,emis);estimatedStates = hmmviterbi(seq,trans,emis);seq,states = hmmgenerate(100,trans,emis,. Statenames,fair;loaded);estimatesStates = hmmviterbi(seq,trans,emis,. Statenames,fair;loaded);hmmestimate和hmmtrain用于通过给定的输出序列估计转移矩阵TRANS和混淆矩阵EMIS。hmmestimate Calculates maximum likelihood estimates of transition and emission probabilities from a sequence of emissions and a known sequence of states通过一个输出序列和已知的状态序列,计算转移概率和输出概率的最大似然估计。用法:TRANS,EMIS = hmmestimate(seq,states)hmmestimate(.,Symbols,SYMBOLS)hmmestimate(.,Statenames,STATENAMES)hmmestimate(.,Pseudoemissions,PSEUDOE)hmmestimate(.,Pseudotransitions,PSEUDOTR)示例:通过已知的输出序列和状态序列估计出转移状态和混淆矩阵。TRANS_EST, EMIS_EST = hmmestimate(seq, states)TRANS_EST =0.8989 0.10110.0585 0.9415EMIS_EST =0.1721 0.1721 0.1749 0.1612 0.1803 0.13930.5836 0.0741 0.0804 0.0789 0.0726 0.1104hmmtrain Calculates maximum likelihood estimates of transition and emission probabilities from a sequence of emissions.在知道输出序列,不知道状态转移序列,但是对转移矩阵和混淆矩阵有个初始猜测的情况下,可以使用hmmtrain估计转移状态和混淆矩阵,改函数可以选择使用BaumWelch或者Viterbi算法,通过迭代的方式进行估计,可以设置迭代次数Maxiterations和精度Tolerance。用法:ESTTR,ESTEMIT = hmmtrain(seq,TRGUESS,EMITGUESS)hmmtrain(.,Algorithm,algorithm)hmmtrain(.,Symbols,SYMBOLS)hmmtrain(.,Tolerance,tol)hmmtrain(.,Maxiterations,maxiter)hmmtrain(.,Verbose,true)hmmtrain(.,Pseudoemissions,PSEUDOE)hmmtrain(.,Pseudotransitions,PSEUDOTR)示例:TRANS_GUESS = .85 .15; .1 .9;EMIS_GUESS = .17 .16 .17 .16 .17 .17;.6 .08 .08 .08 .08 08;You estimate TRANS and EMIS as follows:TRANS_EST2, EMIS_EST2 = hmmtrain(seq, TRANS_GUESS, EMIS_GUESS)TRANS_EST2 =0.2286 0.77140.0032 0.9968EMIS_EST2 =0.1436 0.2348 0.1837 0.1963 0.2350 0.00660.4355 0.1089 0.1144 0.1082 0.1109 0.1220hmmdecode Calculates the posterior state probabilities of a sequence of emissions用于估计后验状态概率。对于一个输出序列seq的后验状态概率,是指这个模型在确定的状态下产生seq中一个符号的条件概率。PSTATES = hmmdecode(seq,TRANS,EMIS)The output PSTATES is an M-by-L matrix, where M is the number of states and L is the length of seq. PSTATES(i,j) is the conditional probability that the model is in state i when it generates the jth symbol of seq, given that seq is emitted.PSTATES是一个ML的矩阵,M是状态的个数,L是输出序列seq的长度。PSTATES(i,j)是在状态i时,产生seq的第j个符号的条件概率。细心的读者可能会发现,上面都没有使用到Markov模型的初始状态概率矩阵。实际上,如果指定初始状态的概率,则上述函数默认从第一个状态

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论