前馈神经网络的缺点:

  • 信息的传递是单向的,连接存在层与层之间,每层的节点之间是无连接的(无循环),这种限制虽然使得网络更容易学习,但也减弱了神经网络模型的能力。前馈神经网络可以看作一个复杂的函数,每次的输入都是独立的,即网络的输出只依赖于当前的输入。而很多现实任务中,网络的输出不仅和当前时刻的输入有关,还和过去一段时间的输出有关,也就是网络需要记忆能力,比如有限状态自动机和图灵机,但前馈神经网络是一种静态网络,没有记忆能力,就无法模拟有限状态自动机和图灵机等
  • 前馈神经网络要求输入和输出的维数都是固定的,不能任意改变,因此无法处理变长的序列(时序)数据,比如视频、语音、文本等

因此,就需要循环神经网络
image.png

循环神经网络 RNN:是一类具有短期记忆能力的神经网络

  • 神经元不但可以接受其他神经元的信息,也可以接收自身的信息,形成具有环路的网络结构
  • 广泛应用于:语音识别、语言模型、自然语言生成等任务
  • 参数学习:随时间反向传播算法
    • 即,按照时间的逆序将错误信息一步步地往前传递
  • 长程依赖问题:当输入序列比较长时,会存在梯度爆炸和消失问题,也称 长程依赖问题
    • 改进:引入门控机制
  • 扩展(更广义的记忆网络模型):
    • 递归神经网络
    • 图网络

6.1 给网络增加记忆能力

处理时序数据并利用其历史信息,需要使网络具有短期记忆能力 第 6 章 循环神经网络 RNN - 图3

6.1.1 延时神经网络 TDNN

思想:加入延时器(延时单元),使前馈神经网络也具有短期记忆能力

  • 延时单元:建立额外的延时单元来存储网络的历史信息,包括输入、输出、隐状态等

  • 延时神经网络 TDNN:在前馈神经网络的非输出层都添加一个延时器,记录神经元的最近几次活性值

    • 第 6 章 循环神经网络 RNN - 图4 层神经元在时刻 t 的活性值 第 6 章 循环神经网络 RNN - 图5
    • 即依赖于第 第 6 章 循环神经网络 RNN - 图6 层神经元在最近 K 个时刻的活性值

6.1.2 有外部输入的非线性自动回归模型 NARX

有外部输入的非线性自动回归模型 NARX

  • 基于自回归模型,扩展加入延时器
  • 在每个时刻 t 都有一个外部输入 第 6 章 循环神经网络 RNN - 图7,产生一个输出 第 6 章 循环神经网络 RNN - 图8
  • NARX 通过一个延时器记录最近 第 6 章 循环神经网络 RNN - 图9 次的外部输入和最近 第 6 章 循环神经网络 RNN - 图10 次输出
  • 第 t 个时刻的输出 第 6 章 循环神经网络 RNN - 图11第 6 章 循环神经网络 RNN - 图12 是非线性函数

6.1.3 循环神经网络 RNN

