我在Octave中编写了一个完全连接的循环网络(基于Williams和Zipser),并且我成功地使用BPTT训练它来计算XOR作为玩具示例。学习过程相对平静:
XOR培训
所以,我想我会尝试训练网络来计算前两个输入的XOR,以及最后两个输入的OR。然而,这是我第一次运行它时未能收敛;相反,错误只是不断振荡。我试图降低学习率,并完全关闭动力,但它没有帮助。当我今天早上再次运行它时,它最终会收敛,但在此过程中没有更多的振荡:
XOR / OR训练
所以,我的问题:这是否表明我的梯度计算存在问题,或者这只是在训练循环网络时发生的事情?