视频:李宏毅 Sequence-to-sequence Learning 1:00 开始的部分

RNN(Recurrent Neural Network)

  • 输入:向量序列 RNN 总结 - 图1
  • 输出:向量序列 RNN 总结 - 图2
  • basic function fRNN 总结 - 图3
    • 输入:前一时刻的隐状态 RNN 总结 - 图4 和 当前时刻 RNN 的输入 RNN 总结 - 图5
    • 输出:当前时刻的隐状态 RNN 总结 - 图6 和 当前时刻 RNN 的输出 RNN 总结 - 图7
    • RNN 不同时刻反复使用同一个 basic function
      • 因此不论输入/输出序列有多长,参数数量都是固定的

image.png

Deep RNN

每一层分别使用一个 basic function
image.png

双向 RNN

  • RNN 总结 - 图10 按正序 RNN 总结 - 图11 依次读入输入向量序列
  • RNN 总结 - 图12 按逆序 RNN 总结 - 图13 依次读入输入向量序列
  • RNN 总结 - 图14 读入 RNN 总结 - 图15RNN 总结 - 图16 的输出,输出向量序列 RNN 总结 - 图17

image.png

RNN 的 basic function f

Naive RNN

RNN 的 basic function f 最简单的设计
image.png

LSTM 长短期记忆网络

详见 LSTM

实际上 LSTM 才是 basic function 最常见的设计,现在一般说用 RNN 用的就是 LSTM

LSTM 将 RNN 的隐状态 RNN 总结 - 图20 拆分为两个状态:

  • 内部状态 RNN 总结 - 图21 :改变比较缓慢的 memory,RNN 总结 - 图22RNN 总结 - 图23 很像,可以记住长时间的资讯
  • 外部状态 RNN 总结 - 图24 :改变比较快,RNN 总结 - 图25RNN 总结 - 图26 差异很大

image.png

GRU 门控循环单元网络

详见 GRU

GRU 是另一种常用的 RNN basic function

  • GRU 相当于 LSTM 中的遗忘门和输入门联动,一个开,另一个就关
  • GRU 参数量比 LSTM 少,能减少过拟合的可能性
    • 下图中每个粗箭头代表乘上一个 linear transform W,不同颜色的粗箭头代表不同的 W
    • 可见不算求 RNN 总结 - 图28 用到的 linear transform,LSTM 共需要 4 个,而 GRU 需要 3 个

image.png