0

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

4

1 回答 1

0

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

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

存在旨在找到全局最小值的方法,例如模拟退火,但实际上它们并不常用于 NN 优化,除了一些特定情况

于 2015-04-06T10:47:11.360 回答