我在信号处理类中使用隐马尔可夫模型算法进行自动语音识别。现在通过机器学习文献,我看到算法被归类为“分类”、“聚类”或“回归”。HMM属于哪个桶?我没有遇到文献中列出的隐藏马尔可夫模型。
哪种机器学习算法是隐马尔可夫模型?
我很想回答“无”或“分类和聚类”。
为什么是“无”?因为 HMM 与支持向量机或 k-means 不在同一个包里。
支持向量机或 k-means 是专门为解决问题而设计的(第一种情况下的分类,第二种情况下的聚类),实际上只是一个优化程序,以最大化“预期分类优度”或“聚类优度”标准. 美妙之处在于标准和优化程序的选择。HMM 本身并不是一种算法。它们是向量序列上的一种特定概率分布——我们知道良好的参数估计和边际分布计算算法。但是询问它们是否属于“聚类”或“分类”家族就像询问高斯分布是监督学习还是无监督学习一样荒谬。
为什么要“分类和聚类”?由于以下原因: 作为概率分布,HMM 可用于贝叶斯框架中的分类;并且作为具有隐藏状态的模型,可以从它们的参数中恢复训练数据的一些潜在聚类。更确切地说:
HMM 可用于分类。这是贝叶斯分类框架的直接应用,HMM 被用作描述数据的概率模型。例如,您有一个包含数字话语(“一”、“二”等)的大型数据库,并且想要构建一个能够对未知话语进行分类的系统。对于训练数据中的每个类(“一”、“二”),您估计描述该类中训练序列的 HMM 模型的参数 - 最终得到 10 个模型。然后,为了执行识别,您计算 10似然分数(表示模型生成您想要识别的序列的可能性有多大),得分最高的模型会给出数字。在HMM 的 Rabiner 教程中,训练阶段为“问题3”,分类阶段为“问题2”。
HMM 也可以以无监督的方式使用,以实现类似于聚类的效果。给定一个序列,你可以训练一个-state HMM,在训练过程结束时,在序列上运行 Viterbi 算法以获得与每个输入向量相关联的最可能状态(或者只是从在训练过程中)。这使您可以将输入序列聚类到类,但与通过 k-means 运行数据所获得的结果不同,您的聚类在时间轴上是同质的。例如,您可以提取视频序列的每一帧的颜色直方图,在此序列上运行此过程,您最终会将视频分解为对应于场景的同质时间段(不切实际的一点是你必须设置场景的数量提前)。这种技术常用于视频或音乐的自动、无监督、结构分析。
首先,让我们看一下三个选项:
维基百科上对 HMM 的描述如下表:
所以状态(类)的数量是固定的。
这意味着该算法不会试图找出类(状态)的数量是 --- 所以它不是开放式聚类(状态数量未知)。
但是,正如@nikie 指出的那样,HMM 将进行聚类。
没有真正的自变量(在回归上下文中存在)---所以它不是回归。
所以我的回答是 HMM 是一种分类和聚类算法,我不相信它是一种回归。