Neural network 神经网络训练中的振荡

Neural network 神经网络训练中的振荡,neural-network,backpropagation,gradient-descent,Neural Network,Backpropagation,Gradient Descent,我已经在八度音阶中编程了一个完全连接的递归网络(基于Williams和Zipser),并且我成功地使用BPTT来训练它,以计算XOR作为一个玩具示例。学习过程相对平静: 异或训练 所以,我想我应该尝试训练网络来计算前两个输入的异或,以及最后两个输入的或。然而,在我第一次运行它时,它并没有收敛;相反,误差只是不断地振荡。我试着降低学习速度,完全关闭动量,但没有效果。当我今天早上再次运行它时,它确实会收敛,但在这个过程中不会没有更多的振荡: 异或/或训练 所以,我的问题是:这是否表明我的梯度计算

我已经在八度音阶中编程了一个完全连接的递归网络(基于Williams和Zipser),并且我成功地使用BPTT来训练它,以计算XOR作为一个玩具示例。学习过程相对平静:

异或训练

所以,我想我应该尝试训练网络来计算前两个输入的异或,以及最后两个输入的或。然而,在我第一次运行它时,它并没有收敛;相反,误差只是不断地振荡。我试着降低学习速度,完全关闭动量,但没有效果。当我今天早上再次运行它时,它确实会收敛,但在这个过程中不会没有更多的振荡:

异或/或训练


所以,我的问题是:这是否表明我的梯度计算有问题,或者这只是训练递归网络时发生的事情?

这个问题可能更适合stats.stackexchange.com。在训练神经网络时,相同学习率参数的结果不同,这并不是不正常的,关键是网络的初始权重是随机的。你能发布代码吗