循环神经网络

  • 定义:循环神经网络(RNN)是一类具有短期记忆能力的神经网络。在循环神经网络中,神经元不但可以接受其它神经元的信息,也可以接受自身的信息,形成具有环路的网络结构。
  • 应用:广泛应用在语音识别、语言模型以及自然语言生成等任务上。

给网络增加记忆

  • 1、延时神经网络:在前馈网络中的非输出层都添加一个延时器,记录最近几
    次神经元的输出。
  • 2、有外部输入的非线性自回归模型: 自回归模型的扩展,在每个时刻 t都有一个外部输入 xt,产生一个输出 yt。
  • 3、循环神经网络: 通过使用带自反馈的神经元,能够处理任意长度的时序数据。
    • 结构图:

    • 给定一个输入序列x1:T = (x1, x2, . . . , xt, . . . , xT ), 其隐藏层的活性值为ht=f(ht-1,xt)


简单循环神经网络

  • 特点:只有一个隐藏层的循环神经网络。

  • 假设在时刻t时,网络的输入为xt,隐层状态(即隐层神经元活性值)为ht不仅和当前时刻的输入 xt 相关,也和上一个时刻的隐层状态 ht−1 相关。即:

    • zt=Uht-1+Wxt+b
    • ht=f(zt)
    • yt=Vht
    • 上述U被称为状态-状态权重矩阵,W被称为状态-输入权重矩阵.
  • 将网络在时间维度上展开其结构图:

  • 图灵机是一种抽象的信息处理装置, 可以用来解决任所有的可计算机问题。

  • 图灵完备是指一种数据操作规则,比如一种计算机编程语言,可以实现图灵机(Turing Machine)的所有功能,解决所有的可计算问题。


应用

  • 根据循环神经网络的不同应用领域,可以分为序列到类别模式, 同步序列到序列模式, 异步序列到序列模式.

    序列到类别模式

    • 定义:主要用于序列数据的分类问题,输入为序列,输出为类别。比如在文本分类中,输入数据为单词的序列,输出为该文本的类别。
    • 序列到类别的两种模型:

    同步序列到序列模式

    • 主要用于序列标注(Sequence Labeling)任务,即每一时刻都有输入和输出,输入序列和输出序列的长度相同。比如词性标注(Partof-Speech Tagging)中,每一个单词都需要标注其对应的词性标签。

    异步序列到序列模式.

    • 称为编码器-解码器(Encoder-Decoder)模型,即输入序列和输出序列不需要有严格的对应关系,也不需要保持相同的长度。比如在机器翻译中,输入为源语言的单词序列,输出为目标语言的单词序列。
    • 模型结构:


参数学习

  • 循环神经网络的参数学习方式也是梯度下降算法,根据计算方式可以分为两种:随时间反向传播(BPTT)和实时循环学习(RTRL).
  • 随时间反向传播:误差反向传播
    • 误差传播结构图:
  • 实时循环学习:误差前向传播
  • 比较: BPTT算法和 RTRL算法都是基于梯度下降的算法,分别通过前向模式和反向模式应用链式法则来计算梯度。在循环神经网络中,一般网络输出维度远低于输入维度,因此 BPTT算法的计算量会更小,但是 BPTT算法需要保存所有时刻的中间梯度,空间复杂度较高。 RTRL算法不需要梯度回传,因
    此非常适合用于需要在线学习或无限序列的任务中。

长期依赖问题

  • 当时间间隔较大时,容易出现梯度消失或者梯度爆炸现象.
  • 梯度爆炸:一般而言,循环网络的梯度爆炸问题比较容易解决,一般通过权重衰减或梯度截断来避免。
    • 权重衰减 是通过给参数增加 ℓ1 或 ℓ2 范数的正则化项来限制参数的取值范
      围,从而使得 γ ≤ 1。
    • 梯度截断是另一种有效的启发式方法,当梯度的模大于一
      定阈值时,就将它截断成为一个较小的数。
  • 梯度消失 是循环网络的主要问题.
  • 记忆容量问题: 隐藏状态ht 可以存储的信息是有限的,随着记忆单元存储的内容越来越多,其丢失的信息也越来越多。为了解决容量问题,可以有两种方法:
    • 一种是增加一些额外的存储单元:外部记忆;
    • 另一种是进行选择性的遗忘,同时也进行有选择的更新。

基于门控的循环神经网络

  • 长短期记忆网络(LSTM) 是基于门控的循环神经网络的一种,它引入了门机制,即输入门it, 遗忘门ft 和输出门ot.

    • 遗忘门ft: 控制上一个时刻的内部状态ct-1 需要遗忘多少信息。
    • 输入门it: 控制当前时刻的候选状态c˜t 有多少信息需要保存。
    • 输出门ot: 控制当前时刻的内部状态ct有多少信息需要输出给外部状态ht
  • 三个门及候选状态的计算方式:

  • 结构图:

  • 门控循环单元(GRU)网络 是一种比 LSTM网络更加简单的循环神经网络。其将输入门和遗忘门合并为一个更新门.

  • 当前时刻的候选状态 h˜t ,重置门rt,隐状态ht,更新门zt计算方式:

  • 结构图:


深层神经网络

  • 堆叠循环神经网络

  • 双向循环神经网络

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