在我们开始了解RNN之前我们先回顧一下前馈神经网络。
前馈神经网络接收前一层的输入并传递给下一层,但是同一层之间没有反馈前馈神经网络的传播是单向的,但昰某些任务需要能够更好的处理序列信息,即前面的输入和后面的输入有关系比如语音识别、自然语音处理等等。
RNN)是一种通过隐藏層节点周期性的连接来捕捉序列化数据中动态信息的神经网络,可以对序列化的数据进行分类
和其他前向神经网络不同,RNN 可以保存一種上下文的状态甚至能够在任意长的上下文窗口中存储、学习、表达相关信息,而且不再局限于传统神经网络在空间上的边界可以在時间序列上有延拓。
RNN 广泛应用在和序列有关的场景如一帧帧图像组成的视频,一个个片段组成的音频和一个个词汇组成的句子。
为了便于我们对RNN结构的理解和分析我们将RNN结构进行展开,如下图所示:
我们可以发现Xt-1输入后会得到一个权重计算的结果,这个结果一方面會返回到下一层另一方面会返回到相邻的同一层,并且和Xt进行权重计算从中我们可以看出,RNN可以被看作是同一个神经网络的多次赋值每个神经网络模块会把消息传递给下一个。
RNN适用的场景无外乎主要有两个:
1.不太长的相关信息和位置信息
2.适用于需要连接前面短期内的信息到当前的任务上