【深度学习】第四章:循环神经网络

文章目录

因为全连接神经网络存在如下缺点:

  1. 网络没有记忆:每次网络的输出只依赖于当前的输入,不能处理输入之间有联系的数据。
  2. 参数太多:层与层之间全连接,层内无连接。
  3. 无法处理变长的序列数据,如视频、语音、文本 :因为输入和输出的维数都是固定的,不能任意改变。

其中,最主要的缺点还是第一点,输入之间没有联系,即网络没有记忆。那么 如何给网络增加记忆能力? 有三种方法:

  1. 延时神经网络
    【深度学习】第四章:循环神经网络
  2. 自回归模型
    【深度学习】第四章:循环神经网络
  3. 循环神经网络
    【深度学习】第四章:循环神经网络
    RNN主要用于解决输入之间具有时序关系的问题。

接下来介绍的就是其中的循环神经网络。

; 2. 简单循环神经网络

【深度学习】第四章:循环神经网络

当隐藏层的个数不止一层时,就成了深度循环神经网络

  1. 双向循环神经网络

【深度学习】第四章:循环神经网络

; 4. 应用到机器学习

  1. 序列到类别模式:输入是序列,输出是类别,用于解决分类问题。比如:文本分类、情感分类等
  2. 同步的序列到序列模式:主要用于序列标注任务,即每一时刻都有输入和输出,输入序列和输出序列的长度相同。比如:词性标注、中文分词、信息抽取等
  3. 异步的序列到序列模式:也称编码器-解码器模型,即输入序列和输出序列不需要有严格的对应关系,也不需要保持相同的长度。比如:机器翻译中,输入为源语言的单词序列,输出是目标语言的单词序列。

  4. 参数学习

可通过梯度下降的方法进行学习。主要有两种计算梯度的方式:

  1. 随时间反向传播算法(BPTT)
  2. 实时循环学习算法

5.1 随时间反向传播算法(BPTT)

主要思想是通过类似前馈神经网络的反向传播误差来计算梯度。过程如下:

  1. 前向计算激活值:在简单神经网络中提到过
    【深度学习】第四章:循环神经网络
  2. 反向传播误差
    【深度学习】第四章:循环神经网络
    【深度学习】第四章:循环神经网络
    【深度学习】第四章:循环神经网络
    【深度学习】第四章:循环神经网络
    【深度学习】第四章:循环神经网络

; 6. RNN的梯度爆炸与消失、长程依赖问题

  1. 梯度爆炸:靠近输入层的网络层,计算的到的偏导数极其大,更新后W变成一个很大的数(爆炸)。
  2. 梯度消失:靠后面网络层(如layer3)能够正常的得到一个合理的偏导数,但是靠近输入层的网络层,计算的到的偏导数近乎零,参数几乎无法得到更新。
  3. 长程依赖问题:RNN并不能很好的处理较长的序列。一个主要的原因是,RNN在训练中很容易发生 梯度爆炸梯度消失,这导致训练时梯度不能在较长序列中一直传递下去,从而使RNN无法捕捉到长距离的影响。

那么,如何避免 梯度爆炸梯度消失,从而解决RNN的长程依赖问题?

【深度学习】第四章:循环神经网络
  1. 长短时记忆网络 (LSTM)

【深度学习】第四章:循环神经网络
LSTM使用了三个门去控制LSTM的三个输入是否输入:
【深度学习】第四章:循环神经网络

门实际上就是一层全连接层,它的输入是一个向量,输出是一个0到1之间的实数向量。

【深度学习】第四章:循环神经网络

; 8. RNN vs CNN vs DNN

  • DNN的代表是全连接神经网络,其层之间是全连接的,层内无连接。主要用于传统的机器学习,进行预测。
  • CNN是卷积神经网络,其层之间是局部连接的,层内无连接。主要用于处理图像分类
  • RNN是循环神经网络,其层之间是全连接的,层内是有连接的。主要用于解决时序数据的,比如语音识别、语言翻译等。

Original: https://blog.csdn.net/qq_43546676/article/details/127809724
Author: 别闹’
Title: 【深度学习】第四章:循环神经网络

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/655754/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球