什么是Kevin Murphy HMM工具包中learn_dmm.m使用的算法?

我打算将使用Kevin Murphy工具包的MATLAB脚本重写成Python。

我知道Python中有一些HMM算法的实现(Viterbi、Baum Welch、Backward 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 使用EM算法寻找具有离散输出的HMM的最大似然参数。%% [LL, PRIOR, TRANSMAT, OBSMAT] = LEARN_HMM(DATA, PRIOR0, TRANSMAT0, OBSMAT0) % 计算以下参数的最大似然估计,其中,对于每个时间t,Q(t)是隐藏状态,% Y(t)是观测值%   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)% 它使用PRIOR0作为PRIOR的初始估计,等等。

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

抱歉,我只是刚开始接触机器学习


回答:

我认为注释已经解释得很清楚了:使用EM算法寻找具有离散输出的HMM的最大似然参数。

你可以阅读这篇经典论文来理解HMM:隐藏马尔可夫模型及其在语音识别中的选定应用教程,L. Rabiner,1989年,Proc. IEEE 77(2):257–286。

上面的函数解决了论文中第264页的问题3

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注