一、初识RNN
1、 循环神经网络是指随着时间的推移,重复发生的结构。在自然语言处理,语音图像等多个领域均有着广泛的使用。RNN网络和其它网络的不同之处在于RNN可以实现某种记忆功能,是进行时间序列分析的最好选择。好像人类能够凭借自己过往的记忆更好的认识这个世界一样。RNN也实现了类似于人脑的这一机制,对所处理过的信息留存有一定的记忆,而不像其他类型的神经网络并不能对处理过的信息留存记忆。
2、 重复发生的结构概括性的描述了,RNN和CNN类似,通过共用一组权值来减少运算量。
3、 通过时间序列,我们将输入的内容按时间先后进行输入,通过计算将时刻之前总结的内容和时刻的内容一起输入进行运算,则表达了记忆的特征
二、RNN原理
1、
整个网络中只有简单的输入、输出以及网络参数状态 ,每个时间点输入的都是类似于该状态。一个典型的RNN网络包含一个输入X、一个输出h和一个神经网络单元A。和普通的神经网络不同的是,RNN网络的神经网络单元A不仅仅与输入和输出存在联系,其与自身也存在一个回路。这种网络结构就揭示了RNN的主要工作原理:即上一个时刻的网络状态信息将会作用于下一个时刻的网络状态。
2、 将1中的图展开可得
数学公式的表达如下
在上图右侧为RNN的展开形式,由于RNN一般处理的是序列信息,我们将以时间序列的例子来学习和解释。等号右边的等价RNN网络中最初的输入状态为,输出为,这代表着在(t-1)的时刻RNN网络的输入为,输出为,网络神经元在(t-1)时刻的状态保存在了中。当下一个时刻(t)时刻到来时,此时网络神经元的状态不仅仅由(t)时刻的输入所决定,也由(t-1)时刻的保存的神经元状态所决定。之后的所有情况以此类推。
实例: 假设现有一句话 为“我 是 中国 _”,我们的输入框为 ’ ,则在相应的输出框中理论上应该为 通过预测,我们可以得出大概率为