Questions tagged «lstm»

长短期内存(LSTM)是一种神经网络体系结构,其中包含可记忆任意时间长度值的循环NN块。

2
为什么带有LSTM单位的RNN也会遭受“爆炸梯度”的困扰?
我对RNN(尤其是LSTM单元)的工作方式有基本的了解。我对LSTM单元的体系结构有一个构想,即一个单元和几个门,它们调节值的流动。 但是,显然,我还没有完全理解LSTM如何解决“消失梯度和爆炸梯度”问题,该问题是在训练中使用常规RNN通过时间进行反向传播而发生的。我没有机会阅读论文以完全理解数学。 该答案简要说明了具有LSTM单位的RNN如何解决“消失梯度”问题。从数学上讲,原因似乎是不存在的导数不存在,即不趋于零。因此,作者指出:“至少存在一条不消失梯度的路径”。恕我直言,这种解释有点含糊。 同时,我正在阅读论文《使用神经网络进行序列学习》(作者:Ilya Sutskever,Oriol Vinyals,Quoc V. Le),在该论文的“ 3.4培训细节”部分中有说明 尽管LSTM往往不会遭受梯度消失的困扰,但它们可能会出现爆炸梯度。 我一直认为,带有LSTM单元的RNN可以解决“消失”和“爆炸梯度”的问题,但是,显然,带有LSTM单元的RNN也会遭受“爆炸梯度”的困扰。 凭直觉,为什么?从数学上讲,原因是什么?

2
使用LSTM处理语言建模任务中的未知单词
对于自然语言处理(NLP)任务,通常使用word2vec向量作为单词的嵌入。但是,可能有很多未知单词未被word2vec向量捕获,这仅仅是因为这些单词在训练数据中的出现频率不够高(许多实现在将单词添加到词汇表之前使用最少的计数)。尤其是来自Twitter的文本,尤其是单词拼写错误的情况。 在对NLP任务进行建模(例如使用长短期(LSTM)网络进行情感预测)时,如何处理这些未知单词?我看到两个选择: 在word2vec词典中添加“未知单词”标记。 删除这些未知单词,以使LSTM甚至不知道单词在句子中。 处理这些单词的首选方式是什么?

3
递归神经网络(LSTM,GRU)的结构
我试图了解RNN的体系结构。我发现本教程非常有帮助:http : //colah.github.io/posts/2015-08-Understanding-LSTMs/ 特别是这张图片: 这如何适应前馈网络?该图像只是每一层中的另一个节点吗?

1
了解LSTM拓扑
和其他许多人一样,我发现这里和这里的资源对于理解LSTM单元非常有用。我确信我了解值是如何流动和更新的,并且我也有足够的信心添加上述“窥孔连接”等。 在我的示例中,每个时间步长都有一个输入向量length i和一个输出向量length in o,其中o < i。 这两页都没有真正涵盖的是如何安排和培训这些内容。 我有两个问题: 在我的训练数据中,我有很多输入/输出向量对,它们对应许多很多时间单位。假设我用所有数据训练LSTM。然后可以通过它运行任意长度的输入集吗?我的意思是,如果我有整个2015年和2016年的培训数据,那么我可以通过网络运行2017年的数据吗?还是从2017年到2020年? 根据我所读的内容,感觉每个时间单位都有一个LSTM单元,因此,如果我有很多时间单位,那么我会有许多链接的LSTM单元。由于链的长度取决于我要通过网络运行的数据的长度,并且大概是任意的,所以我看不到如何训练它,除非我只训练一个LSTM单元,然后将其复制为一个数字次。因此,似乎我将训练一个LSTM单元,然后n将它们链接在一起以获得给定长度的输入矢量列表n?即使单个LSTM单元包含许多元素和功能,也感觉不足以在这么小的事物中捕获这么多的信息吗? 谢谢。我还有其他(相对较快)可以消耗的资源可以帮助我理解实施细节吗?上面的2个链接给出了正在发生的事情的高级概述,但未能捕获这些更详细的信息。

1
使用ARIMA和LSTM进行时间序列预测
我要处理的问题是预测时间序列值。我正在一次查看一个时间序列,例如,基于15%的输入数据,我想预测其未来值。到目前为止,我遇到了两种模型: LSTM(长期短期记忆;一类递归神经网络) 有马 我都尝试过并阅读了一些文章。现在,我试图更好地了解如何比较两者。到目前为止,我发现了什么: 如果我们要处理大量数据并且有足够的训练数据,那么LSTM会更好地工作,而ARIMA对于较小的数据集则更好(这是正确的吗?) ARIMA需要一系列(p,q,d)必须根据数据计算的参数,而LSTM不需要设置此类参数。但是,我们需要为LSTM调整一些超参数。 除了上述特性之外,我找不到其他可以帮助我选择最佳模型的要点或事实。如果有人可以帮助我查找文章,论文或其他东西,我将非常感谢(到目前为止,还没有运气,这里和那里只有一些一般性意见,而没有基于实验的内容。) 我不得不提到,最初我是在处理流数据,但是现在我使用的是NAB数据集,其中包括50个数据集,最大大小为2万个数据点。

2
充分利用LSTM进行序列内事件预测
假设以下一维序列: A, B, C, Z, B, B, #, C, C, C, V, $, W, A, % ... A, B, C, ..这里的字母代表“普通”事件。 #, $, %, ...这里的符号代表“特殊”事件 所有事件之间的时间间隔是不均匀的(从几秒到几天),尽管过去的事件越远,影响未来事件的可能性就越小。理想情况下,我可以明确考虑这些时间延迟。 大约有10000个普通事件类型,而有大约100个特殊事件类型。特殊事件之前的普通事件数量有所不同,但不太可能超过100-300。 从根本上讲,我对在普通事件序列中寻找最终可预测特殊事件的模式感兴趣。 现在,您可以用不同的方法来实现:创建特征向量+标准分类,关联规则学习,HMM等。 在这种情况下,我对于基于LSTM的网络最适合的情况感到好奇。直截了当就是做类似Karparthy的char-rnn的事情,并根据历史预测下一个事件。然后换一个新序列 C, Z, Q, V, V, ... , V, W 您可以在模型中运行它,然后查看最有可能发生的特殊事件。但这并不太合适。 由于这是一个时间分类问题,因此似乎应该做的正确的事情是使用Alex Graves所描述的连接主义时间分类。 但是,在此刻投入过多之前,我正在寻找更容易,更快捷的方法来进行试验,以了解LSTM在这里的适用性。Tensorflow将会在某个时候看到CTC示例,但尚未出现。 所以我的(子)问题是: 鉴于上述问题,我想尝试使用LSTM值得尝试char-rnn类型的方法,是我该硬着头皮掌握CTC,还是有一个更好的起点。 您将如何明确纳入事件间计时信息。使用带有无操作事件的固定时钟显然可以,但是很难看。 假设我设法训练了LSTM,是否可以检查模型以查看其发生了哪种事件“主题”?(即类似于卷积网络中的过滤器) 任何示例代码(首选python)总是有帮助的。 编辑:只是要补充一下,序列中有一些噪音。有些事件可以安全地忽略,但是确切地说哪些事件并非总是可以预先说出来的。因此,理想情况下,模型(及其衍生的主题)对此具有鲁棒性。
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.