Task8 循环神经网络

任务

  1. RNN的结构。循环神经网络的提出背景、优缺点。着重学习RNN的反向传播、RNN出现的问题(梯度问题、长期依赖问题)、BPTT算法。
  2. 双向RNN
  3. 递归神经网络
  4. LSTM、GRU的结构、提出背景、优缺点。
  5. 针对梯度消失(LSTM等其他门控RNN)、梯度爆炸(梯度截断)的解决方案。
  6. Memory Network(自选)
  7. Text-RNN的原理。
  8. 利用Text-RNN模型来进行文本分类。
  9. Recurrent Convolutional Neural Networks(RCNN)原理。
  10. 利用RCNN模型来进行文本分类(自选)

RNN

下图是一个简单的循环神经网络图,它由输入层、一个隐藏层和一个输出层组成:


  • x是一个向量,它表示输入层的值(这里面没有画出来表示神经元节点的圆圈)
  • s是一个向量,它表示隐藏层的值(这里隐藏层面画了一个节点,你也可以想象这一层其实是多个节点,节点数与向量s的维度相同)
  • U是输入层到隐藏层的权重矩阵;
  • o也是一个向量,它表示输出层的值;
  • V是隐藏层到输出层的权重矩阵。

那么,现在我们来看看W是什么。循环神经网络的隐藏层的值s不仅仅取决于当前这次的输入x,还取决于上一次隐藏层的值s。

  • 权重矩阵 W就是隐藏层上一次的值作为这一次的输入的权重。

LSTM/GRU

由于当间隔不断增大时,RNN会丧失学习到连接如此远的信息的能力;
LSTM网络通过精妙的门控制将短期记忆与长期记忆结合起来,在一定程度上解决了梯度消失的问题。

  1. GRU门控制单元


    GRU门控制单元简化版

    其中涉及到的公式及含义:

    • C为记忆单元
      =
    • \tilde{C}^{<>} 为可能要更新的C^{<>}
      \tilde{C}^{<>}=tan⁡(_ [^{<−1>},^{<>} ]+ _ )
    • Γ_为更新们,sigmoid函数在0到1之间决定了更新的比例,0 表示“完全保留”,1 表示“完全舍弃”
      Γ_=(_ [^{<−1>},^{<>} ]+ _)
    • 由网络来决定Γ_为0还是1,即是否要记忆前一步
      C^{<>}=Γ_∗ \tilde{C}^{<>}+(1−Γ_)C^{<>}
  2. LSTM结构:
    用了三个门来解决梯度消失的问题


    • 忘记门层:
      第一步:丢弃信息
      其中sigmoid函数是确定旧的细胞状态的保留比例
      其中1 表示“完全保留”,0 表示“完全舍弃”


      忘记门层结构
    • 输入门层:
      第二步:确定新信息
      tanh作为激活函数创新一个新的候选值C ̃_t,其中sigmoid函数是确定新的细胞状态的保留比例


      输入门层结构
    • 更新细胞状态:
      第三步:更新细胞状态
      根据忘记门层的sigmoid函数确定需要丢弃的信息,根据输入门层的sigmoid函数确定需要更新的信息


    • 确定输出值
      通过tanh激活函数处理细胞状态的得到一个在-1到1之间的数据,sigmoid函数确定输出部分的比例


  3. LSTM的核心思想

LSTM的关键在于细胞的状态整个(绿色的图表示的是一个cell),和穿过细胞的那条水平线。
细胞状态类似于传送带。直接在整个链上运行,只有一些少量的线性交互。信息在上面流传保持不变会很容易。
若只有上面的那条水平线是没办法实现添加或者删除信息的。而是通过一种叫做 门(gates) 的结构来实现的。
门 可以实现选择性地让信息通过,主要是通过一个 sigmoid 的神经层 和一个逐点相乘的操作来实现的。
sigmoid 层输出(是一个向量)的每个元素都是一个在 0 和 1 之间的实数,表示让对应信息通过的权重(或者占比)。比如, 0 表示“不让任何信息通过”, 1 表示“让所有信息通过”。
LSTM通过三个这样的本结构来实现信息的保护和控制。这三个门分别输入门、遗忘门和输出门。

Text-RNN

  1. 原理:

    • 单向RNN结构:
      其中权重矩阵U、V、W共享


    • 双向RNN结构:
      正向计算和反向计算不共享权值


  2. 实现
    根据2016年复旦大学IJCAI 上的发表的关于循环神经网络在多任务文本分类上的应用(Recurrent Neural Network for Text Classification with Multi-Task Learning)的RNN框架来实现一个RNN模型:
    其中模型结构包括:

    • 一层embedding
    • 一层双向LSTM
    • 一层全连接层
    • 一个softmax分类函数

参考资料:
TextRNN

你可能感兴趣的:(Task8 循环神经网络)