隐马尔可夫模型和神经网络有什么区别?

机器算法验证 数据挖掘 算法 神经网络 马尔科夫过程
2022-01-25 12:33:36

我只是在统计数据中弄湿了我的脚,所以如果这个问题没有意义,我很抱歉。我使用马尔可夫模型来预测隐藏状态(不公平的赌场、掷骰子等),并使用神经网络来研究用户在搜索引擎上的点击。两者都有隐藏状态,我们试图通过观察来找出这些状态。

据我了解,它们都预测隐藏状态,所以我想知道什么时候会在神经网络上使用马尔可夫模型?它们只是解决类似问题的不同方法吗?

(我对学习很感兴趣,但我也有另一个动机,我有一个问题,我试图使用隐藏的马尔可夫模型来解决,但这让我发疯了,所以我很想看看我是否可以改用其他东西。)

3个回答

什么是隐藏的,什么是观察到的

隐藏在隐马尔可夫模型中的东西与隐藏在离散混合模型中的东西相同,因此为了清楚起见,忘记隐藏状态的动力学并坚持以有限混合模型为例。此模型中的“状态”是导致每次观察的组件的身份。在此类模型中,从未观察到此类原因,因此“隐藏原因”在统计上被转换为声称观察到的数据具有边际依赖关系,这些依赖关系在源组件已知时被移除。并且估计源组件是使这种统计关系成立的任何因素。

隐藏在具有 sigmoid 中间单元的前馈多层神经网络中的是这些单元的状态,而不是作为推理目标的输出。当网络的输出是一个分类,即可能的输出类别的概率分布时,这些隐藏单元值定义了一个空间,在该空间内类别是可分离的。学习这种模型的技巧是创建一个隐藏空间(通过调整输入单元的映射),在该隐藏空间中问题是线性的。因此,从系统整体来看,非线性决策边界是可能的。

生成式与判别式

混合模型(和 HMM)是数据生成过程的模型,有时称为似然性或“前向模型”。当结合关于每个状态的先验概率的一些假设时,您可以使用贝叶斯定理(一种生成方法)推断隐藏状态的可能值的分布。请注意,虽然称为“先验”,但先验和可能性中的参数通常都是从数据中学习的。

与混合模型(和 HMM)相比,神经网络直接学习输出类别的后验分布(一种判别方法)。这是可能的,因为在估计期间观察到了输出值。并且由于它们是被观察到的,因此没有必要从先验和特定模型(例如混合)构建后验分布。后验直接从数据中学习,效率更高,模型依赖性更小。

连连看

为了使事情更加混乱,这些方法可以混合在一起,例如,当有时实际观察到混合模型(或 HMM)状态时。如果这是真的,并且在其他一些与此无关的情况下,可以在其他生成模型中进行有区别的训练。类似地,可以用更灵活的前向模型(例如神经网络)替换 HMM 的混合模型映射。

问题

因此,两个模型都预测隐藏状态并不完全正确。HMM用于预测隐藏状态,尽管只是前向模型所期望的那种。神经网络可用于预测尚未观察到的状态,例如预测器可用的未来状态。这种状态原则上是不隐藏的,只是还没有被观察到。

你什么时候会使用一个而不是另一个?嗯,根据我的经验,神经网络制作了相当尴尬的时间序列模型。他们还假设您已经观察到输出。HMM 没有,但您实际上无法控制隐藏状态的实际含义。然而,它们是适当的时间序列模型。

隐马尔可夫模型可用于生成一种语言,即从一系列字符串中列出元素。例如,如果您有一个对一组序列进行建模的 HMM,您将能够通过列出属于我们正在建模的序列组的序列来生成该家族的成员。

神经网络,从高维空间获取输入并将其简单地映射到低维空间(神经网络映射此输入的方式基于训练、其拓扑结构和其他因素)。例如,您可能会获取一个数字的 64 位图像,并将其映射到描述该数字是 1 还是 0 的真/假值。

虽然这两种方法都能够(或至少可以尝试)区分一个项目是否是一个类的成员,但神经网络不能生成如上所述的语言。

有可用的隐马尔可夫模型的替代品,例如,如果您认为问题出在 HMM 缺乏能力为您的问题建模 - 也就是说,如果您需要一种能够区分更复杂假设和/或描述更复杂数据行为的算法。

根据我的发现,这个问题的最佳答案是:深度学习是变相的马尔可夫链吗这正是我所理解的,但由于互联网上其他地方已经有讨论,所以我将链接放在这里。

马尔可夫链模型:

p(x1....xn)=p(x1)p(x2|x1)p(x3|x2)...

RNN 尝试建模:

p(x1....xn)=p(x1)p(x2|x1)p(x3|x2,x1)p(x4|x3,x2,x1)...

我们可以使用字符序列而不是单个字符作为输入。这样,我们可以更好地捕获状态(取决于上下文)。