第五周(循环神经网络)

第五周:循环神经网络 视频学习 绪论
1. 循环神经网络的应用 语音问答、视觉问答、机器翻译、股票预测、作词机、作诗、仿写论文及代码、图像理解
2. 循环神经网络 vs 卷积神经网络

  • RNN核心问题:上下文关系(时序)
  • 循环神经网络与卷积神经网络的不同
    • 传统神经网络、卷积神经网络,输入和输出之间是相互独立的
    • RNN可以更好的处理具有时序关系的任务
    • RNN通过其循环结构引入“记忆”的概念
      • 输出不仅依赖于输入,还依赖“记忆”
      • 将同一个结构循环利用
基本组成结构
  • 隐层状态h可以被看作是“记忆”,因为它包含了之前时间点上的相关信息。
  • 输出y不仅由当前的输入所决定,还会考虑到之前的“记忆”。由两者共同决定。
  • RNN在不同时刻共享一组参数(U,W,V),极大地减小了需要训练和预估的参数量。
1. 基本结构
  • 隐层的数据被存入到一个“记忆”单元中
  • 存在“记忆”中的数据会被作为另外一个输入与原始输入一起输入到神经网络中
    • 两种输入
    • 两种输出
第五周(循环神经网络)
文章图片

2. 深度RNN 深度较深,特征表示能力较强。
第五周(循环神经网络)
文章图片

3. 双向RNN 同时联系上、下文信息。
第五周(循环神经网络)
文章图片

4. BPTT算法 与BP算法相似,复合函数链式求导需要考虑所有与W相关的h。
第五周(循环神经网络)
文章图片

循环神经网络的变种
1. 传统RNN的问题
  • 当循环神经网络在时间维度上非常深的时候,会导致梯度消失(较多)或者梯度爆炸(对优化过程影响很大)的问题。
  • 梯度爆炸导致的问题:模型训练不稳定,梯度变为Nan(无效数字),Inf(无穷大)
  • 梯度爆炸问题的改进:
    • 权重衰减
    • 梯度截断:误差梯度超过阈值,截断梯度,将梯度设为阈值
  • 梯度消失导致的问题:长时依赖问题
    • 随着时间间隔不断增大,RNN会丧失学习到连接较远信息的能力。
  • 梯度消失问题的改进:
    • 改进模型
    • LSTM,GRU
2. LSTM 第五周(循环神经网络)
文章图片

LSTM中“记忆”不会被新的输入覆盖(相加)。
如果前面的输入对 C~t~ 产生了影响,那这个影响会一直存在,除非遗忘门的权重为0。
  • LSTM实现三个门的计算:
    • 遗忘门:遗忘信息,通过记住后信息
    • 输入门:确定需要更新的信息
    • 输出门:确定输出信息
  • 小技巧:
    • LSTM中learning rate可以被尽量的设置小
    • 初始化将输出门bias置为正数(1或5),这样模型刚开始训练时forget gate的值接近于1,不会发生梯度消失
3. GRU 第五周(循环神经网络)
文章图片

【第五周(循环神经网络)】解决LSTM运算复杂的问题。
  • GRU只有两个门:
    • 重置门:控制忽略前一时刻的状态信息的程度,重置门越小说明忽略的越多
    • 更新门:控制前一时刻的状态信息被带入到当前状态中的程度,更新门越大表示前一时刻的状态信息带入越多
  • 相似:
    • 从t-1到t时刻的记忆的更新都引入加法
    • 可以防止梯度消失
扩展
1. 解决RNN梯度消失的其他方法
  • Clockwise RNN
    • 把隐层分成很多组,每组有不同的循环周期,有的周期是1(同普通RNN),有的周期更长。这样距离较远的某个依赖关系就可以通过周期较长的cell少数几次循环访问到,从而网络层数不太深,更容易学到。
2. 基于attention的RNN
  • 每个时刻根据当前记忆学到一个attention权重矩阵
  • 同一时刻该权重在每个channel上是共享的

    推荐阅读