隐马尔可夫模型与递归神经网络


13

哪些顺序输入问题最适合每个问题?输入维数确定哪个更匹配吗?需要“更长的内存”的问题是否更适合LSTM RNN,而HMM更容易解决周期性输入模式(股市,天气)的问题?

似乎有很多重叠之处;我很好奇两者之间存在哪些细微差异。


+1但问题可能过于宽广......而且,据我所知,他们有很大的不同..
杜海涛

我添加了更多说明
纠正

附带说明一下,您可以将CRF放在RNN的顶部,例如github.com/Franck-Dernoncourt/NeuroNER
Franck Dernoncourt,2015年

Answers:


8

摘要

隐马尔可夫模型(HMM)比递归神经网络(RNN)简单得多,并且依赖于并非总是正确的强假设。如果这些假设正确的,那么您可能会从HMM看到更好的性能,因为它不太容易上手。

如果数据集非常大,则RNN的性能可能会更好,因为额外的复杂性可以更好地利用数据中的信息。即使在您的情况下HMM假设是正确的,也可能是这样。

最后,不要只将这两个模型用于序列任务,有时更简单的回归(例如ARIMA)可能会胜出,有时其他复杂的方法(例如卷积神经网络)可能是最好的。(是的,CNN可以像RNN一样应用于某些序列数据。)

与往常一样,了解哪种模型最好的最好方法是制作模型并在保留的测试集中测量性能。

HMM的强烈假设

状态转换仅取决于当前状态,而不取决于过去的任何内容。

我不熟悉很多领域的这种假设。例如,假设您试图在一天中的每一分钟中根据移动数据预测一个人是醒着还是睡着了。过渡的人从机会睡着醒来增加更长的人一直在熟睡状态。RNN可以从理论上了解这种关系,并利用它来获得更高的预测准确性。

您可以尝试解决此问题,例如通过将以前的状态作为特征或定义复合状态来解决,但是增加的复杂性并不总是会增加HMM的预测准确性,并且绝对不会有助于计算时间。

您必须预先定义状态总数。

回到睡眠示例,似乎我们只关心两个状态。然而,即使我们只关心预测睡了,我们的模型可以找出额外的状态,如驾驶,淋浴等受益(如洗澡通常是正确的睡觉前)。同样,如果展示了足够的示例,则RNN在理论上可以学习这种关系。

RNN的困难

从上面看来,RNN总是很优越。不过,我应该指出,RNN可能很难使用,尤其是在您的数据集很小或序列很长的情况下。我个人在让RNN训练某些数据方面遇到了麻烦,而且我怀疑大多数已发布的RNN方法/指南都已调整为文本数据。当试图在非文本数据上使用RNN时,为了获得特定数据集的良好结果,我不得不执行比我更关心的超参数搜索。

在某些情况下,我发现顺序数据的最佳模型实际上是UNet样式(https://arxiv.org/pdf/1505.04597.pdf)卷积神经网络模型,因为它训练起来更容易,更快捷,并且能够考虑信号的全部上下文。


1

首先让我们看看HMM和RNN之间的区别。

本文中:关于隐马尔可夫模型及其在语音识别中的选定应用的教程,我们可以了解到HMM应该具有以下三个基本问题:

问题1(可能性):给定HMMλ=(A,B)和观察序列O,确定似然度P(O |λ)。
问题2(解码):给定观察序列O和HMMλ=(A,B),发现最佳隐藏状态序列Q。
问题3(学习):给定观察序列O和HMM中的状态集,了解HMM参数A和B。

我们可以从这三个角度比较HMM和RNN。

可能性

对所有隐藏序列求和 HMM中的似然性(图A.5) RNN中的语言模型
只是从softmax函数获得概率

PØ=PØ=PØ|P1个pX=Ť=1个Ť1个pXŤ|XŤ-1个X1个Ť

解码

vŤĴ=一个X一世=1个ñvŤ-1个一世一个一世ĴbØŤPÿ1个ÿØ|X1个XŤ=Ø=1个ØPÿØ|ÿ1个ÿØ-1个CØÿX

大胆的道路
HMM中的解码(图A.10)

解码器部分
在RNN中解码

学习

HMM中的学习比RNN中的学习复杂得多。在HMM中,通常使用Baum-Welch算法(期望最大化算法的特例),而在RNN中,通常使用梯度下降。

对于您的子问题:

哪些顺序输入问题最适合每个问题?

当您没有足够的数据时,请使用HMM,并且当您需要计算确切概率时,HMM也将更适合(生成任务建模数据的生成方式)。否则,您可以使用RNN。

输入维数确定哪个更匹配吗?

我不这么认为,但是由于隐藏算法的复杂度(向前向后和维特比)基本上是离散状态数的平方,因此可能需要花更多的时间来了解隐藏状态是否太大。

需要“更长的内存”的问题是否更适合LSTM RNN,而HMM更容易解决周期性输入模式(股市,天气)的问题?

在HMM中,当前状态也受先前状态和观察值(受父状态)的影响,您可以尝试使用“二阶隐马尔可夫模型”来获得“更长的存储时间”。

我认为您几乎可以使用RNN

参考资料

  1. 深度学习的自然语言处理CS224N / Ling284
  2. 隐马尔可夫模型

但是在参考文件中它说HMM确实具有隐藏状态,尽管是离散状态?
Oleg Afanasyev

@OlegAfanasyev是的。我认为我错了,但我稍后会再回答。
Lerner Zhang

这已经纠正了吗?
GENIVI-LEARNER

1
@ GENIVI-LEARNER我已重写答案,希望它对您有帮助,也希望您能向我提出一些建议,以使它变得更好。
Lerner Zhang

0

我找到了这个问题,因为我也想知道它们的异同。我认为声明隐马尔可夫模型(HMM)在最严格的意义上没有输入和输出非常重要。

HMM是所谓的生成模型,如果您有HMM,则可以直接从中生成一些观测值。这与RNN根本不同,因为即使您拥有受过训练的RNN,也需要输入。

一个重要的实际例子是语音合成。潜在的隐马尔可夫状态是电话,发出的概率事件是声学。如果您训练有一个单词模型,则可以根据需要生成尽可能多的不同实现。

但是,对于RNN,您至少需要提供一些输入种子才能获得输出。您可能会争辩说,在HMM中,您还需要提供初始分布,因此类似。但是,如果我们坚持使用语音合成示例,那不是因为初始分布是固定的(总是从单词的第一个音位开始)。

如果您一直在使用相同的输入种子,那么使用RNN可以得到经过训练的模型的确定性输出序列。使用HMM,您不必这样做,因为过渡和排放总是从概率分布中采样的。

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.