确定隐马尔可夫模型中隐藏状态的数量

时间:2013-07-10 08:16:31

标签: machine-learning computer-vision hidden-markov-models feature-extraction

我正在学习隐藏马尔可夫模型,用于对t图像帧序列中的运动进行分类。

假设每个帧都有m个特征尺寸。然后我将它聚类成一个符号(用于可观察的符号)。我为k类创建了k个不同的HMM模型。

然后,如何确定每个模型的隐藏状态数以优化预测?

顺便问一下,我的做法是否正确?如果我误解了如何使用它,请纠正我:)

谢谢:)

1 个答案:

答案 0 :(得分:8)

“我的方法已经正确了吗?”

您目前的做法是正确的。几个星期前我做了同样的事情并提出了同样的问题。我已经构建了一个手势识别工具。

你说你想要识别k级,所以是的,你将训练k HMM。对于每个HMM,您运行前向算法并接收每个隐藏马尔可夫模型的P(HMM|observation)(或者也可以进行维特比解码)。然后你拿一个概率最高的那个。

将m维特征向量视为单个观察符号也是正确的。根据矢量的外观,您可能希望使用连续隐马尔可夫模型或离散隐马尔可夫模型。使用离散的工作通常更容易,更容易训练,只需很少的训练数据。因此,如果您的要素向量空间是连续的,您可能需要考虑离散化以使所有值离散(例如通过统一类)。 关于离散性的问题是:你会有多少类观察?

“如何确定每个模型的隐藏状态数以获得最佳预测?”

但是,我无法完全回答您关于隐藏状态数量的实际问题。从我在其他领域所教授的内容来看,它似乎是很多基准测试和测试。例如。在语音识别中,我们对每个音素(人声)使用3个HMM状态,因为声音在开始,中间和结尾时听起来不同。然后每个不同的phonem获得一个三倍。但那当然是工程学。

在我自己的应用程序中,我这样想:我想定义手势并将它们与方向联系起来。像open_firefox = [UP, RIGHT]一样。所以我决定在所有四个方向上使用四种隐藏状态。 我想找出最好的州数是关于工程和尝试不同的东西。