2015-11-01 67 views
0

我正在试验神经网络。我有8个输入神经元,5个隐藏和2个输出的网络。当我让网络学习反向传播时,有时会在单次迭代训练之间产生更差的结果。原因是什么?它不应该是实现错误,因为我甚至尝试过使用从Neural Networks for Java入门的实现,它也完全一样。反向传播使网络更糟

回答

1

没有错。反向传播只是一种梯度优化,梯度方法不能保证在每次迭代中使误差更小(您确实保证存在具有这种属性的非常小的步长/学习速率,但实际上并没有办法找到它);此外,您可能在每次训练样本后更新权重随机,这在这个问题上更加“不稳定”(因为您并没有真正计算真正的梯度)。但是,如果由于这个原因,你的方法不会收敛 - 考虑适当的数据缩放比例,以及降低学习速度,并可能增加动量项。这些只是基于梯度的优化相关问题,而不是BP。