我正在学习隐藏马尔可夫模型,用于在一系列t图像帧中对运动进行分类 .
假设每个帧都有m个特征尺寸 . 然后我将它聚类成一个符号(用于可观察的符号) . 我为k类创建了k个不同的HMM模型 .
那么,如何确定每个模型的隐藏状态数以优化预测?
顺便问一下,我的做法是否正确?如果我误解了如何使用它,请纠正我:)
谢谢 :)
您当前的方法是正确的 . 几个星期前我做了同样的事情并提出了同样的问题 . 我已经构建了一个手势识别工具 .
你说你有k级你想要识别,所以是的,你将训练k HMM . 对于每个HMM,您运行前向算法并接收每个隐藏马尔可夫模型的 P(HMM|observation) (或者也可以进行维特比解码) . 然后你拿一个概率最高的那个 .
P(HMM|observation)
将m维特征向量视为单个观察符号也是正确的 . 根据矢量的外观,您可能希望使用连续隐马尔可夫模型或离散隐马尔可夫模型 . 使用离散的工作通常更容易,更容易训练,只需很少的训练数据 . 因此,如果您的要素向量空间是连续的,您可能需要考虑离散化以使所有值离散(例如通过统一类) . 关于离散性的问题是:你会有多少类观察?
但是,我无法完全回答你关于隐藏状态数量的实际问题 . 从我在其他领域所教授的内容来看,它似乎是很多基准测试和测试 . 例如 . 在语音识别中,我们对每个音素(人声)使用3个HMM状态,因为声音在开始,中间和结尾时听起来不同 . 然后每个不同的phonem获得一个三倍 . 但那当然是工程学 .
在我自己的应用程序中,我这样想:我想定义手势并将它们与方向联系起来 . 喜欢 open_firefox = [UP, RIGHT] . 所以我决定在所有四个方向上使用四种隐藏状态 . 我想找出最好的州数量很多关于工程和尝试不同的东西 .
open_firefox = [UP, RIGHT]
1 回答
“我的方法已经正确了吗?”
您当前的方法是正确的 . 几个星期前我做了同样的事情并提出了同样的问题 . 我已经构建了一个手势识别工具 .
你说你有k级你想要识别,所以是的,你将训练k HMM . 对于每个HMM,您运行前向算法并接收每个隐藏马尔可夫模型的
P(HMM|observation)
(或者也可以进行维特比解码) . 然后你拿一个概率最高的那个 .将m维特征向量视为单个观察符号也是正确的 . 根据矢量的外观,您可能希望使用连续隐马尔可夫模型或离散隐马尔可夫模型 . 使用离散的工作通常更容易,更容易训练,只需很少的训练数据 . 因此,如果您的要素向量空间是连续的,您可能需要考虑离散化以使所有值离散(例如通过统一类) . 关于离散性的问题是:你会有多少类观察?
“如何确定每个模型的隐藏状态数以获得最佳预测?”
但是,我无法完全回答你关于隐藏状态数量的实际问题 . 从我在其他领域所教授的内容来看,它似乎是很多基准测试和测试 . 例如 . 在语音识别中,我们对每个音素(人声)使用3个HMM状态,因为声音在开始,中间和结尾时听起来不同 . 然后每个不同的phonem获得一个三倍 . 但那当然是工程学 .
在我自己的应用程序中,我这样想:我想定义手势并将它们与方向联系起来 . 喜欢
open_firefox = [UP, RIGHT]
. 所以我决定在所有四个方向上使用四种隐藏状态 . 我想找出最好的州数量很多关于工程和尝试不同的东西 .