tensorflow - Tensorflow RNN 是否完全实现了 Elman 网络?

标签 tensorflow neural-network recurrent-neural-network

问:Tensorflow RNN 是否实现了输出 Elman 网络的隐藏状态?

enter image description here enter image description here

cells  = tf.contrib.rnn.BasicRNNCell(4) 
outputs, state = tf.nn.dynamic_rnn(cell=cells, etc...)


我对 TF 的 RNN 很陌生,对输出和状态的含义很好奇。 我正在关注斯坦福的 tensorflow 教程,但似乎没有详细的解释,所以我在这里问。 经过测试,我认为 state 是序列计算后的隐藏状态,而 outputs 是每个时间步后的隐藏状态数组。

所以我想说清楚。 outputs 和 state 只是隐藏状态向量,所以要完全实现 Elman 网络,我必须在图片中制作 V 矩阵并再次进行矩阵乘法。我对么?

最佳答案

我相信你问的是中间状态和输出的输出是什么。

据我了解,状态将是卷积/序列计算后的中间输出并且是隐藏的,因此您的理解是正确的。

输出可能会因您决定如何实现网络模型而有所不同,但一般来说,它是一个数组,其中应用了任何操作(卷积、序列计算等),然后应用了激活和下采样/池化,专注于该层的可识别特征。

来自 Colah 的博客 ( http://colah.github.io/posts/2015-08-Understanding-LSTMs/ ):

最后,我们需要决定要输出什么。此输出将基于我们的细胞状态,但将是过滤后的版本。首先,我们运行一个 sigmoid 层,它决定我们要输出细胞状态的哪些部分。然后,我们将单元状态通过 tanhtanh(将值推到 −1−1 和 11 之间)并将其乘以 sigmoid 门的输出,这样我们就只输出我们决定输出的部分。

对于语言模型示例,由于它刚刚看到一个主语,它可能想要输出与动词相关的信息,以防接下来会发生这种情况。例如,它可能会输出主语是单数还是复数,以便我们知道如果接下来是动词应该变位的形式。

希望这对您有所帮助。 谢谢

关于tensorflow - Tensorflow RNN 是否完全实现了 Elman 网络?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43839701/

相关文章:

python - Tensorflow 中 Theano 的 Theano.tensor.ivector 的等价性

python - 我们可以用 TensorFlow 严格复现 Alexnet 网络架构吗?

machine-learning - 该神经网络有多少个隐藏层和总层数?

neural-network - 如何在 tensorflow 中实现多类铰链损失

python-3.x - TF |训练完成后如何从 CNN 进行预测

python - tensorflow 的 tables_initializer 有什么作用?

python - 如何在 Keras 的函数式 API 中构建以嵌套模型的一层结尾的子模型

machine-learning - 你如何实现可变长度的递归神经网络?

tensorflow - 如何将最后一个输出 y(t-1) 作为输入以在 tensorflow RNN 中生成 y(t)?

python - 神经网络错误率没有进步