导致XOR函数学习神经网络停滞的初始权重



我有一个神经网络,有两个入口变量,一个隐藏层有两个神经元,输出层有一个输出神经元。当我从一些随机(从0到1)生成的权重开始时,网络学习XOR函数的速度非常快,效果也很好,但在其他情况下,网络永远不会学习XOR功能!你知道为什么会发生这种情况吗?我该如何克服这个问题?会不会涉及到一些混乱的行为?谢谢

这是很正常的情况,因为多层神经网络的误差函数不是凸的,并且优化收敛到局部最小值。

您可以只保留导致成功优化的初始权重,或者从不同的权重开始多次运行优化器,并保持最佳解决方案。优化算法和学习率也起着一定的作用,例如动量反向传播和/或随机梯度下降有时效果更好。此外,如果你添加了更多的神经元,超过了学习XOR所需的最小值,这也会有所帮助。

有一些方法是为了找到全局最小值而设计的,例如模拟退火,但在实践中,它们并不常用于神经网络优化,除了一些特定的情况

最新更新