文章目录
一. RNN
RNN出现的原因与基本逻辑
- 卷积神经网络模型,层与层之间是全连接或部分连接的,但每层之间的节点没有连接。
- 考虑这样一个问题,如果要预测一个句子的下一个单词是什么,一般需要用到当前单词及前面的单词,因为句子中前后单词并不是独立的。例如,当前单词是“很”,前一个单词是“天空”,那么下一个单词很大概率是“蓝”。这样的应用CNN并不擅长。 由此出现了可以用来处理和预测序列数据的循环神经网络(RNN)。
- 人类在阅读时会根据之前已经加过工过的信息来理解现在看到的文字,与此类似,RNN对信息的处理方式也是如此,会记忆之前的信息,并利用之前的信息影响后面节点的输出。 体现在网络结构上,RNN隐藏层之间的节点是有连接的,隐藏层的输入不仅包括输入层的输出, 还包括上一时刻隐藏层的输出。
RNN的发展
随着更加有效的循环神经网络结构(LSTM、GRU)等被不断提出,以RNN为基础的网络挖掘数据中的时序信息和语义信息的深度表达能力被充分利用,并广泛应用于情感分析、机器翻译、语言模型和语音识别等领域。
本文介绍的循环神经网络指的是简单RNN。
1. 循环神经网络结构
循环神经网络结构
下图展示了一个典型的循环神经网络结构图,主体结构A的输入除了来自输入层 x t x_t xt ,还有一个循环的边提供上一时刻的隐藏状态 h t − 1 h_{t-1} ht−1。在每一时刻,循环神经网络的模块A在读取了 x t x_t xt和 h t − 1 h_{t-1} ht−1之后,会生成新的隐藏状态 h t h_{t} ht ,并产生本时刻的输出 O t O_{t} Ot。
序列的保存逻辑
由于序列长度可以无限长,维度有限的 h t h_{t} ht状态不可能将序列的全部信息都保存下来,因此循环神经网络只保存与后面任务 O t , O t + 1 . . . O_{t},O_{t+1}... O