本文将介绍一般RNN,RNN的变种GRU(门控循环单元)和LSTM(长短期记忆网络)等神经网络结构
- LSTM原始论文: NIPS 2014, Sequence to Sequence Learning with Neural Networks
- GRU原始论文: EMNLP 2014, Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translation
一般的RNN
循环神经网络(Recurrent Neural Network, RNN)
- 将神经单元展开后的示意图如下:
RNN与CNN优缺点比较
此处我们之比较CNN和RNN在序列预测问题中的优劣
- 关于前馈神经网络:
- 是一种最简单的神经网络
- 各神经元分层排列, 每个神经元只接受前一层的输入,输出到下一层,已知到输出层,
- 整个网络中没有反馈(后面的backward求梯度不能算反馈,这里指一次输入到输出计算各层间没有反馈,数据流只能从上一层到下一层单向流动)
- 可以用一个有向无环图表示
- CNN:
- 是一种前馈神经网络(多层感知机),是多层感知机的变体
- 采用固定大小的输入并生成固定大小的输出
- CNN是图像和视频处理的理想选择
- RNN:
- 不是前馈神经网络, 有环
- 可以处理任意长度的输入输出
- 使用时间序列信息,能用之前的状态影响下一个状态
- RNN是文本和语音分析的理想选择
- RNN在处理序列信息的缺点:
- 对短期输入非常敏感,但是对长期输入不敏感
- 难以处理长文本中长距离的单词间的关系
LSTM
长短期记忆网络(Long Short-Term Memory, LSTM)
- 整体示意图如下:
- 核心是”(Gate)门”结构
- 其中Sigmoid是输出0到1的数值,描述每个部分有多少量可以通过当前门
- 0表示拒绝所有, 1表示接受所有
推导流程图
GRU
门控循环单元(Gated Recurrent Unit, GRU)
- 整体示意图及推导如下:
GRU与LSTM对比
- 二者提出的时间基本相同
- 都是用来解决RNN不能处理长期依赖的问题
- LSTM有三个”门”结构, GRU只有两个”门结构”
- GRU较简单,参数比较少,不容易过拟合, LSTM比较复杂一点,但是常用