摘要: 五、前向算法(Forward Algorithm)计算观察序列的概率(Finding the probability of an observed sequence)1.穷举搜索( Exhaustive search for solution) 给定隐马尔科夫模型,也就是在模型参数(, A, B)已知的情况下,我们想找到观察序列的概率。还是考虑天气这个例子,我们有一个用来描述天气及与它密切相关的海藻湿度状态的隐马尔科夫模型(HMM),另外我们还有一个海藻的湿度状态观察序列。假设连续3天海藻湿度的观察结果是(干燥、湿润、湿透)——而这三天每一天都可能是晴天、多云或下雨,对于观察序列以及隐藏的状. 阅读全文
posted @ 2012-01-05 22:29 malltt 阅读(194) 评论(0) 推荐(0)
摘要: 四、隐马尔科夫模型(Hidden Markov Models) 1、定义(Definition of a hidden Markov model) 一个隐马尔科夫模型是一个三元组(, A, B)。 :初始化概率向量; :状态转移矩阵; :混淆矩阵; 在状态转移矩阵及混淆矩阵中的每一个概率都是时间无关的——也就是说,当系统演化时这些矩阵并不随时间改变。实际上,这是马尔科夫模型关于真实世界最不现实的一个假设。2、应用(Uses associated with HMMs) 一旦一个系统可以作为HMM被描述,就可以用来解决三个基本问题。其中前两个是模式识别的问题:给定HMM求一个观察序列... 阅读全文
posted @ 2012-01-05 22:26 malltt 阅读(221) 评论(0) 推荐(0)
摘要: http://www.cnblogs.com/malong/admin/EditArticles.aspx 阅读全文
posted @ 2012-01-05 22:18 malltt 阅读(186) 评论(0) 推荐(0)
摘要: 维特比算法程序示例如下:void Viterbi(HMM *phmm, int T, int *O, double **delta, int **psi,int *q, double *pprob){ int i, j; /* state indices */ int t; /* time index */ int maxvalind; double maxval, val; /* 1. Initialization */ for (i = 1; i <= phmm->N; i++) { delta[1][i] = phmm->pi[i] * (phmm->B[i][O 阅读全文
posted @ 2012-01-05 22:09 malltt 阅读(71) 评论(0) 推荐(0)
摘要: 转载自:http://www.52nlp.cn/hmm-learn-best-practices-six-viterbi-algorithm-4六、维特比算法(Viterbi Algorithm)维特比算法定义(Viterbi algorithm definition)1、维特比算法的形式化定义 维特比算法可以形式化的概括为: 对于每一个i,i = 1,… ,n,令: ——这一步是通过隐藏状态的初始概率和相应的观察概率之积计算了t=1时刻的局部概率。 对于t=2,…,T和i=1,…,n,令: ——这样就确定了到达下一个状态的最可能路径,并对如何到达下一个状态做了记... 阅读全文
posted @ 2012-01-05 22:09 malltt 阅读(118) 评论(0) 推荐(0)
摘要: 六、维特比算法(Viterbi Algorithm)寻找最可能的隐藏状态序列(Finding most probable sequence of hidden states)2d.反向指针,’s 考虑下面这个网格 在每一个中间及终止状态我们都知道了局部概率,(i,t)。然而我们的目标是在给定一个观察序列的情况下寻找网格中最可能的隐藏状态序列——因此,我们需要一些方法来记住网格中的局部最佳路径。 回顾一下我们是如何计算局部概率的,计算t时刻的’s我们仅仅需要知道t-1时刻的’s。在这个局部概率计算之后,就有可能记录前一时刻哪个状态生成了(i,t)——也就是说,在t-1时刻系统必须处于... 阅读全文
posted @ 2012-01-05 22:08 malltt 阅读(133) 评论(0) 推荐(0)
摘要: 六、维特比算法(Viterbi Algorithm)寻找最可能的隐藏状态序列(Finding most probable sequence of hidden states)2b.计算t=1时刻的局部概率’s 我们计算的局部概率是作为最可能到达我们当前位置的路径的概率(已知的特殊知识如观察概率及前一个状态的概率)。当t=1的时候,到达某状态的最可能路径明显是不存在的;但是,我们使用t=1时的所处状态的初始概率及相应的观察状态k1的观察概率计算局部概率;即 ——与前向算法类似,这个结果是通过初始概率和相应的观察概率相乘得出的。2c.计算t>1时刻的局部概率’s 现在我们... 阅读全文
posted @ 2012-01-05 22:07 malltt 阅读(91) 评论(0) 推荐(0)
摘要: 六、维特比算法(Viterbi Algorithm)寻找最可能的隐藏状态序列(Finding most probable sequence of hidden states) 对于一个特殊的隐马尔科夫模型(HMM)及一个相应的观察序列,我们常常希望能找到生成此序列最可能的隐藏状态序列。1.穷举搜索 我们使用下面这张网格图片来形象化的说明隐藏状态和观察状态之间的关系: 我们可以通过列出所有可能的隐藏状态序列并且计算对于每个组合相应的观察序列的概率来找到最可能的隐藏状态序列。最可能的隐藏状态序列是使下面这个概率最大的组合: Pr(观察序列|隐藏状态的组合) 例如,对于网格中所显示... 阅读全文
posted @ 2012-01-05 22:06 malltt 阅读(110) 评论(0) 推荐(0)
摘要: void Forward(HMM *phmm, int T, int *O, double **alpha, double *pprob){ int i, j; /* state indices */ int t; /* time index */ double sum; /* partial sum */ /* 1. Initialization */ for (i = 1; i <= phmm->N; i++) { alpha[1][i] = phmm->pi[i]* phmm->B[i][O[1]]; printf( “a[1][%d] = pi[%d] * .. 阅读全文
posted @ 2012-01-05 22:05 malltt 阅读(80) 评论(0) 推荐(0)
摘要: 五、前向算法(Forward Algorithm)计算观察序列的概率(Finding the probability of an observed sequence)2b.计算t=1时的局部概率’s 我们按如下公式计算局部概率: t ( j )= Pr( 观察状态 | 隐藏状态j ) x Pr(t时刻所有指向j状态的路径) 特别当t=1时,没有任何指向当前状态的路径。故t=1时位于当前状态的概率是初始概率,即Pr(state|t=1)=P(state),因此,t=1时的局部概率等于当前状态的初始概率乘以相关的观察概率: 所以初始时刻状态j的局部概率依赖于此状态的初始概... 阅读全文
posted @ 2012-01-05 22:04 malltt 阅读(120) 评论(0) 推荐(0)
摘要: 五、前向算法(Forward Algorithm)前向算法定义(Forward algorithm definition) 我们使用前向算法计算T长观察序列的概率: 其中y的每一个是观察集合之一。局部(中间)概率(’s)是递归计算的,首先通过计算t=1时刻所有状态的局部概率: 然后在每个时间点,t=2,… ,T时,对于每个状态的局部概率,由下式计算局部概率: 也就是当前状态相应的观察概率与所有到达该状态的路径概率之积,其递归地利用了上一个时间点已经计算好的一些值。 最后,给定HMM,,观察序列的概率等于T时刻所有局部概率之和: 再重复说明一下... 阅读全文
posted @ 2012-01-05 22:04 malltt 阅读(106) 评论(0) 推荐(0)
摘要: http://www.comp.leeds.ac.uk/roger/HiddenMarkovModels/html_dev/main.htmlhttp://www.52nlp.cn/hmm-learn-best-practices-five-forward-algorithm-1五、前向算法(Forward Algorithm)计算观察序列的概率(Finding the probability of an observed sequence)1.穷举搜索( Exhaustive search for solution) 给定隐马尔科夫模型,也就是在模型参数(, A, B)已知的情况下,我们想. 阅读全文
posted @ 2012-01-05 22:03 malltt 阅读(110) 评论(0) 推荐(0)
摘要: 四、隐马尔科夫模型(Hidden Markov Models) 1、定义(Definition of a hidden Markov model) 一个隐马尔科夫模型是一个三元组(, A, B)。 :初始化概率向量; :状态转移矩阵; :混淆矩阵; 在状态转移矩阵及混淆矩阵中的每一个概率都是时间无关的——也就是说,当系统演化时这些矩阵并不随时间改变。实际上,这是马尔科夫模型关于真实世界最不现实的一个假设。2、应用(Uses associated with HMMs) 一旦一个系统可以作为HMM被描述,就可以用来解决三个基本问题。其中前两个是模式识别的问题:给定HMM求一个观察序列... 阅读全文
posted @ 2012-01-05 22:01 malltt 阅读(131) 评论(0) 推荐(0)