对于RNN是的训练和对传统的ANN训练一样。同样使用BP误差反向传播算法,不过有一点区别。如果将RNNs进行网络展开,那么参数W,U,V是共享的,而传统神经网络却不是的。并且在使用梯度下降算法中,每一步的输出不仅依赖当前步的网络,并且还以来前面若干步网络的状态。
前馈网络的BP算法不能直接转移到RNN网络,因为误差的反馈是以节点之间的连接没有环状结构为前提的。在RNN中使用BPTT(Back Propagation Through Time)训练算法
它会沿着时间展开神经网络,重新指定网络中的连接来形成序列。它的基本原理和BP算法是一样的,也包含同样的三个步骤:
1、前向计算每个神经元的输出值;
2、反向计算每个神经元的误差项值,它是误差函数E对神经元j的加权输入的偏导数;
3、计算每个权重的梯度,最后再用随机梯度下降算法更新权重。