2013-04-12 82 views
0

我对HMM并不熟悉,但我想在Matlab中实现。我想用这个工具箱HMM Toolbox。我不确定我是否理解了我必须实施的方式。如果有不同类别的许多状态训练序列。所以这是我会做的方式:我通过[TRANS,EMIS] = hmmestimate(seq,states)这代表了HMM 用Matlab实现HMM

  • 我保存这些矩阵与类属
  • 我做的信息计算每个序列的过渡和发射矩阵

    1. 这对于每个训练序列
    2. 如果我得到一个观测序列进行分类,我使用hmmviterbi(seq,TRANS,EMIS)函数来计算每个我已经保存的HMM的“可能性”。
    3. 最“likelyness”一个(最高百分比)是我所盼望的HMM - >我知道类

    这是我可以实现HMM的方式吗?

    我希望你能给我一些提示

    Btw。我知道我的英语不太好,但我希望这是可以理解的。

  • 回答

    0

    虽然我不知道matlab,并不能帮助你在那个领域,你的步骤听起来是正确的。以下是我将执行它们的步骤:

    • 您首先使用您的训练集创建一个模型来表示该组。
    • 针对您希望系统识别的每种情况重复此操作(例如,每种情况的模型)
    • 当您有输入集时,将其与每个模型进行比较并保留概率/置信度分数。
    • 比较这些分数,并选择最强的结果(只要它是在您设置的阈值)

    编辑:我发现从以前的问题,一个很好的例子here。要回答你在评论中提供的链接是否正确,我不得不说是,但之前没有使用过HMM,所以无法确认这些功能的使用。我建议你看看上面问题链接的答案,并通过它,因为这是对我上面简单步骤的更深入的解释。

    +0

    感谢您的回答...你可能看看这个描述:http://www.mathworks.de/de/help/stats/hmmtrain.html 它看起来像正确的训练方法,但我不知道我应该怎么估计martrix? (我想实现复杂的手势识别) – xandi1987