ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:64.05KB ,
资源ID:15716592      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/15716592.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(向前向后算法forwardbackward algorithmWord文档下载推荐.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

向前向后算法forwardbackward algorithmWord文档下载推荐.docx

1、随机初始化一组参数(0),根据后验概率Pr(Y|X;)来更新Y的期望E(Y),然后用E(Y)代替Y求出新的模型参数(1)。如此迭代直到趋于稳定。在HMM问题中,隐含变量自然就是状态变量,要求状态变量的期望值,其实就是求时刻ti观察到xi时处于状态si的概率,为了求此概率,需要用到向前变量和向后变量。向前变量向前变量是假定的参数它表示t时刻满足状态,且t时刻之前(包括t时刻)满足给定的观测序列的概率。1. 令初始值2. 归纳法计算3. 最后计算复杂度向后变量它表示在时刻t出现状态,且t时刻以后的观察序列满足1. 初始值2. 归纳计算E-Step定义变量为t时刻处于状态i,t+1时刻处于状态j的概

2、率。表示t时刻呈现状态i的概率。实际上是从其他所有状态转移到状态i的次数的期望值。是从状态i转移出去的次数的期望值。是从状态i转移到状态j的次数的期望值。M-Step是在初始时刻出现状态i的频率的期望值,是从状态i转移到状态j的次数的期望值 除以从状态i转移出去的次数的期望值,是在状态j下观察到活动为k的次数的期望值从其他所有状态转移到状态j的次数的期望值,然后用新的参数再来计算向前变量、向后变量、和。如此循环迭代,直到前后两次参数的变化量小于某个值为止。下面给出我的java代码: 1importjava.io.BufferedReader; 2importjava.io.File; 3imp

3、ortjava.io.FileReader; 4importjava.io.IOException; 5importjava.util.Arrays; 6importjava.util.HashMap; 7importjava.util.LinkedList; 8importjava.util.List; 9importjava.util.Map; 10importjava.util.Map.Entry; 11 12/* 13 * 隐马尔可夫模型参数学习。14 *15 * Author:zhangchaoyang 16 * Since:2015年4月4日17 * Version:1.018*/

4、 19publicclassHmmLearn 20 21privateintstateCount;/ 状态的个数 22private MapobserveIndexMap = newHashMap();/ 观察值及其索引编号 23/* 24 * 通过学习得到的模型参数 25*/ 26privatedouble stateProb;/ 初始状态概率矩阵 27privatedouble stateTrans;/ 状态转移矩阵 28privatedouble emission;/ 混淆矩阵 29 30private ListobserveSeqs = newLinkedList 1) / 长度为1的

5、观察序列必须过滤掉,不然在更新stateTrans时会出现NaN的情况 59observeSeqs.add(seq); 60for (inti = 0; iseq.length(); i+) 61 String observe = seq.substring(i, i + 1); 62if (!observeIndexMap.containsKey(observe) 63observeIndexMap.put(observe, observeCount+); 64 65 66 67 68 69br.close(); 70 71stateProb = newdoublestateCount; 7

6、2initWeightRandomly(stateProb, 1E5); 73/ initWeightEqually(stateProb); 74stateTrans = newdoublestateCount; 75for (inti = 0;stateCount; 76stateTransi = newdoublestateCount; 77initWeightRandomly(stateTransi, 1E5); 78/ initWeightEqually(stateTransi); 79 80 emission = newdoublestateCount; 81for (inti =

7、0; 82 emissioni = newdoubleobserveCount; 83initWeightRandomly(emissioni, 1E9); 84/ initWeightEqually(emissioni); 85 86 87 88/* 89 * 随机地初始化权重,使得各权重非负,且和为1. 90 * 91 * paramarr 92 * param precision 93*/ 94publicvoidinitWeightRandomly(double arr, double precision) 95intlen = arr.length - 1; 96int positi

8、on = newintlen; 97for (inti = 0;len; 98 positioni = (int) (Math.random() * precision); 99 100Arrays.sort(position);101int pre = 0;102for (inti = 0;103arri = 1.0 * (positioni - pre) / precision;104 pre = positioni;105 106arrlen = 1.0 * (precision - pre) / precision;107 108109/*110 * 均等地初始化权重,使得各权重非负,

9、且和为1.111 * 112 * paramarr113*/114publicvoidinitWeightEqually(double arr) 115intlen = arr.length;116for (inti = 0;117arri = 1.0 / len;118 119 120121/*122 * BaumWelch算法学习HMM的模型参数123*/124publicvoidbaumWelch() 125long begin = System.currentTimeMillis();126intiter = 0;127while (iter+ ITERATION_MAX) 128double stateProb_new = newdoublestateCount;129double stateTrans_new = newdoublestateCount;130double emission_new = newdoublestateCount;131for (inti = 0;132

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1