我在信号处理课程中使用了隐马尔可夫模型算法进行自动语音识别。现在遍历机器学习文献,我发现算法分为“分类”,“聚类”或“回归”。
HMM属于哪个类别?我没有遇到文献中列出的隐马尔可夫模型。

#1 楼

我很想回答“无”或“分类和聚类”。

为什么“无”?因为HMM与支持向量机或k均值不在同一个包中。

支持向量机或k均值是专门为解决问题而设计的(第一种情况是分类,第二种是聚类),并且的确只是一种优化程序,可最大限度地提高“分类的预期优势”或“聚类优势”标准。美在于准则的选择和优化程序。 HMM本身不是算法。它们是向量序列上的一种特定概率分布-我们知道良好的参数估计和边际分布计算算法。但是,问他们是否属于“集群”或“分类”家族,与问高斯分布是有监督的学习还是无监督的学习一样荒谬。

为什么“分类和聚类”?由于以下原因:作为概率分布,HMM可用于贝叶斯框架中的分类;并且由于模型具有隐藏状态,因此可以从其参数中恢复训练数据的一些潜在聚类。更准确地说:

HMM可用于分类。这是贝叶斯分类框架的直接应用,HMM用作描述数据的概率模型。例如,您有一个大型的数字发音数据库(“一个”,“两个”等),并且想要构建一个能够对未知发音进行分类的系统。对于训练数据中的每个班级(“一个”,“两个”),您估计描述该班级训练序列的HMM模型的参数-最终得到10个模型。然后,要进行识别,请计算10个模型可能性分数(表示模型识别出您想要识别的序列的可能性),分数最高的模型为您提供数字。在HMM的Rabiner教程中,训练阶段为“问题3”,分类阶段是“问题2”。

HMM也可以以无监督的方式使用,以实现类似于聚类的功能。给定序列,您可以在其上训练$ k $状态的HMM,在训练过程的最后,对您的序列运行Viterbi算法,以获取与每个输入向量相关联的最有可能的状态(或在训练过程中从$ \ gamma $中拉出该状态)。您的输入序列进入$ k $类,但与通过运行d获得的输入序列不同通过k均值,您的聚类在时间轴上是均匀的。例如,您可以提取视频序列每一帧的颜色直方图,在该序列上运行此过程,最后将视频分解为与场景相对应的同质时间段(不实际的位是您必须预先设置场景数量$ k $)。此技术通常用于视频或音乐的自动,无人监督的结构分析。

#2 楼

首先,让我们看一下三个选项:




分类:标识数据属于一组预定义类的哪个类。

聚类:学习数据所属的一组类。

回归:查找变量与一个或多个变量之间的关系。

维基百科上的HMM描述如下表:



,因此状态(类)的数目是固定的。

这意味着该算法不会尝试找出类别(状态)的数目-因此它不是开放式集群(状态数未知)。

但是,正如@nikie指出的那样,HMM会进行集群。

没有确实是一个自变量(因为存在于回归上下文中)---所以它不是回归。

所以我的回答是HMM是分类和聚类算法,我不认为它是一个回归。

评论


$ \ begingroup $
如何从“如果固定的类数”到“这样算法就不会试图弄清楚这些类是”? k均值聚类的类数也是固定的,但这显然是一种聚类算法。
$ \ endgroup $
– Niki Estner
2012年9月12日在7:10

$ \ begingroup $
我想我习惯于开放式集群,而不是固定集群。将更新答案。谢谢!
$ \ endgroup $
– Peter K.♦
2012年9月12日于17:20