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


40

我只是想弄清楚统计数字,所以对不起这个问题,我感到抱歉。我已经使用马尔可夫模型来预测隐藏状态(不正当赌场,掷骰子等)和神经网络来研究用户在搜索引擎上的点击。两者都有隐藏状态,我们试图使用观察来弄清楚。

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

(我对学习感兴趣,但是我也有另一个动机,我有一个问题,我正在尝试使用隐藏的马尔可夫模型来解决,但是这使我大吃一惊,所以我很想知道是否可以改用其他东西。)


2
您可能需要在这里查看: stats.stackexchange.com/questions/4498/…–
Nucular,

您是否愿意选择一个答案,或者进一步澄清您要寻找的内容?
2014年

Answers:


27

隐藏了什么,观察到了什么

隐藏在隐马尔可夫模型中的事物与隐藏在离散混合模型中的事物相同,因此为清楚起见,请忽略隐藏状态的动力学,并以有限的混合模型为例。该模型中的“状态”是导致每次观察的组件的标识。在此类模型中,从来没有观察到这种原因,因此将“隐藏原因”从统计学上转换为这样一种说法,即观察到的数据具有边际依赖性,当源组件已知时,这些边际依赖性将被删除。估计源成分是使该统计关系成立的任何因素。

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

生成与区分

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

与混合模型(和HMM)相反,神经网络直接学习输出类别上的后验分布(判别方法)。这是可能的,因为在估算期间观察到了输出值。并且由于已经观察到它们,因此不必根据先验模型和特定模型来构造诸如混合之类的可能性的后验分布。后验是直接从数据中学习的,其效率更高,模型依赖性更小。

连连看

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

问题

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

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


2
+1这非常好。通过:Similarly it is possible to replace the mixture model mapping of an HMM with a more flexible forward model, e.g., a neural network.,您的意思是用前馈NN代替排放概率p(Observed | Hidden)吗?我在几个地方遇到过这个问题,但是没有一个给出解释。他们只是提到他们已经实施了。我认为他们取代了学习排放的MLE步骤,但不知道如何。您知道任何代码或说明性示例吗?任何指针欢迎,谢谢。
2014年

这种方式似乎很少使用(更多的ML人员可以在这里纠正我)。Tha说,在知道状态向量(或至少在EM算法中至少知道其期望值)的情况下,估计将状态向量映射到输出条件的 NN参数与训练观察到的输入和输出数据是相同的任务,所以我猜在那里关于这部分没有什么特别的要说的。
2014年

答案是好的,除了:神经网络可以是区分性的(前馈等)或生成性的(受限玻尔兹曼机器等)。此外,像LSTM和储层计算模型这样的递归神经网络可以对时间序列和HMM进行建模-有时甚至比HMM更好,特别是在时间序列具有强大的非线性动力学和长期相关性的情况下。
GuSuku 2014年

10

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

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

尽管这两种方法都能够(或至少可以尝试)区分某项是否为类的成员,但神经网络无法生成如上所述的语言。

隐藏的马尔可夫模型有多种选择,例如,如果您认为问题出在HMM缺乏力量的原因之内,则可以使用更通用的贝叶斯网络,不同的拓扑或随机上下文无关文法(SCFG)。为您的问题建模-也就是说,如果您需要一种能够区分更复杂的假设和/或描述更复杂的数据行为的算法。


6
+1对于第二段。我想指出的是,任何清楚理解此答案所有要素的人都可能不会提出原始问题。向某人提到正式语法可能无济于事,该人的帖子开头是“我只是在统计数据中弄湿了我的脚...”。这里的第二段捕获了OP所要求的本质。代替第一段,您可能会说:HMM对隐藏状态的条件依赖性进行建模,其中每个状态在观察值上都有概率分布。
菲利普·乌劳德

7
这个答案是完全错误的。此处的神经网络假定为前馈。这只是神经网络的一类。递归模型不能简单地将单个输入映射到低维表示,它们可以生成语言。参见例如arxiv.org/abs/1308.0850
rd11 '16

生成序列(如链接的论文中所述)与生成语言不同。我想您可以应用它们来区分集合中的元素,但是,如果您愿意,可以设想使用递归模型,该模型将单个大输入跨越单个输入并递归并返回一个大输出。不知道递归神经网络是否可以在没有任何输入的情况下为您提供输出。
安德鲁(Andrew)

嗯 您能否举一个您认为HMM可以生成但您认为无法用RNN生成的示例?
rd11

想到的示例如下:给定HMM,您可以获得一系列元素,这些元素属于HMM表示的语言。对于RNN,您需要在其之上添加一些内容(例如,尝试不同的输入并将输入标记为类的成员或其他)-尽管对于RNN,您可能正在查看多个输入(一个接一个)表示一个“项目”。HMM更自然地适合于生成语言的目的。
安德鲁(Andrew)

3

从我发现的结果来看,对这个问题的最佳答案是:正在变相深入学习马尔可夫链。这正是我的理解,但是由于Internet上已经有其他讨论,因此将链接放在此处。

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

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.