较大的神经网络收敛于较大的误差而不是较小的误差

时间:2018-01-31 09:56:53

标签: python machine-learning neural-network keras

我正在使用伟大的Keras库来训练神经网络。我对一个我不理解的行为感到好奇。

通常,即使是较大的模型也会比较小的模型收敛到更大的错误。

为什么会这样?我希望更大的模型只是为了训练更长的时间,但会收敛到更小或相同的错误。

我对模型进行了高度优化,尝试了不同数量的辍学正规化并让它训练了足够的时间。我试验了大约10-20k参数,5层,10M数据样本和20-100个具有减少LR的时期的模型。模型包含密集,有时包含LSTM层。

1 个答案:

答案 0 :(得分:1)

我在测试中注意到,增加参数数量需要一段时间来检查您如何准备输入数据或如何初始化权重。我发现通常增加参数的数量需要不同地初始化权重(意味着用较小的值初始化)或者你需要规范化输入数据(我猜你已经这样做了),或者甚至将它们除以一个常数因子来制作它们小。 有时候降低学习速度会有所帮助,因为你的成本函数会随着参数的增加而变得更加复杂,而且之前工作正常的学习率可能会因你的新案例而过大。但要给出一个确切的答案是非常困难的。

其他:你的意思是更大的错误是什么意思?你在做分类还是回归? 另外您是在谈论列车组或开发/测试组的错误吗?这是一个很大的不同。很可能是(如果你正在谈论开发/测试集),你过度拟合数据,因此在开发/测试集上得到更大的错误(偏差 - 方差权衡)...你能给我们更多的细节吗? ?