第7章 循环神经网络和LSTM

回顾一下我们已知的传统神经网络模型,可以发现训练和预测阶段都以静态的方式运行。也就说,对于每一个输入,给出一个输出,而不考虑其序列间的关系。不同于我们之间的预测模型,循环神经网络不仅依赖于当前的输入,而且依赖于先前的输入。

本章包括如下内容:

  • 理解循环神经网络运行原理,掌握构建循环神经网络的操作类型。
  • 解释更高级递归神经网络模型(如LSTM)的思想。
  • 应用TensorFlow中的LSTM模型预测能耗周期。
  • 学习巴赫谱曲。

知识不能凭空出现。很多新的点子来自于旧知识的重新组合,这很值得机器学习模仿。但是,传统的神经网络模型不会将之前的知识传递到当前的状态。

我们可以通过循环神经网络(recurrent neural networks,RNN)来实现这个想法。循环神经网络是一种序列化的神经网络,它可以将已有的信息重复利用。RNN中一个主要假设就是当前的信息依赖于先前的信息。在图7-1中,我们可以看到一个RNN基本元素,元胞(Cell)的示意图。

图7-1 元胞示意图

一个元胞包含3个主要元素,输入(xt)、状态和输出(ht)。但是正如我们之前所说,元胞并非一个独立的状态,它保留状态信息,传递给下个元胞。在图7-2中,展示了一个展开的RNN元胞。本图解释了信息怎样从初始状态,经过一系列中间状态,转移到最终状态hn

图7-2 展开的元胞

在定义了元胞间的流动方式之后,我们要做的就是研究每一个RNN的元胞本身的运行方式。最基本的标准RNN中,只有一个简单的神经网络层。该层的输入除了原本的输入还有前一个样本的状态。将两者拼接后,通过tanh操作,输出新的状态 ...

Get TensorFlow构建机器学习项目 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.