我正在学习隐马尔可夫模型,用于对 t 个图像帧序列中的运动进行分类。
假设每个帧有 m 个维度的特征。然后我将它聚集成一个符号(用于可观察的符号)。我为 k 类创建 k 个不同的 HMM 模型。
那么,如何确定每个模型的隐藏状态数量以优化预测?
顺便说一句,我的方法正确吗?如果我误解了如何使用它,请纠正我:)
谢谢 :)
“我的做法已经正确了吗?”
你现在的做法是正确的。几周前我也做了同样的事情并问了同样的问题。我已经构建了一个手势识别工具。
你说你有 k 个类想要识别,所以是的,你将训练 k 个 HMM。对于每个 HMM,您运行前向算法并接收P(HMM|observation)
对于每个隐马尔可夫模型(或者维特比解码也是可能的)。然后你选择概率最高的那个。
将 m 维特征向量视为单个观察符号也是正确的。根据向量的外观,您可能需要使用连续隐马尔可夫模型或离散隐马尔可夫模型。使用离散数据进行训练通常会越来越容易,只需很少的训练数据。因此,如果您的特征向量空间是连续的,您可能需要考虑离散化以使所有值离散(例如通过统一类)。
关于离散性的问题是:您将有多少类观察?
“如何确定每个模型的隐藏状态数量以获得最佳预测?”
但是,我无法完全回答您有关隐藏状态数量的实际问题。从我在其他领域学到的知识来看,似乎需要进行大量的基准测试和测试。例如。在语音识别中,我们对每个音素(人声)使用 3 个 HMM 状态,因为声音在开头、中间和结尾听起来不同。然后每个不同的音素得到一个三元组。但这当然是工程。
在我自己的应用程序中,我是这样想的:我想定义手势并将它们与方向相关联。喜欢open_firefox = [UP, RIGHT]
。所以我决定对所有四个方向使用四个隐藏状态。
我想找出最佳的状态数量很大程度上取决于工程和尝试不同的事情。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)