这是我的老问题
我想问一下是否有人知道隐马尔可夫模型(HMM)和粒子滤波器(PF)之间的区别(如果有任何区别),以及因此卡尔曼滤波器,或者在什么情况下我们使用哪种算法。我是一名学生,我必须做一个项目,但首先我必须了解一些事情。
因此,根据参考书目,两者都是状态空间模型,包括隐藏(或潜在或未观察到)状态。根据维基百科(Hidden_Markov_model) “在 HMM 中,隐藏变量的状态空间是离散的,而观察本身可以是离散的(通常从分类分布生成)或连续的(通常从高斯分布生成)。隐马尔可夫模型也可以推广到允许连续状态空间。这种模型的例子是那些隐变量上的马尔可夫过程是一个线性动态系统,相关变量之间具有线性关系,并且所有隐变量和观察变量都服从高斯分布。在简单的情况下,例如刚刚提到的线性动力系统,精确推理是易于处理的(在这种情况下,使用卡尔曼滤波器);然而,一般来说,在具有连续潜在变量的 HMM 中进行精确推断是不可行的,必须使用近似方法,”
但对我来说这有点令人困惑......简单来说,这是否意味着以下(也基于我所做的更多研究):
- 在 HMM 中,状态空间可以是离散的,也可以是连续的。观察本身也可以是离散的或连续的。HMM 也是线性和高斯或非高斯动力系统。
- 在 PF 中,状态空间可以是离散的或连续的。观察本身也可以是离散的或连续的。但是 PF 是一个非线性(和非高斯?)动态系统(这是它们的区别吗?)。
- 当我们有线性和高斯动态系统时,正在使用卡尔曼滤波器(在我看来也像 HMM) 。
另外我怎么知道要选择哪种算法,因为对我来说所有这些似乎都是一样的......我还发现了一篇论文(不是英文),它说 PF 虽然可以有线性数据(例如来自传感器-kinect 的原始数据识别运动),动力系统可以是非线性的。这会发生吗?它是否正确?如何?
对于手势识别,研究人员可以使用 HMM 或 PF,但他们没有解释为什么选择每种算法……有谁知道如何帮助我区分这些算法,了解它们的差异以及如何选择最佳算法?
如果我的问题太大,或者某些部分很幼稚,我很抱歉,但我没有在某个地方找到令人信服和科学的答案。非常感谢您抽出宝贵时间!
这是我的新问题(根据@conjugateprior 的帮助)
因此,通过进一步阅读,我想更新我之前评论的一些部分,并确保我对正在发生的事情有更多的了解。
- 再次简单地说,伞是动态贝叶斯网络,其中包含HMM和状态空间的模型(子类)(http://mlg.eng.cam.ac.uk/zoubin/papers/ijprai.pdf)。
- 此外,两个模型之间的初始差异在于,在 HMM 中,隐藏状态变量是离散的,而观测值可以是离散的或连续的。在 PF 中,隐藏状态变量是连续的(实值隐藏状态向量),并且观测值具有高斯分布。
- 同样根据@conjugateprior,每个模型都有以下 3 个任务:过滤、平滑和预测。在滤波中,模型 HMM 用于离散隐藏状态变量的方法 Forward 算法,状态空间用于连续变量和线性动态系统的 Kalman 滤波器等。
- 然而,HMM 也可以推广到允许连续状态空间。
- 通过 HMM 的这些扩展,这两个模型在概念上似乎是相同的(正如在Hidden Markov Model vs Markov Transition Model vs State-Space Model ...?中提到的那样)。
我认为我使用了更准确的术语,但对我来说一切都很模糊。谁能向我解释HMM 和状态空间模型有什么区别?
因为我真的找不到适合我需要的答案..
再次感谢您!