第7章 循环神经网络
了解了当前深度学习的发展状况,就已经接近了机器学习的前沿领域。本章中,将通过目前被称为循环神经网络(Recurrent Neural Networks,RNN)的一系列算法,为机器学习模型加入一个非常特别的维度(时间,即输入序列)。
7.1 按顺序解决问题——RNN
在前面的章节中,介绍了一系列的模型,从简单到复杂,这些模型都有一些共同的属性。
- 接受唯一且独立的输入。
- 输出数据维度唯一并固定。
- 输出仅依赖于当前输入的特性,与过去或之前的输入无关。
现实中,大脑处理信息片段的过程具有内在的结构和顺序,人类感知到的现象结构和顺序也会影响信息的处理过程。类似的例子包括语言理解(单词在句子中的顺序)、视频序列(视频中帧的顺序),以及语言翻译。这些都促成了新模型的诞生。最重要的一部分模型都利用到了RNN。
7.1.1 RNN的定义
RNN是一种输入和输出都有相应序列的人工神经网络(Artificial Neural Network,ANN)。正式的定义可以描述如下。
“循环神经网络表示固定维度的高维向量序列(称为隐藏状态),通过复杂的非线性函数与新的观察值结合。”
RNN具有很强的表达性,能够进行任意存储大小的计算,因此,通过配置,RNN在复杂的序列处理任务上可以达到非常优秀的性能。
序列类型
无论在输入还是输出范畴内,RNN都要基于序列模型工作。因此,可以采用所有可能的序列组合来解决不同种类的问题。如图7.1所示,描述了目前使用的主要序列结构,后续递归循环也会参考这些结构。
图7.1 序列模型的种类
7.1.2 RNN的发展
RNN的起源与其他现代神经网络惊人地相似,可以追溯到20世纪80年代的Hopfield网络,但其在20世纪70年代就已有所发展。
循环网络的迭代结构如图7.2所示。 ...
Get 机器学习开发者指南 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.