我昨天发布了这个问题,询问我的神经网络(我正在使用随机梯度下降通过反向传播进行训练)是否陷入局部最小值。以下论文讨论了 XOR 神经网络中的局部最小值问题。第一篇说不存在局部最小值问题,而下一篇论文(一年后写)说在 2-3-1 XOR 神经网络中存在局部最小值问题(作为另外,我使用的是 3-3-1,即输入层和隐藏层的偏差)。这两个都是摘要(我无法访问完整的论文,所以我无法阅读它):
- XOR 没有局部最小值:神经网络误差面分析的案例研究。 由哈米 LG。澳大利亚悉尼麦考瑞大学计算机系
- 2-3-1 XOR 网络的本地最小值。 作者:Sprinkhuizen-Kuyper IG,Boers EW。
还有另一篇论文 [PDF]说最简单的 XOR 网络没有局部最小值,但它似乎不是在谈论 2-3-1 网络。
现在回到我的实际问题:我找不到任何讨论激活函数的选择、初始权重以及这对神经网络是否会陷入局部最小值的影响。我问这个问题的原因是,在我的代码中,我尝试使用标准的 sigmoid 激活函数和双曲正切激活函数。我注意到在前者中,我只有大约 20% 的时间会被卡住,而在后者中,我往往会更频繁地被卡住。每当我第一次初始化网络时,我也会随机化我的权重,所以我想知道一组随机权重是否更倾向于让我的神经网络“卡住”。
就激活函数而言,由于误差最终与激活函数产生的输出有关,我认为是有影响的(即误差表面发生变化)。然而,这只是基于直觉,我更喜欢一个具体的答案(对于这两点:初始权重和激活函数的选择)。