定义
循环神经网络(RNN)是一种深度学习神经网络,专门用于处理序列数据,如文本、语音和时间序列数据。RNN的独特之处在于它具有循环连接,允许信息在网络内持续流动,以便处理先前的输入信息,具体的表现形式为网络会对前面的信息进行记忆并应用于当前的计算中,即当前时刻利用了上一时刻的信息
RNN的应用领域
- 语音识别
- OCR识别(optical character recognition)
- 机器翻译
- 文本分类
- 视频动作识别
- 序列标注
常见的RNN模型
LSTM
认识LSTM
LSTM是Long-Short Term Memory的缩写,中文名叫长短期记忆网络,它是RNN的改进版本。
为了更好地解决“梯度爆炸”和“梯度消失”的问题,让RNN具备更强、更好的记忆,于是就出现了LSTM。
LSTM的“门结构”
LSTM的关键就是记忆细胞(在最上面的贯穿水平线上)。记忆细胞提供了记忆的功能,使得记忆信息在网络各层之间很容易保持下去。
遗忘门(Forget Gate)
遗忘门的作用是控制t-1时刻到t时刻时允许多少信息进入t时刻的门控设备
遗忘门的计算公式如下:
其中,xt是当前时刻的输入,at-1是上一时刻隐状态的值,σ:sigma此处代表sigmoid激活函数
t-1时刻隐藏的输出和t时刻的输入加权
输入门(Input Gate)
输入门的作用是确定需要将多少信息存入记忆细胞中。除了计算输入门外,还需要使用tanh计算记忆细胞的候选值c’t
然后,就可以对当前时刻的记忆细胞进行更新了
t时刻的记忆细胞值== 遗忘门 * t-1时刻的记忆细胞值 + 输入门 * t时刻的记忆细胞候选值
输出门(Output Gate)
输出门是用来控制t时刻状态值对外多少是可见的门控设备
输出门与t时刻隐层节点输出值得公式为: