HMM隐形马尔可夫模型实验报告
更新时间:2024-05-08 03:01:01 阅读量: 综合文库 文档下载
《模式识别与机器学习》
课程实验报告
1实验内容
1. Design an HMM model, and generate sequential data (training and test) with the model.
2. Learning model parameters on the training data.
3. Test the model learned on the test data:Estimate the most probable values for the latent variables.
2实验环境
Window7, matlab 7.11.0
3实验原理
HMM即隐性马尔可夫模型,此模型可认为是状态空间模型的一个特殊情况。当令状态空间模型中的潜变量为离散的时,我们即得到了隐性马尔可夫模型。 3.1模型状态
在一个典型的HMM模型中,通常有两个状态集合来描述该模型状态: 1. 隐含状态,通常用S表示。
这些状态之间满足马尔可夫性质,是马尔可夫模型中实际所隐含的状态。这些状态通常无法通过直接观测而得到。(例如S1、S2、S3等等)。 2. 可观测状态,通常用O表示。
在模型中与隐含状态相关联,可通过直接观测而得到。(例如O1、O2、O3等等)。可观测状态的数目不一定要和隐含状态的数目一致。 3.2模型参数
一个典型的HMM模型包含以下参数:
1. 初始状态概率矩阵π。
表示隐含状态在初始时刻t=1时刻的概率矩阵,(例如t=1时,P(S1)=p1、P(S2)=P2、P(S3)=p3,则初始状态概率矩阵 π=[ p1 p2 p3 ]). 2. 隐含状态转移概率矩阵A。
描述了HMM模型中各个状态之间的转移概率,N代表隐含状态数目。 其中Aij = P( Sj | Si ),1≤i,,j≤N。表示在 t 时刻、状态为 Si 的条件下,在 t+1 时刻状态是 Sj 的概率。 3. 观测状态发射概率矩阵B。
表示在 t 时刻、隐含状态是 Sj 条件下,观察状态为 Oi 的概率。令N代表隐含状态数目,M代表可观测状态数目,则:Bij = P( Oi |Sj), 1≤i≤M,1≤j≤N.
一般来说,可以用λ=(A,B,π)三元组来表示一个隐性马尔可夫模型。给定了这三个参数,我们便得到了一个HMM模型。在实验过程中,我们在matlab环境下指定各组参数,得到一个HMM后,便可以利用这个模型生成一定量的数据作为训练集与测试集。 3.3相关算法
根据实验内容,可以得知这个实验中主要涉及到利用HMM解决的三类问题: 1. 给定观察得到的序列O,如何调整参数λ,使P(O|λ)最大。即通过给定O,不断估算一个适合的参数λ=(A,B,π),使发生这个O的概率P(O|λ)最大。这个问题的一种有效解决算法是Baum-Welch算法,即EM算法的一种特殊形式。且通过对BW算法的分析可以看出,该算法以前后向算法为基础。前后向算法用于计算在某一时刻t,潜变量处于某一状态的概率。EM算法的具体过程在此不再赘述。
2. 给定观测序列 O=O1O2O3…Ot和模型参数λ=(A,B,π),怎样有效计算某一观测序列的概率,进而可对该HMM做出相关评估。例如,已有一些模型参数各异的HMM,给定观测序列O=O1O2O3…Ot,我们想知道哪个HMM模型最可能生成该观测序列。通常我们利用前后向算法分别计算每个HMM产生给定观测序列O的概率,然后从中选出最优的HMM模型。
2
3. 给定一个观察到的序列O,及参数λ,求出最有可能产生这种序列的状态序列S。这个问题的一种有效解决算法是Viterbi算法,也是一种动态的规划方法,用来找出最可能的状态路径。Viterbi算法的具体原理及过程在此不再絜述。
4实验过程
一、定义HMM模型中的各参数,得到一个HMM模型。
在本实验中,定义该HMM模型为以下实例。假设程序员Tom每天的活动会被其所在项目组是否忙碌所影响。在本例中,项目组忙碌情况为潜变量,包括忙(Busy),闲(free)二种状态;Tom每天的活动是观测变量,包括编程(programming),运动(Sports),休息(Relax),读书(Reading),旅行(Travelling)。
潜变量对应状态如表1所示:
忙 1 闲 2 表1
可观测变量状态对应如表2所示:
编程 1 运动 2 休息 3 表2
读书 4 旅行 5 此HMM模型中的参数的初始值分别定义如下: π=?0.50.5?
?0.60.7?A=??; ?0.40.3??0.6?0.1?B=?0.1?0.1??0.1
0.2?0.2??0.4?; 0.1??0.1?3
赋得初始值后,利用matlab中的某函数,随机根据(A,B,π)的值,生成一个data集合,即可根据已有的markov模型来生成一个数据集。
在这个数据集中,将会80%的数据用来训练生成一个HMM的参数,另外20%将会用来作为测试集来测试这一模型的准确性。具体的程序运行及实现过程详见代码说明及注释。
程序运行后,可见代码运行产生的数据集data的部分数值显示如图1所示(也可在命令窗口中通过指令显示变量数值,这里我们直接在workspace中查看):
图1
二、根据所得的数据集作为输入,对HMM模型进行训练,产生一组新的参数。如实验原理部分所述,该部分所采用EM作为训练参数产生的方法。在程序中,设置迭代次数为50次。经过50次迭代后,程序运行结果如图2所示: 迭代数次后得到的训练模型中的对数似然值:
图2
得到的训练模型中的初始概率矩阵的值如图3所示:
4
图3
得到训练模型中的转移矩阵的值如图4所示:
图4
得到的训练模型中的发射矩阵的值如图5所示:
图5
三、利用前后向算法,通过计算测试数据的似然数值,对训练所得的模型进行测试。 程序运行后产生的似然对数值为loglik,结果如下图6所示:
图6
三、根据Viterbi算法,用训练产生的模型,估算出该模型下测试数据的最大可能的潜变量序列。
程序运行后产生的序列如下图7所示:
图7
5实验结果
本实验的实验结果已在实验过程中给出。
5
6实验总结及存在的问题
6.1实验总结:
1. 给定参数,完成对HMM模型的构建,并基于该模型生成数据集,用于训练与测试(80%用作训练数据,20%用作测试数据)。
2. 以上一步所产生的数据集的部分数据作为训练集,对HMM模型进行训练,生成训练参数。
3. 基于训练模型,计算测试数据集的似然对数值.
4. 给定模型参数及测试观测序列,估计潜变量最大可能序列。 6.2存在的问题:
1. 由于选取的训练集及算法本身存在的各种问题,从程序的运行结果可以看出,EM算法在若干次迭代后其最大似然对数值不再发生大的变化,而且,训练参数的结果并不十分令人满意。训练产生的发射矩阵的后三列的数值竟然为0。
2. 实验中所用选取的模型的状态数偏少,尤其是隐含变量的状态数较少,一定程序上影响了实验中训练参数的准确性。
3. 在利用viterbi算法估计模型的最大似然值时,因为潜变量的状态偏少,影响了潜变量的估计效果。
4. 实验结果很不稳定,多次运行所得的结果可能相差很大。
6
正在阅读:
HMM隐形马尔可夫模型实验报告05-08
早操策划04-13
户型策划04-22
竞聘演讲稿_2022年竞聘演讲稿范文07-31
7-银行业金融机构案件防控基础知识04-08
业余大专自我鉴定300字05-30
策划方案微电影大赛策划方案12-07
策划方案-食品营销策划方案 精品12-20
表白短信02-07
婚礼策划详细方案001——婚礼策划04-25
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 可夫
- 马尔
- 隐形
- 模型
- 实验
- 报告
- HMM
- 云南省山区农业综合开发的主要成就
- 遗传学练习题及答案
- 计算机系统操作工中级理论试题及答案
- 2015《同位素地球化学》
- 11-12第二学期7年级试题 答案
- 中国互联网+乡村旅游行业发展模式分析与投资潜力预测分析报告(
- 中华医学会感染病学会第八届委员会名单
- 光电子技术-本2007-应用物理-卷A
- 在外地设立办事处
- 以“实”为纲谋篇布局现代化经济体系,迈向高质量发展新时代(上
- 上海市部编语文教材系列之:六年级语文(上)所有现代文重点词语
- 《农村基层干部廉洁履行职责若干规定(试行)》测试题及答案
- 化工工艺试题库
- 13秋最新法律文书作业答案4.wy
- 2014-2015学年第一学期PEP新版六年级英语期末测试题(5)
- 1.1普查与抽样调查(2011年)
- 新时期我国上市公司股利政策与可持续发展研究
- 第六单元小数的加减法
- 四川沱牌舍得酒业股份有限公司财务分析报告
- 2019年中考语文第一轮复习专题二词语(成语)运用复习检测