问题标签 [lstm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
442 浏览

neural-network - PyBrain 中意外的 LSTM 层输出

我正在使用 LSTM 层在多个存储单元之间进行多路复用。也就是说,有几个输入选项,我只想将其中一个输入隐藏层。我以这种方式安排了 LSTM 的输入,因此它会根据我传递给它的 input_gate、forget_gate 和 output_gate 以及 cell_input 来选择一个适当的单元格。

但是,LSTM 层似乎转换了记忆单元的值,而我希望它按原样将它们传递给输出。

例如,我传递了以下输入,为了方便起见,我将其打印在与 input_gate、forget_gate、cell_input 和 output_gate 相对应的组中:

我希望 LSTM 层仅将ci[0]ci[1]和传递ci[5]og组指示的输出。但是,我在输出缓冲区中看到的是不同的:

虽然对我来说不是绝对没有意义(第 0 和第 1 项略大于其余项),但此输出不是[.5 .5 0. 0. 0.]我所期望的。

根据我对 LSTM 的了解,似乎没有任何从记忆单元到实际输出的转换函数。

0 投票
2 回答
1746 浏览

architecture - What is the correct architecture for a time series predicting LSTM neural network?

Concerning the structure of a LSTM network

If I wanted to create LSTM network for solving time series predictions, how should I structure the hiddens layers of the neural network?

  • A LSTM memory block would represent a hidden layer and all the nodes in the layer would be represented by cells?
  • Each hidden layer should consist of numerous LSTM memory blocks, and a collection of such blocks will form a layer?



Graphical representation:


Either in this manner:

proposed solution 1

Or like this ?

proposed solution 2

0 投票
0 回答
528 浏览

machine-learning - 无法为 Reber Grammar 设置 Pybrain LSTM 模块

我正在尝试使用 Pybrain 来预测属于 Reber 语法的字符序列。

具体来说,我正在做的是使用 Reber 语法图生成字符串(您可以在此处查看:http ://www.felixgers.de/papers/phd.pdf第 22 页)。此类字符串的一个示例可能是 BPVVE。我希望我的神经网络能够学习语法的基本规则。对于这些字符串中的每一个,我创建一个通常如下所示的序列:

如您所见,该值只是表示当前字母的 7 维向量,目标是 Reber 单词中的下一个字母。

这是我要运行的代码:

我没能训练这个网。误差波动很大,没有真正的收敛。我真的很感激对此的一些建议。

这是我用来生成 Reber 字符串的代码:

谢谢,

最好的

0 投票
1 回答
1368 浏览

artificial-intelligence - 神经网络时间序列归一化

我在时间序列预测网络中使用 LSTM 作为隐藏层函数。输入标准化是否必要?如果是,那么 data = data / sum(data) 是正确的标准化吗?输出是否也应该使用输入进行归一化?

0 投票
1 回答
433 浏览

artificial-intelligence - PyBrain RNN 预测失败

我正在使用循环神经网络进行时间序列预测,并以 LSTM 作为激活函数。输入是序列数据集,输出是输入序列之后的下一个数据。我有数百个输入,一个大小相等的隐藏层,输出层有一个输出。不管我训练多少,结果总是比实际值高得多(也有其他功能),分别用下面的绿色和蓝色表示。解决办法是什么?

0 投票
3 回答
10594 浏览

machine-learning - 什么是循环神经网络,什么是长短期记忆 (LSTM) 网络,它总是更好吗?

首先,让我为在该标题中塞入三个问题而道歉。我不确定有什么更好的方法。

我会马上解决的。我想我非常了解前馈神经网络。

但是 LSTM 真的让我无法理解,我觉得这可能是因为我对循环神经网络没有很好的掌握。我在 Coursera 上完成了 Hinton 和 Andrew Ng 的课程。很多对我来说仍然没有意义。

据我了解,循环神经网络与前馈神经网络的不同之处在于,过去的值会影响下一个预测。循环神经网络通常用于序列。

我看到的循环神经网络的例子是二进制加法。

循环神经网络首先取最右边的 0 和 1,输出 1。然后取 1,1,输出 0,并携带 1。取下一个 0,0 并输出 1,因为它携带 1从上次计算。它在哪里存储这个1?在前馈网络中,结果基本上是:

递归神经网络是如何计算的?我可能错了,但据我了解,循环神经网络几乎是具有 T 个隐藏层的前馈神经网络,T 是时间步数。每个隐藏层在时间步 T 获取 X 输入,然后将其输出添加到下一个相应隐藏层的输入。

但是,即使我理解正确,我也看不出这样做比简单地使用过去的值作为正常前馈网络(滑动窗口或其他任何名称)的输入的优势。

例如,使用循环神经网络进行二进制加法而不是训练具有两个输出神经元的前馈网络有什么优势。一个用于二进制结果,另一个用于进位?然后获取进位输出并将其插入前馈网络。

但是,我不确定这与简单地将过去的值作为前馈模型中的输入有何不同。

在我看来,时间步长越多,由于梯度消失,递归神经网络只是前馈网络的劣势。这就引出了我的第二个问题,据我了解,LSTM 是解决梯度消失问题的一种方法。但我并没有真正了解它们是如何工作的。此外,它们只是比循环神经网络更好,还是使用 LSTM 有牺牲?

0 投票
1 回答
2625 浏览

sequence - pybrain LSTM 序列预测序列数据

我使用 pybrain 编写了一个简单的代码来预测一个简单的顺序数据。例如,一个 0,1,2,3,4 的序列应该从网络中获得 5 的输出。数据集指定剩余的序列。下面是我的代码实现

我屏幕上的输出每次都显示 [0.99999999 0.99999999 0.9999999 0.99999999]。我错过了什么?培训还不够吗?因为 trainer.train()

显示输出 86.625..

0 投票
1 回答
1034 浏览

python - 如何在pybrain中实现双向LSTM网络

我正在尝试在 pybrain 中实现双向 LSTM 网络。任何人都有任何示例代码作为示例?

0 投票
1 回答
520 浏览

python - pybrain LSTM 层的激活为零

我已经构建了一个 LSTM 网络来对序列数据进行回归。当我尝试激活隐藏层(即 LSTM 层)时,它返回零。该网络只有一个隐藏层、一个输入层和一个输出层。

我尝试使用以下代码段获取隐藏层值。

知道为什么吗?下面是更完整的代码片段

0 投票
0 回答
127 浏览

python - Pybrain双向网络类只支持前馈网络

根据这个

https://github.com/pybrain/pybrain/blob/1dd5086a51c3c98497ef85b31178588a89d8951e/pybrain/structure/networks/bidirectional.py

该类仅支持前馈网络?如何实现双向 LSTM 循环网络?