主题
第 6 章 循环神经网络
第二部分 · 基础模型课件 64 页讲义约 30 分钟Recurrent Neural Networks
学习目标
- 理解前馈网络在处理序列数据时的局限,以及给网络增加记忆能力的几种方法;
- 掌握简单循环网络的状态更新公式,了解其通用近似性与图灵完备性;
- 掌握循环网络在机器学习中的三种应用模式;
- 能推导随时间反向传播(BPTT),理解梯度消失 / 爆炸与长程依赖问题;
- 掌握 LSTM 与 GRU 的门控机制;
- 了解堆叠 / 双向循环网络、递归神经网络与图网络,以及循环网络的典型应用。
课件幻灯片

1 / 64
提示:点击幻灯片左右两侧或使用 ← → 键翻页,手机上左右滑动;按 F 全屏。
讲义
6.1 给网络增加记忆能力
前馈网络中,连接只存在于层与层之间,信息单向传递;输入和输出的维数固定,无法处理变长的序列数据;并且假设每次输入都相互独立,输出只依赖于当前输入。幻灯片 3 幻灯片 4 然而很多任务(例如有限状态自动机、图灵机所刻画的计算过程)需要记忆能力:当前输出不仅依赖当前输入,还依赖过去的状态。幻灯片 5–幻灯片 7
为网络增加短期记忆的几种方法:
- 延时神经网络(TDNN):建立额外的延时单元存储网络的历史信息(输入、输出、隐状态等)。第
层的神经元依赖于前一层最近 个时刻的输出: 。幻灯片 8 - 有外部输入的非线性自回归模型(NARX):
。幻灯片 10 - 循环神经网络(RNN):使用带自反馈的神经元,理论上能处理任意长度的序列。幻灯片 11
6.2 简单循环网络
循环神经网络通过隐状态
简单循环网络(Simple Recurrent Network, SRN,又称 Elman 网络)只有一个隐藏层,状态更新为 幻灯片 13
其中
flowchart LR
x1["x₁"] --> h1["h₁"]
x2["x₂"] --> h2["h₂"]
x3["x₃"] --> h3["h₃"]
xT["x_T"] --> hT["h_T"]
h0["h₀"] -- U --> h1 -- U --> h2 -- U --> h3 -. ⋯ .-> hT
h1 --> y1["ŷ₁"]
h2 --> y2["ŷ₂"]
h3 --> y3["ŷ₃"]
hT --> yT["ŷ_T"]
表达能力。一个完全连接的循环网络是任何非线性动力系统的近似器:对于由
6.3 循环网络的三种应用模式
循环网络既可以作为输入-输出映射的机器学习模型,也可以作为联想记忆模型(存储器)。作为机器学习模型,它主要有三种模式:幻灯片 17
- 序列到类别:输入序列、输出一个类别,如文本情感分类。可以取最后时刻的状态
作为整个序列的表示,或对所有状态取平均 ,再送入分类器: 。幻灯片 18 幻灯片 19 - 同步的序列到序列:每个时刻都有输入和输出,且长度相同,如中文分词(BMES 标注)、词性标注、信息抽取;输出
。语音识别中输入输出长度不同,可以借助 CTC 引入空白符号 来对齐。幻灯片 21–幻灯片 23 - 异步的序列到序列(编码器-解码器):输入和输出不需要严格对应,也不需要等长,如机器翻译。先用编码器读入整个输入序列得到其编码,再用解码器自回归地生成输出:幻灯片 25
6.4 参数学习:随时间反向传播
以同步序列到序列为例,给定样本
随时间反向传播(Backpropagation Through Time, BPTT)把循环网络看作展开后的多层前馈网络,“每一层”对应一个时刻,所有层共享参数。定义
由于参数在各时刻共享,梯度是所有时刻、所有路径上梯度之和:
BPTT 需要保存所有时刻的中间结果,空间复杂度较高;另一种算法实时循环学习(RTRL)通过前向传播计算梯度,无需反向传播,适合在线学习。
6.5 长程依赖问题
把误差项的递推展开:幻灯片 28
若记
改进方法:
- 梯度爆炸:权重衰减(限制参数取值范围),以及梯度截断——当梯度的模超过阈值时将其缩放(见第 7 章);
- 梯度消失:主要靠改进模型。例如把循环边改为线性依赖
,此时 ,不再有梯度消失,但丢失了对历史状态的非线性变换能力;进一步加入非线性 (类似残差网络),但仍存在梯度爆炸和记忆容量问题——隐状态不断累积信息会饱和。解决方案是引入门控机制,有选择地加入新信息、遗忘旧信息。幻灯片 30
调节循环权重与序列长度,观察
在单独页面中打开:RNN 梯度消失与爆炸
6.6 门控循环网络:LSTM 与 GRU
长短期记忆网络(LSTM)引入一个新的内部状态(记忆单元)
遗忘门
隐状态
LSTM 的变体:幻灯片 32
- 无遗忘门的 LSTM(最早的版本):
,记忆单元会不断增大; - 耦合输入门和遗忘门:令
,减少冗余; - peephole 连接:三个门不仅依赖
和 ,还依赖记忆单元 (或 )。
门控循环单元(GRU)是比 LSTM 更简洁的门控网络,不引入额外的记忆单元,用更新门
当
6.7 深层循环网络
堆叠循环神经网络(Stacked RNN)把多个循环网络堆叠起来,第
双向循环神经网络(Bi-RNN)由两层方向相反的循环网络组成,使每个时刻的输出同时依赖过去和未来的信息:幻灯片 36
6.8 扩展到图结构:递归神经网络与图网络
如果把循环网络按时间展开的链式结构扩展为树结构或图结构,就得到更一般的模型。幻灯片 37
递归神经网络(Recursive Neural Network, RecNN)在有向无环图上共享一个组合函数。程序语言和自然语言的句法结构都是树结构。幻灯片 39 幻灯片 40 例如给定语法树
当树退化为线性序列时,递归神经网络就等价于简单循环网络。幻灯片 42
图网络。知识图谱、社交网络、分子结构等很多数据是图结构的,前馈网络和循环网络很难处理。幻灯片 44 幻灯片 45 图网络在每个节点
其中
6.9 循环网络的应用
- 语言模型:估计句子的概率
。N 元语言模型只看前 个词,循环网络语言模型理论上可以利用全部历史。幻灯片 50 训练好的语言模型可以用来生成 Linux 内核代码、歌词、诗歌等。幻灯片 52–幻灯片 54 - 机器翻译:传统统计机器翻译由多个模块组成 幻灯片 55;基于序列到序列的神经机器翻译用一个 RNN 编码、另一个 RNN 解码,端到端训练。幻灯片 56
- 看图说话(Image Captioning):卷积网络编码图像,循环网络生成描述 幻灯片 57;视觉问答(VQA)幻灯片 59。
- 手写体生成:把书写轨迹看作一串点,每个点记为相对前一点的偏移
和是否“提笔”。幻灯片 60 - 对话系统。幻灯片 61
总结:循环网络引入了记忆,并且图灵完备;但存在长程依赖问题、记忆容量问题,且计算必须按时间步顺序进行,并行能力差——后者正是 Transformer(第 8 章)要解决的问题。幻灯片 62
本章小结
- 循环网络通过隐状态
引入记忆,是图灵完备的。 - 三种应用模式:序列到类别、同步序列到序列、异步序列到序列(编码器-解码器)。
- BPTT 沿时间展开计算梯度;误差项中的连乘导致梯度消失 / 爆炸,形成长程依赖问题。
- 梯度爆炸用梯度截断,梯度消失靠门控:LSTM(输入 / 遗忘 / 输出门 + 记忆单元)、GRU(更新门 + 重置门)。
- 堆叠、双向结构增加深度与上下文;递归神经网络和图网络把循环网络推广到树和图。
思考题与习题
- (推导) 写出简单循环网络中
的递推公式,并推导 。 - (分析) 设
, 的最大奇异值为 。证明当 时梯度必然随 指数衰减。 - (概念) LSTM 中为什么用
生成候选状态、用 Logistic 函数生成门?如果把遗忘门恒定为 1、输入门恒定为 1,会发生什么? - (计算) 输入维度为
、隐状态维度为 时,简单 RNN、LSTM、GRU 各有多少参数? - (设计) 分别为以下任务选择合适的循环网络模式并画出结构:命名实体识别、文本分类、机器翻译、语音识别。
- (编程) 用 LSTM 实现字符级语言模型,在唐诗语料上训练并生成诗句;比较不同采样温度下的生成效果。
- (编程) 训练一个循环网络做多位数加法(如输入
123+456,输出579),比较 SRN 与 LSTM 在不同位数下的准确率。
部分提示
- 第 2 题:
。 - 第 4 题:SRN
;LSTM ;GRU (均不含输出层)。
延伸阅读
- 教材:邱锡鹏《神经网络与深度学习》第 6 章「循环神经网络」。
- Hochreiter S, Schmidhuber J. Long short-term memory, 1997;Cho K, et al. Learning phrase representations using RNN encoder–decoder, 2014。
- Battaglia P W, et al. Relational inductive biases, deep learning, and graph networks, 2018。
- 实践:nndl-practice 第 6 章「循环神经网络」、第 9 章「图神经网络」。
- 交互:RNN 梯度消失与爆炸。
- 第二版对应章节:第 6 章「循环神经网络」,图网络部分见第 9 章「图神经网络」。