第6章 递归神经网络和语言模型
我们在前几章所讨论的神经网络架构接收固定大小的输入,并提供固定的大小输出,甚至图像识别中所用到的卷积网络(见第5章)也被展平为固定的输出向量。本章将通过引入递归神经网络(Recurrent Neural Network,RNN)来摆脱这种限制。RNN通过针对这些序列定义递归关系(因此而得名)来帮助处理可变长度序列。
RNN 具有处理任意输入序列的能力,因此它适用于各种任务,例如语言建模(见 6.2节)或语音识别(见 6.3 节)。实际上,从理论上讲,RNN 已被证明是图灵机,因此它们可被应用于任何问题[1]。这意味着,从理论上讲,RNN可以模拟任何常规计算机无法计算的程序。例如,Google的DeepMind曾提出一个名为“神经图灵机”的模型,该模型可以学习如何执行简单算法,例如排序[2]。
本章涵盖以下主题:如何基于游戏问题来构建和训练简单的 RNN、RNN 训练中梯度消失和梯度爆炸问题及其解决办法、用于长短期记忆学习的LSTM模型、语言建模和如何将RNN应用于语言建模问题,以及将深度学习应用于语音识别的简短介绍。
6.1 递归神经网络
RNN 因其针对序列循环地应用相同函数而得名。RNN可被编写成该函数所定义的递归关系:
在这里,(步长的状态)是由函数 ...
Get Python深度学习从原理到应用 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.