HMM隐形马尔可夫模型实验报告_第1页
HMM隐形马尔可夫模型实验报告_第2页
HMM隐形马尔可夫模型实验报告_第3页
HMM隐形马尔可夫模型实验报告_第4页
HMM隐形马尔可夫模型实验报告_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

1、模式识别与机器学习课程实验报告1实验内容DesignanHMMmodel,andgeneratesequentialdata(trainingandtest)withthemodel.Learningmodelparametersonthetrainingdata.Testthemodellearnedonthetestdata:Estimatethemostprobablevaluesforthelatentvariables.2实验环境Window7,matlab7.11.03实验原理HMM即隐性马尔可夫模型,此模型可认为是状态空间模型的一个特殊情况。当令状态空间模型中的潜变量为离散的时,

2、我们即得到了隐性马尔可夫模型。3.1模型状态在一个典型的HMM模型中,通常有两个状态集合来描述该模型状态:隐含状态,通常用S表示。这些状态之间满足马尔可夫性质,是马尔可夫模型中实际所隐含的状态。这些状态通常无法通过直接观测而得到。(例如SI、S2、S3等等)。可观测状态,通常用O表示。在模型中与隐含状态相关联,可通过直接观测而得到。(例如Ol、O2、03等等)。可观测状态的数目不一定要和隐含状态的数目一致。3.2模型参数一个典型的HMM模型包含以下参数: 初始状态概率矩阵n。表示隐含状态在初始时刻t=l时刻的概率矩阵,(例如t=l时,P(Sl)=pl、P(S2)=P2、P(S3)=p3,则初始

3、状态概率矩阵n=p1p2p3).隐含状态转移概率矩阵A。描述了HMM模型中各个状态之间的转移概率,N代表隐含状态数目。其中Aij=P(Sj|Si),lWi,jWN。表示在t时刻、状态为Si的条件下,在t+1时刻状态是Sj的概率。观测状态发射概率矩阵B。表示在t时刻、隐含状态是Sj条件下,观察状态为Oi的概率。令N代表隐含状态数目,M代表可观测状态数目,贝V:Bij=P(Oi|Sj),lWiWM,lWjWN.一般来说,可以用入=(A,B,n)三元组来表示一个隐性马尔可夫模型。给定了这三个参数,我们便得到了一个HMM模型。在实验过程中,我们在matlab环境下指定各组参数,得到一个HMM后,便可以

4、利用这个模型生成一定量的数据作为训练集与测试集。3相关算法根据实验内容,可以得知这个实验中主要涉及到利用HMM解决的三类问题:给定观察得到的序列O,如何调整参数入,使P(O|入)最大。即通过给定O,不断估算一个适合的参数入=(A,B,n),使发生这个O的概率P(O|入)最大。这个问题的一种有效解决算法是Baum-Welch算法,即EM算法的一种特殊形式。且通过对BW算法的分析可以看出,该算法以前后向算法为基础。前后向算法用于计算在某一时刻t,潜变量处于某一状态的概率。EM算法的具体过程在此不再赘述。给定观测序列0=0102030t和模型参数入=(A,B,n),怎样有效计算某一观测序列的概率,进

5、而可对该HMM做出相关评估。例如,已有一些模型参数各异的HMM,给定观测序列O=O1O2O3-Ot,我们想知道哪个HMM模型最可能生成该观测序列。通常我们利用前后向算法分别计算每个HMM产生给定观测序列O的概率,然后从中选出最优的HMM模型。给定一个观察到的序列O,及参数入,求出最有可能产生这种序列的状态序列S。这个问题的一种有效解决算法是Viterbi算法,也是一种动态的规划方法,用来找出最可能的状态路径。Viterbi算法的具体原理及过程在此不再絜述。4实验过程一、定义HMM模型中的各参数,得到一个HMM模型。在本实验中,定义该HMM模型为以下实例。假设程序员Tom每天的活动会被其所在项目

6、组是否忙碌所影响。在本例中,项目组忙碌情况为潜变量,包括忙(Busy),闲(free)二种状态;Tom每天的活动是观测变量,包括编程(programming,运动(Sport)休息(Relax),读书(Reading,旅行(Travellin)潜变量对应状态如表1所示:忙闲12表1可观测变量状态对应如表2所示:编程运动休息读书旅行12345表2此HMM模型中的参数的初始值分别定义如下:n二0.50.5A=0.60.7_0.40.3_0.60.20.10.2B=0.10.40.10.1_0.10.1_赋得初始值后,利用matlab中的某函数,随机根据(A,B,n)的值,生成一个data集合,即可

7、根据已有的markov模型来生成一个数据集。在这个数据集中,将会80%的数据用来训练生成一个HMM的参数,另外20%将会用来作为测试集来测试这一模型的准确性。具体的程序运行及实现过程详见代码说明及注释。程序运行后,可见代码运行产生的数据集data的部分数值显示如图1所示(也可在命令窗口中通过指令显示变量数值,这里我们直接在workspace中查看):二、根据所得的数据集作为输入,对HMM模型进行训练,产生一组新的参数。如实验原理部分所述,该部分所采用EM作为训练参数产生的方法。在程序中,设置迭代次数为50次。经过50次迭代后,程序运行结果如图2所示:迭代数次后得到的训练模型中的对数似然值:it

8、eration4乞loglik=-481.581776iteration47,loglik=-481.569585iteration48jloglik=-481.557800iteration49loglik=-481.546372iteration50jloglik=-481.535261图2得到的训练模型中的初始概率矩阵的值如图3所示:图3得到训练模型中的转移矩阵的值如图4所示:得到的训练模型中的发射矩阵的值如图5所示:三、利用前后向算法,通过计算测试数据的似然数值,对训练所得的模型进行测试。程序运行后产生的似然对数值为loglik,结果如下图6所示:三、根据Viterbi算法,用训练产生

9、的模型,估算出该模型下测试数据的最大可能的潜变量序列。程序运行后产生的序列如下图7所示:5实验结果本实验的实验结果已在实验过程中给出。6实验总结及存在的问题6.1实验总结:给定参数,完成对HMM模型的构建,并基于该模型生成数据集,用于训练与测试(80%用作训练数据,20%用作测试数据)。以上一步所产生的数据集的部分数据作为训练集,对HMM模型进行训练,生成训练参数。基于训练模型,计算测试数据集的似然对数值.给定模型参数及测试观测序列,估计潜变量最大可能序列。6.2存在的问题:由于选取的训练集及算法本身存在的各种问题,从程序的运行结果可以看出,EM算法在若干次迭代后其最大似然对数值不再发生大的变化,而且,训练参数的结果并不十分令人满意。训

温馨提示

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

评论

0/150

提交评论