循环神经网络 RNN

  • 通过使用带自反馈的神经元,能够处理任意长度的时序数据
  • 带反馈边的隐藏层的活性值(也称状态 or 隐状态第 6 章 循环神经网络 RNN - 图13第 6 章 循环神经网络 RNN - 图14第 6 章 循环神经网络 RNN - 图15 是非线性函数(可以是一个前馈网络)

image.png

  • 循环神经网络具有短期记忆能力,相当于存储装置,理论上可以近似任意的非线性动力系统
    • 前馈神经网络可以模拟任何连续函数,而循环神经网络可以模拟任何程序

动力系统:指系统状态按照一定的规律随时间变化的系统,第 6 章 循环神经网络 RNN - 图17 可以看成一个动力系统

6.2 简单循环网络 SRN

简单循环网络 SRN:是只有一个隐藏层的神经网络,但(区别于两层的前馈神经网络,)增加了从隐藏层到隐藏层的反馈连接(见图 6.1)

  • 在时刻t,网络的输入:第 6 章 循环神经网络 RNN - 图18
  • 在时刻t,隐藏层的净输入:第 6 章 循环神经网络 RNN - 图19
  • 在时刻t,隐藏层的(隐)状态/活性值第 6 章 循环神经网络 RNN - 图20第 6 章 循环神经网络 RNN - 图21
  • 其中,第 6 章 循环神经网络 RNN - 图22 为“状态-状态权重矩阵”,第 6 章 循环神经网络 RNN - 图23 为“状态-输入权重矩阵”,第 6 章 循环神经网络 RNN - 图24 为偏置向量,第 6 章 循环神经网络 RNN - 图25 为非线性激活函数(通常为 Logistic 函数或 Tanh 函数)

按时间展开的循环神经网络:

  • 如果将每个时刻的状态都看作前馈神经网络的一层,循环神经网络可以看作在时间维度上权值共享的神经网络

image.png

6.2.1 循环神经网络的计算能力

根据循环神经网络的通用近似定理,一个完全连接的循环网络是任何非线性动力系统的近似器

  • 图灵机:一种抽象的信息处理装置,可以用来解决所有的可计算问题
  • 图灵完备:指一种数据操作规则,比如一种计算机编程语言,可以实现图灵机的所有功能,解决所有的可计算问题。目前的主流编程语言都是图灵完备的
  • 图灵完备定理:所有的图灵机都可以被一个由使用 Sigmoid 型激活函数的神经元构成的全连接循环网络来进行模拟
  • 因此,一个完全连接的循环神经网络可以近似解决所有的可计算问题

6.3 应用到机器学习

第 6 章 循环神经网络 RNN - 图27

6.3.1 序列到类别模式

  • 输入为序列,输出为类别
  • 主要用于序列数据的分类问题

    • eg. 文本分类,输入数据为单词序列,输出为该文本的类别
  • 输入序列:第 6 章 循环神经网络 RNN - 图28 是长度为 T 的序列,按不同时刻输入到循环神经网络,得到:

  • 不同时刻的隐状态:第 6 章 循环神经网络 RNN - 图29,两种方式处理隐藏状态 h,输入给分类器 第 6 章 循环神经网络 RNN - 图30,得到:
  • 输出类别: 第 6 章 循环神经网络 RNN - 图31
    • 正常模式:将最后时刻的状态 第 6 章 循环神经网络 RNN - 图32 看作整个序列的最终表示(或 特征),即 第 6 章 循环神经网络 RNN - 图33
    • 按时间进行平均采样模式:将整个序列的所有状态的平均作为整个序列的表示,即 第 6 章 循环神经网络 RNN - 图34

image.png

6.3.2 同步的序列到序列模式

  • 每一时刻都有输入和输出,输入和输出都是序列,且序列长度相同
  • 主要用于序列标注

    • eg. 词性标注,对每个输入的单词都标注对应的词性标签
    • 信息抽取
    • 语音识别
  • 输入序列:第 6 章 循环神经网络 RNN - 图36,长度为 T,样本 x 按不同时刻输入到 RNN,并得到:

  • 不同时刻的隐状态:第 6 章 循环神经网络 RNN - 图37,每个时刻的隐状态 第 6 章 循环神经网络 RNN - 图38 代表了当前时刻和历史的信息,并输入给分类器 第 6 章 循环神经网络 RNN - 图39,得到输出(当前时刻的标签 第 6 章 循环神经网络 RNN - 图40
  • 输出序列:第 6 章 循环神经网络 RNN - 图41,长度为 T
    • 第 6 章 循环神经网络 RNN - 图42

image.png

6.3.3 异步的序列到序列模式

也称编码器-解码器模型,通过先编码后解码的方式实现

  • 输入和输出都是序列,但输入输出序列不需要有严格的对应关系,也不需要保持相同的长度
  • 应用:机器翻译,输入为源语言的单词序列,输出为目标语言的单词序列

  • 输入序列:第 6 章 循环神经网络 RNN - 图44,长度为 T。先将样本 x 按不同时刻输入到一个 RNN(编码器)中,并得到其编码 第 6 章 循环神经网络 RNN - 图45;再使用另一个 RNN(解码器),得到输出序列:

  • 输出序列:第 6 章 循环神经网络 RNN - 图46,长度为 M
  • 公式(第 6 章 循环神经网络 RNN - 图47 是用作编码器的 RNN,第 6 章 循环神经网络 RNN - 图48 是用作解码器的 RNN(通常采用非线性的自回归模型),第 6 章 循环神经网络 RNN - 图49 为分类器):
    • 第 6 章 循环神经网络 RNN - 图50
    • 第 6 章 循环神经网络 RNN - 图51
    • 第 6 章 循环神经网络 RNN - 图52

image.png

6.4 参数学习

循环神经网络的参数可以通过梯度下降法进行学习

以同步的序列到序列模式为例:

  • 时刻 t 的输出 第 6 章 循环神经网络 RNN - 图54
  • 时刻 t 的损失函数 第 6 章 循环神经网络 RNN - 图55
  • 整个序列的损失函数 第 6 章 循环神经网络 RNN - 图56
  • 整个序列的损失函数关于参数 U 的梯度 第 6 章 循环神经网络 RNN - 图57,关于参数 W,b 的梯度同理

循环神经网络计算梯度的两种方式: 第 6 章 循环神经网络 RNN - 图58

6.4.1 随时间反向传播算法 BPTT

  • 算法思想:通过类似前馈神经网络的错误反向传播算法计算梯度

    • 图 6.2,将循环神经网络看作一个展开的多层前馈网络,每一层对应循环神经网络的每个时刻
    • 展开的网络中,所有层共享参数,因此参数的真实梯度是所有展开层的参数梯度之和
  • 误差项 第 6 章 循环神经网络 RNN - 图59,为 t 时刻的损失 第 6 章 循环神经网络 RNN - 图60 对 k 时刻的隐藏神经层的净输入 第 6 章 循环神经网络 RNN - 图61 的导数

  • 参数梯度:
    • 第 6 章 循环神经网络 RNN - 图62
    • 第 6 章 循环神经网络 RNN - 图63
    • 第 6 章 循环神经网络 RNN - 图64

6.4.2 实时循环学习算法 RTRL

BPTT 和 RTRL 算法的比较:

  • 两种算法都是基于梯度下降的算法,分别通过反向模式和前向模式应用链式法则计算梯度
  • 在循环神经网络中,一般网络输出维度远远低于输入维度,因此 BPTT 算法的计算量会更小
  • 但 BPTT 算法需要保存所有时刻的中间梯度,空间复杂度较高
  • RTRL 算法不需要梯度回传,因此非常适用于需要在线学习或无限序列的任务

6.5 长程依赖问题

循环神经网络在学习过程中的主要问题是:由于梯度消失或梯度爆炸问题,简单循环神经网络实际上只能学习到短期的依赖关系,很难建模长时间间隔的状态之间的依赖关系,称为长程依赖问题

6.5.1 改进方案

  • 方案一(最直接的方式):选取合适的参数,同时使用非饱和的激活函数,但需要足够的人工调参经验,限制了模型的广泛应用
  • 方案二(比较有效的方式):通过改进模型或优化方法来缓解网络的梯度消失和梯度爆炸问题

梯度爆炸问题:比较容易解决,通过权重衰减梯度截断来避免

  • 权重衰减:给参数增加 第 6 章 循环神经网络 RNN - 图65第 6 章 循环神经网络 RNN - 图66 范数的正则化项来限制参数的取值范围
  • 梯度截断:一种启发式方法,当梯度的模大于一定的阈值时,就将它截断成为一个较小的数

梯度消失问题:是循环网络的主要问题,避免方法:

  • 使用一些优化技巧
  • 更有效的方式是改变模型
    • 原本的RNN的隐状态第 6 章 循环神经网络 RNN - 图67,现在让 第 6 章 循环神经网络 RNN - 图68,同时令 第 6 章 循环神经网络 RNN - 图69 为单位矩阵,即
    • 第 6 章 循环神经网络 RNN - 图70第 6 章 循环神经网络 RNN - 图71 是非线性函数,第 6 章 循环神经网络 RNN - 图72 为参数
    • 优点:这样,第 6 章 循环神经网络 RNN - 图73第 6 章 循环神经网络 RNN - 图74 之间就变为线性依赖关系,且权重系数为 1,就不存在梯度消失或梯度爆炸问题
    • 缺点:丢失了神经元在反馈边上的非线性激活的性质,因此降低了模型的表示能力
  • 避免以上的缺点,更有效的改进策略:

    第 6 章 循环神经网络 RNN - 图75

    • 优点:这样,第 6 章 循环神经网络 RNN - 图76第 6 章 循环神经网络 RNN - 图77 之间既有线性关系,也有非线性关系,。可以缓解梯度消失问题
    • 缺点:
      • 梯度爆炸问题
      • 记忆容量问题:隐状态 第 6 章 循环神经网络 RNN - 图78 能存储的信息是有限的,会发生饱和现象,随着记忆单元存储的内容越来越多,丢失的信息也越来越多
  • 为了解决以上两个问题缺点,需要引入下一节介绍的门控机制

6.6 基于门控的循环神经网络

  • 针对的问题:为了改善循环神经网络的长程依赖问题
  • 解决方法——基于门控的循环神经网络:在 6.5.1节提到的公式 第 6 章 循环神经网络 RNN - 图79 的基础上引入门控机制来控制信息的类加速度,包括有选择地加入新的信息,并由选择地遗忘之前累积的信息

第 6 章 循环神经网络 RNN - 图80

6.6.1 长短期记忆网络 LSTM

拓展阅读:讓 AI 寫點金庸:如何用 TensorFlow 2.0 及 TensorFlow.js 寫天龍八部

长短期记忆网络 LSTM 是循环神经网络的一个变体,能有效解决简单循环神经网络的梯度爆炸或消失问题

LSTM 在公式 第 6 章 循环神经网络 RNN - 图81 的基础上改进了两方面:

  • 新的内部状态 第 6 章 循环神经网络 RNN - 图82
    • 内部状态 第 6 章 循环神经网络 RNN - 图83 专门进行线性的循环信息传递,同时(非线性地)输出信息给隐藏层的外部状态 第 6 章 循环神经网络 RNN - 图84
    • 在每个时刻 t,LSTM 的内部状态 第 6 章 循环神经网络 RNN - 图85 记录了当前时刻为止的历史信息
    • 内部状态第 6 章 循环神经网络 RNN - 图86
    • 外部状态第 6 章 循环神经网络 RNN - 图87
    • 其中,第 6 章 循环神经网络 RNN - 图88 为向量元素乘积,第 6 章 循环神经网络 RNN - 图89 分别是遗忘门、输入门、输出门(详见下面的门控机制),用来控制信息传递的路径
    • 候选状态第 6 章 循环神经网络 RNN - 图90第 6 章 循环神经网络 RNN - 图91
  • 门控机制:用来控制信息传递的路径。用三个门动态地控制内部状态应该遗忘多少历史信息,输入多少新信息,以及输出多少信息 | | 作用 & 计算方式(门是“软门”,取值在(0,1)之间,表示以一定的比例允许信息通过) | | —- | —- | | 遗忘门 | 控制上一时刻的内部状态 需要遗忘多少信息
    | | 输入门 | 控制当前时刻的候选状态 第 6 章 循环神经网络 RNN - 图92 有多少信息需要保存
    | | 输出门 | 控制当前时刻的内部状态 有多少信息需要输出给外部状态
    |

    • 由上面的公式,
      • 第 6 章 循环神经网络 RNN - 图93 时,记忆单元将历史信息清空,并将候选状态 第 6 章 循环神经网络 RNN - 图94 写入(不过由 第 6 章 循环神经网络 RNN - 图95 的公式,此时记忆单元 第 6 章 循环神经网络 RNN - 图96依然和上一时刻的历史信息相关)
      • 第 6 章 循环神经网络 RNN - 图97 时,记忆单元将复制上一时刻的内容,不写入新的信息

LSTM 网络的循环单元结构
image.png
以上提到的公式可以归纳为:

  • 第 6 章 循环神经网络 RNN - 图99
  • 第 6 章 循环神经网络 RNN - 图100
  • 第 6 章 循环神经网络 RNN - 图101

记忆:循环神经网络的隐状态 h 存储了历史信息,可以看作一种记忆

  • 短期记忆:简单循环网络中,隐状态 h 每个时刻都会被重写,可以看作一种短期记忆
  • 长期记忆:长期记忆可以看作网络参数,隐含了从训练数据中学到的经验,其更新周期要远慢于短期记忆
  • 长短期记忆:LSTM网络中,记忆单元 c 可以在某个时刻捕捉到某个关键信息,并保存一定的时间间隔,这个生命周期长于短期记忆 h,又远远短于长期记忆,因此称为长短期记忆

6.6.2 LSTM 网络的各种变种

对门控机制的三个门进行改进,可获得 LSTM 网络的不同变体

  • 无遗忘门的 LSTM 网络:

    • 第 6 章 循环神经网络 RNN - 图102
  • peephole 连接:三个们不但依赖于输入 第 6 章 循环神经网络 RNN - 图103 和上一时刻的隐状态 第 6 章 循环神经网络 RNN - 图104,也依赖于上一时刻的记忆单元 第 6 章 循环神经网络 RNN - 图105

    • 第 6 章 循环神经网络 RNN - 图106
    • 第 6 章 循环神经网络 RNN - 图107
    • 第 6 章 循环神经网络 RNN - 图108
  • 耦合输入门和遗忘门:LSTM 网络中和输入门和遗忘门有互补关系,比较冗余,可以合并为一个

    • 第 6 章 循环神经网络 RNN - 图109

6.6.3 门控循环单元网络 GRU

门控循环单元网络 GRU 是一种比 LSTM 更简单的循环神经网络

  • 原理:不引入额外的记忆单元,而是在公式 第 6 章 循环神经网络 RNN - 图110的基础上引入一个更新门
  • 更新门:控制当前状态需要从历史状态中保留多少信息(不经过非线性变换),以及需要从候选状态中接受多少新信息。相当于去掉了 LSTM 中使用输入门和遗忘门的冗余性,直接使用一个更新门控制输入和以往之间的平衡
    • 更新门 第 6 章 循环神经网络 RNN - 图111
    • 重置门 第 6 章 循环神经网络 RNN - 图112第 6 章 循环神经网络 RNN - 图113 用来控制候选状态 第 6 章 循环神经网络 RNN - 图114 的计算是否依赖上一时刻的状态 第 6 章 循环神经网络 RNN - 图115
    • 当前时刻的候选状态 第 6 章 循环神经网络 RNN - 图116
    • 当前状态 第 6 章 循环神经网络 RNN - 图117
      • 第 6 章 循环神经网络 RNN - 图118 时,当前状态 第 6 章 循环神经网络 RNN - 图119 和前一时刻的状态 第 6 章 循环神经网络 RNN - 图120 之间为非线性函数关系
      • 第 6 章 循环神经网络 RNN - 图121 时,当前状态 第 6 章 循环神经网络 RNN - 图122 和前一时刻的状态 第 6 章 循环神经网络 RNN - 图123 之间为线性函数关系(实际上是 第 6 章 循环神经网络 RNN - 图124),和当前输入 第 6 章 循环神经网络 RNN - 图125 无关
      • 第 6 章 循环神经网络 RNN - 图126 时,GRU 网络退化成简单循环网络
      • 第 6 章 循环神经网络 RNN - 图127 时,当前状态 第 6 章 循环神经网络 RNN - 图128 只和输入 第 6 章 循环神经网络 RNN - 图129 相关,和历史状态 第 6 章 循环神经网络 RNN - 图130 无关

image.png

6.7 深层循环神经网络

循环神经网络可以看作既深又浅的网络:

  • 深:如果将 RNN 按时间展开,长时间间隔的状态之间的路径很长,因而可以看作一个很深的网络
  • 浅:同一时刻,RNN 网络的输入到输出之间的路径 第 6 章 循环神经网络 RNN - 图132 时很短的,所以是一个很浅的网络

增加循环神经网络的深度(以增加网络的能力):

  • 主要是增加同一时刻网络输入到输出之间的路径 第 6 章 循环神经网络 RNN - 图133 的长度 第 6 章 循环神经网络 RNN - 图134

    6.7.1 堆叠循环神经网络 SRNN

  • 堆叠循环神经网络 SRNN:即将多个循环神经网络堆叠起来,以增加循环神经网络的深度

  • 循环多层感知机 RMLP:简单循环网络 SRN 的堆叠

  • 堆叠循环神经网络中,时刻 t 第 第 6 章 循环神经网络 RNN - 图135 层的输入 第 6 章 循环神经网络 RNN - 图136 等于第 第 6 章 循环神经网络 RNN - 图137 层的输出 第 6 章 循环神经网络 RNN - 图138

  • 所以,时刻 t 第 第 6 章 循环神经网络 RNN - 图139 层的隐状态:第 6 章 循环神经网络 RNN - 图140
  • 第 6 章 循环神经网络 RNN - 图141

image.png

6.7.2 双向循环神经网络 Bi-RNN

  • 使用场景:有些任务,一个时刻的输出不但和过去时刻的信息有关,也和后续时刻的信息有关

    • eg. 一个句中,一个单词的词性由上下文决定
    • 因此,需要增加一个按照时间逆序传递信息的网络层,来增强网络能力
  • 双向循环神经网络 Bi-RNN:由两层循环神经网络组成,输入相同,只是信息的传递方向不同

  • 例:第一层按时间顺序,第二层按时间逆序,在时刻 t 的隐状态:
    • 第一层的隐状态:第 6 章 循环神经网络 RNN - 图143
    • 第二层的隐状态:第 6 章 循环神经网络 RNN - 图144
    • 最后输出状态:第 6 章 循环神经网络 RNN - 图145第 6 章 循环神经网络 RNN - 图146 是向量拼接操作

image.png

6.8 扩展到图结构

image.png

  • 如上图所示,将循环神经网络按时间展开,每个时刻的隐状态 第 6 章 循环神经网络 RNN - 图149 可以看作一个节点,这些节点构成一个链式结构传递消息第 6 章 循环神经网络 RNN - 图150 传给 )
  • 第 6 章 循环神经网络 RNN - 图151
  • 这种消息传递可以扩展到任意其它图结构,而不单单是链式结构

第 6 章 循环神经网络 RNN - 图152image.png

6.8.1 递归神经网络 RecNN

递归神经网络 RecNN:是循环神经网络在有向无循环图上的扩展,一般结构为树状的层次结构

  • 即消息的传递方向不再限定为 第 6 章 循环神经网络 RNN - 图154 传给 第 6 章 循环神经网络 RNN - 图155,针对一个节点 第 6 章 循环神经网络 RNN - 图156,可以让它接受来自父节点 第 6 章 循环神经网络 RNN - 图157 的消息
  • 第 6 章 循环神经网络 RNN - 图158第 6 章 循环神经网络 RNN - 图159 是非线性函数

image.png

6.8.2 图神经网络 GNN

图神经网络 GNN:是将消息传递的思想扩展到图结构数据上的神经网络

  • 图结构数据:知识图谱、社交网络、分子网络等

6.9 总结和深入阅读

第 6 章 循环神经网络 RNN - 图161

  • 循环神经网络可以建模时间序列数据之间的相关性
  • 相较于 延时神经网络有外部输入的非线性自回归模型循环神经网络可以更方便地建模长时间间隔的相关性
  • 常用的循环神经网络的参数学习算法是:BPTT 算法 ,但其计算时间和空间会随时间线性增长
  • 一个完全连接的循环神经网络,可以近似任何非线性动力系统以及图灵机(6.2.1 循环神经网络的计算能力),解决所有可计算问题
  • 由于梯度爆炸和梯度消失问题,简单循环网络存在长程依赖问题
  • 为了解决长程依赖问题,最有效的解决方式是:引入门控机制,eg.
    • LSTM 网络:是目前为止最成功的循环神经网络模型
      • 应用:语音识别、机器翻译、语音模型、文本生成等
      • 通过引入线性连接来缓解长距离依赖问题
      • LSTM 网络的线性连接以及门控机制是一种十分有效的避免梯度消失问题的方法
    • GRU 网络
  • 循环神经网络可以很容易地扩展到更广义的图结构数据上,称为图网络递归神经网络是一种在有向无环图上的简单的图网络

习题

参考:《神经网络与深度学习-邱锡鹏》习题解答

习题 6-1 分析延时神经网络、卷积神经网络和循环神经网络的异同点

异:

  • 延时神经网络当前层神经元的活性值依赖于前一层神经元的最近 K 个时刻的活性值,第 6 章 循环神经网络 RNN - 图162
  • 循环神经网络当前时刻的活性值依赖于之前所有时刻的活性值,第 6 章 循环神经网络 RNN - 图163
  • 卷积神经网络在空间上共享权重,循环神经网络在时间维度上共享权重

同:三种神经网络都共享权重


习题 6-2 推导公式(6.40)和公式(6.41)中的梯度(6.4.1节

  • 公式 6.40:第 6 章 循环神经网络 RNN - 图164
  • 公式 6.41:第 6 章 循环神经网络 RNN - 图165

参考书 6.4.1 节(p137-138)中 第 6 章 循环神经网络 RNN - 图166 的推导过程


习题 6-3 当使用公式(6.50) 第 6 章 循环神经网络 RNN - 图167 作为循环神经网络的状态更新公式时, 分析其可能存在梯度爆炸的原因并给出解决方法(6.5.1节

  • 梯度爆炸的原因:令 第 6 章 循环神经网络 RNN - 图168 为在第 k 时刻函数 第 6 章 循环神经网络 RNN - 图169 的输入,在计算误差项 第 6 章 循环神经网络 RNN - 图170 时,梯度可能会过大,从而导致梯度爆炸问题
  • 解决办法:引入门控机制,比如使用 长短期记忆网络 或 门控循环单元网络

习题 6-4 推导 LSTM 网络中参数的梯度, 并分析其避免梯度消失的效果(6.6.1节

以遗忘门 第 6 章 循环神经网络 RNN - 图171 的参数为例:
第 6 章 循环神经网络 RNN - 图172


习题 6-5 推导GRU网络中参数的梯度, 并分析其避免梯度消失的效果(6.6.3节


习题6-6 除了堆叠循环神经网络外, 还有什么结构可以增加循环神经网络深度?(6.7节

双向循环神经网络


习题6-7 证明当递归神经网络的结构退化为线性序列结构时,递归神经网络就等价于简单循环神经网络(6.8.1节

可以比较 6.8 节的图 6.2 和 图 6.11(b)