RNN基础知识总结
本文介绍的RNN是Recurrent Neural Network,即循环神经网络,注意不是递归神经网络。
1. RNN简介
在使用神经网络处理问题的过程中,经常会遇到序列问题。以文字预测为例:我们爱吃苹____,我们认为最后一个字为“”“果”,较为合理。显然,该结论的得出与前几个字存在着关联。遗憾的是,在处理这种序列问题时,传统的神经网络能力欠缺。RNN的出现很好的解决了这个问题,这还要从RNN的结构说起。
2. RNN结构
RNN是一种链式结构,每个预测结果都会放到下一个输入中进行运算,与下一个输入一起生成下一层的输出。结构如下图所示:
图中神经网络输出h4=f(x0,x1,x2,x3,x4),即输出与序列之前的没一次输出都可以建立关联,因此可以实现序列的预测。但是在实际处理问题的过程中,随着RNN网络的加深,神经网络不可避免的出现梯度弥散和梯度爆炸的现象。因此,基础的循环神经网络网络层级结构较多时,较长期的结果难以影响当前的输出结果,网络无法学习太长的序列特征。在实际应用中,使用的较多的是RNND的改进——LSTM网络。
3.经典RNN结构——LSTM
LSTM(long short term memory)是RNN网络的代表,它通过添加门结构,缓解了梯度弥散和梯度爆炸的现象,使得神经网络对于较长序列和较短序列都能较好的预测。LSTM的结构如下图所示:
参考:1、https://blog.csdn.net/xiaocao9903/article/details/78583953
2、https://yq.aliyun.com/articles/291377