我将重写一个使用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.
我不明白这个程序实际上做了什么。
抱歉,我正在接近机械学习答案 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页)。