摘要#
在深度学习的发展过程中,卷积神经网络主要面向空间结构数据(如图像),而对于具有时间依赖关系的序列数据(如文本、语音和时间序列信号),循环神经网络(RNN)则提供了一种更自然的建模方式。RNN 的核心思想是引入“记忆机制”,使模型能够在处理当前输入时结合历史信息,从而捕捉数据中的时序依赖关系。这一机制使得神经网络不再局限于独立样本建模,而是能够处理具有上下文关联的序列数据。本章将围绕循环神经网络的基本结构与演化变体展开,系统讲解从基础 RNN 到 LSTM、GRU 以及更复杂序列模型的发展路径。
本章首先从 RNN 的基本结构出发,介绍其设计动机与前向计算原理,并通过计算示例帮助读者理解隐藏状态如何在时间维度上传递信息。同时,本章将介绍多层 RNN 的结构扩展方式,并结合 BPTT(时间反向传播)算法分析 RNN 的训练机制及其梯度传播特点。随后,将进一步探讨 RNN 在不同类型序列数据中的应用,包括时序图像与文本数据,并通过分类任务示例说明其实际建模能力。在基础 RNN 之后,本章将重点介绍 LSTM 网络,分析其通过门控机制解决长期依赖问题的设计思想,以及其在梯度稳定性方面的优势。
在更进一步的结构优化中,本章将介绍 GRU 网络,并对比其与 LSTM 在结构复杂度与表达能力之间的权衡关系,使读者理解不同门控机制的设计取舍。此外,还将介绍双向循环神经网络(BiRNN),说明其如何同时利用前向与后向信息提升序列建模效果。在应用层面,本章将通过 CharRNN 文本生成任务(如古诗生成)展示循环神经网络在生成式任务中的实际应用方式,使读者能够从结构理解逐步过渡到任务实现。通过本章学习,读者将全面掌握序列建模的基本方法与核心网络结构,并为后续更复杂的时序融合模型与Transformer架构打下重要基础。
本章内容
7.1 RNN网络
在本节内容中,我们首先介绍了RNN模型出现的动机及原理,并通过一个实际的计算示例来介绍了RNN的内部细节;然后介绍了多层RNN的构建原理并通过一个简单的示例介绍了如何在PyTorch框架中使用RNN模型;最后详细介绍了RNN中用于求解目标函 …
7.2 时序数据
时序数据建模入门,讲清什么是时序数据、RNN 适合处理哪些序列任务,以及典型应用场景。
7.3 LSTM网络
在前面两节内容中,我们详细介绍了RNN模型的原理以及在PyTorch框架中的使用方法。虽然理论上RNN模型在处理序列数据方面具有着很好的效果,但在处理长序列数据时RNN模型可能会出现梯度消失或爆炸的情况,进而导致模型无法学习到长期依赖的关系 …
7.4 GRU网络
在上一节内容中,我们详细介绍了LSTM模型的相关原理,其动机主要是为了解决RNN模型中的长期依赖以及梯度消失或爆炸的问题。在接下来的这篇文章中我们将继续介绍另外一个同样是为了解决上述两个问题的基于门控循环单元(Gated Recurrent …
7.5 BiRNN网络
在本节内容中,我们首先介绍了RNN模型的缺点、BiRNN模型所提出的动机以及其所适用的场景;然后介绍了BiRNN模型的相关原理;最后详细介绍了在PyTorch中BiLSTM的使用方法并详细分析了其输出结果的维度信息。在写一节内容中,我们将会 …
7.6 CharRNN网络
经过前面几节内容的介绍,我们已经清楚了RNN模型及其变体的相关原理,并且在7.2节内容中我们也通过两个实例详细介绍了RNN中多对一任务的构建流程。在本节内容中,我们将会以古诗词生成为例来介绍了RNN中的多对多任务类型,即图7-3中的第3种情 …