Neural network XOR神经网络误差在训练过程中停止下降

Neural network XOR神经网络误差在训练过程中停止下降,neural-network,backpropagation,Neural Network,Backpropagation,我正在用随机梯度下降法通过反向传播训练XOR神经网络。神经网络的权重初始化为-0.5到0.5之间的随机值。神经网络在80%的时间里都能成功地自我训练。然而,有时它在反向传播时会被“卡住”。所谓“卡住”,我的意思是我开始看到错误纠正率下降。例如,在成功的培训过程中,随着网络的学习,总误差会迅速减小,如下所示: ... ... Total error for this training set: 0.0010008071327708653 Total error for this training

我正在用随机梯度下降法通过反向传播训练XOR神经网络。神经网络的权重初始化为-0.5到0.5之间的随机值。神经网络在80%的时间里都能成功地自我训练。然而,有时它在反向传播时会被“卡住”。所谓“卡住”,我的意思是我开始看到错误纠正率下降。例如,在成功的培训过程中,随着网络的学习,总误差会迅速减小,如下所示:

...
...
Total error for this training set: 0.0010008071327708653
Total error for this training set: 0.001000750550254843
Total error for this training set: 0.001000693973929822
Total error for this training set: 0.0010006374037948094
Total error for this training set: 0.0010005808398488103
Total error for this training set: 0.0010005242820908169
Total error for this training set: 0.0010004677305198344
Total error for this training set: 0.0010004111851348654
Total error for this training set: 0.0010003546459349181
Total error for this training set: 0.0010002981129189812
Total error for this training set: 0.0010002415860860656
Total error for this training set: 0.0010001850654351723
Total error for this training set: 0.001000128550965301
Total error for this training set: 0.0010000720426754587
Total error for this training set: 0.0010000155405646494
Total error for this training set: 9.99959044631871E-4

Testing trained XOR neural network
0 XOR 0: 0.023956746649767453
0 XOR 1: 0.9736079194769579
1 XOR 0: 0.9735670067093437
1 XOR 1: 0.045068688874314006
然而,当它被卡住时,总误差在减少,但似乎在减少:

...
...
Total error for this training set: 0.12325486644721295
Total error for this training set: 0.12325486642503929
Total error for this training set: 0.12325486640286581
Total error for this training set: 0.12325486638069229
Total error for this training set: 0.12325486635851894
Total error for this training set: 0.12325486633634561
Total error for this training set: 0.1232548663141723
Total error for this training set: 0.12325486629199914
Total error for this training set: 0.12325486626982587
Total error for this training set: 0.1232548662476525
Total error for this training set: 0.12325486622547954
Total error for this training set: 0.12325486620330656
Total error for this training set: 0.12325486618113349
Total error for this training set: 0.12325486615896045
Total error for this training set: 0.12325486613678775
Total error for this training set: 0.12325486611461482
Total error for this training set: 0.1232548660924418
Total error for this training set: 0.12325486607026936
Total error for this training set: 0.12325486604809655
Total error for this training set: 0.12325486602592373
Total error for this training set: 0.12325486600375107
Total error for this training set: 0.12325486598157878
Total error for this training set: 0.12325486595940628
Total error for this training set: 0.1232548659372337
Total error for this training set: 0.12325486591506139
Total error for this training set: 0.12325486589288918
Total error for this training set: 0.12325486587071677
Total error for this training set: 0.12325486584854453
当我在阅读神经网络时,我遇到了一个关于局部极小值和全局极小值的讨论,以及神经网络如何真正“知道”它应该走向哪个极小值


我的网络是否陷入局部极小而不是全局极小?

是的,神经网络可能陷入局部极小,这取决于误差面。然而,这表明在异或问题的误差面上不存在局部极小值。然而,我无法获得全文,因此我无法验证作者做了什么来证明这一点,以及它如何适用于您的问题

可能还有其他因素导致这个问题。例如,如果你在某个陡峭的山谷快速下降,如果你只是使用一阶梯度下降,你可能会到达相反的斜坡,并一直来回反弹。您还可以尝试在每次迭代中给出所有权重的平均变化,以测试您是否真的有一个“卡住”的网络,或者更确切地说,一个刚刚进入极限周期的网络


你应该首先尝试调整你的参数(学习速度,如果你实施了它,动力等等)。如果你可以通过改变参数来解决这个问题,那么你的算法可能还可以。

像LiKao所描述的那样,梯度下降太差,步长过大,这是一个可能的问题。另一个原因是,XOR误差分布有非常平坦的区域,这意味着需要很长时间才能收敛,事实上,梯度可能非常弱,以至于下降算法无法将您拉向正确的方向

这两篇论文着眼于2-1-1和2-2-1异或场景。其中一个使用了我不知道的“交叉熵”误差函数。在第一个例子中,他们宣称没有局部极小值,但在第二个例子中,他们说在无穷远处存在局部极小值——基本上是当权重变为非常大的值时。所以对于第二种情况,他们的结果表明,如果你没有开始接近“足够”的真极小值,你可能会被困在无限点。他们还说,由于特定的定义,没有显示局部极小值的2-2-1异或网络的其他分析与他们的结果并不矛盾


我遇到了同样的问题,发现使用帮助中描述的激活函数1.7159*tanh(2/3*x)。这大概是因为该函数不会在目标值{-1,1}附近饱和,而常规tanh会饱和。

谢谢!你的回答清楚多了。看来,神经网络并不精确,而且还涉及到一定程度的模糊性。我将尝试改变周围的参数,并尝试解决这个问题。我发现(发表于'99年,在你引用的一年之后),2-3-1 XOR网络有一个局部最小值(我使用的是3-3-1 XOR网络;不确定输入层上的偏差是否必要)。同样,就像你的例子一样,这是一个抽象的例子,我也看到它说,对于最简单的XOR网络,没有极小值,但这似乎不是一个2-3-1或3-3-1网络。