在Kevin Murphy HMM工具箱中学习dmm.m时使用的算法是什么?

时间:2011-12-11 14:57:12

标签: machine-learning matlab hidden-markov-models

我将重写一个使用Kevin Murphy的Python工具栏的MATLAB脚本。

我知道在python中有一些HMM algos实现(Viterbi,Baum Welch,Backword Forward),所以我认为我拥有移植matlab所需的一切 - > python。

我的MATLAB脚本使用learn_dhmm.m中编写的过程:

function [LL, prior, transmat, obsmat, gamma] = learn_dhmm(data, prior, transmat, obsmat, max_iter, thresh, verbose, act, adj_prior, adj_trans, adj_obs, dirichlet)
% LEARN_HMM Find the ML parameters of an HMM with discrete outputs using EM.
%
% [LL, PRIOR, TRANSMAT, OBSMAT] = LEARN_HMM(DATA, PRIOR0, TRANSMAT0, OBSMAT0) 
% computes maximum likelihood estimates of the following parameters,
% where, for each time t, Q(t) is the hidden state, and
% Y(t) is the observation
%   prior(i) = Pr(Q(1) = i)
%   transmat(i,j) = Pr(Q(t+1)=j | Q(t)=i)
%   obsmat(i,o) = Pr(Y(t)=o | Q(t)=i)
% It uses PRIOR0 as the initial estimate of PRIOR, etc.

我不明白这个程序实际上做了什么。

抱歉,我正在接近机械学习

1 个答案:

答案 0 :(得分:1)

我认为评论是解释性的:Find the ML parameters of an HMM with discrete outputs using EM.

你可以阅读这篇经典论文来理解HMM:A tutorial on Hidden Markov Models and selected applications in speech recognition,L。Rabiner,1989,Proc。 IEEE 77(2):257--286。

上述功能解决了论文中的问题3 (第264页)。