递归神经网络(RNN)分别是时间递归神经网络和结构递归神经网络。本文主要介绍时间递归神经网络。
Elman递归神经网络
前馈神经网络将信息从输入层,经过多个隐藏层处理最后到达输出层,数据流动是单向传递的过程,而RNN处理的对象是一种时间序列数据,它将数据信息流以一种循环的方式进行传递处理。
RNN具有以下两个特点:
持续性:在时间序列信息中,前后数据间不是相互独立,而是相互依赖的,当前阶段的输出结果收到过去的决策影响,同理,当前阶段的输出也会影响到后面的决策。
记忆性:RNN可以保留序列“记忆”信息。例如,在序列式的个性化推荐场景中,为了在当前时刻给用户选择合适的推送数据,需要保留用户过去的操作点击行为,我们称前面的这些用户行为记录为“记忆”。RNN为我们保留了过去的用户点击行为,这些“记忆”的积累信息可以让推荐系统铺获用户在过去一段时间内的口味和情感变化。
RNN在每一时间步t有相同的网络结构,Elman RNN一共有3个参数值,分别是U、V和W。设输入层的神经元个数为n,隐藏层的神经元个数为m,输出层的神经元个数为r,则U是链接输入层和隐藏层的权重矩阵,大小为(n*m)维;W是连接上一步时间步的隐藏层单元与当前时间步的隐藏层单元的权重矩阵,大小为(m*m)维;V是连接隐藏层单元与输出层单元的权重矩阵,大小为(m*r)维。第t时间步的记忆信息由前面(t-1)个时间步的记忆结果和当前输入x共同决定,这些记忆信息保存在隐藏层中,不断向后传递,跨越多个时间步,影响每一个新输入数据的处理。
时间反向传播
BRTT是训练RNN网络模型的标准算法。他的流程和反向传播算法很相似。利用BPTT求解递归神经网络之所以会导致梯度消失,主要是由于激活函数的导数所引发的梯度下降叠加。在RNN网络中,梯度消失导致的后果是模型无法保留前面胶原时间的记忆,因此,在实际的应用中效果不甚理想。