动手学深度学习Task2笔记

循环神经网络

  1. 什么是循环神经网络
    下图展示了如何基于循环神经网络实现语言模型。我们的目的是基于当前的输入与过去的输入序列,预测序列的下一个字符。循环神经网络引入一个隐藏变量,用表示在时间步的值。的计算基于和,可以认为记录了到当前字符为止的序列信息,利用对序列的下一个字符进行预测。
  1. 循环神经网络构造

    由于引入了,能够捕捉截至当前时间步的序列的历史信息,就像是神经网络当前时间步的状态或记忆一样。由于的计算基于,上式的计算是循环的,使用循环计算的网络即循环神经网络,在时间步,输出层的输出为:
  2. one-hot向量
    假设词典大小是N,每次字符对应一个从0到N-1的唯一的索引,则该字符的向量是一个长度为N的向量,若字符的索引是i,则该向量的第i个位置为1,其他位置为0。
  3. 裁剪梯度
    循环神经网络中较容易出现梯度衰减或梯度爆炸,这会导致网络几乎无法训练。裁剪梯度(clip gradient)是一种应对梯度爆炸的方法。假设我们把所有模型参数的梯度拼接成一个向量,并设裁剪的阈值是。裁剪后的梯度
  4. GRU⻔控循环神经⽹络
    RNN存在的问题:梯度较容易出现衰减或爆炸
    ⻔控循环神经⽹络:捕捉时间序列中时间步距离较⼤的依赖关系


  • 重置⻔有助于捕捉时间序列⾥短期的依赖关系;
  • 更新⻔有助于捕捉时间序列⾥⻓期的依赖关系。
  1. LSTM长短期记忆
    遗忘门:控制上一时间步的记忆细胞 输入门:控制当前时间步的输入
    输出门:控制从记忆细胞到隐藏状态
    记忆细胞:⼀种特殊的隐藏状态的信息的流动


你可能感兴趣的:(动手学深度学习Task2笔记)