我正在使用Python的大Keras库来训练神经网络。我对一种我不明白的行为感到好奇。
通常,甚至更小的模型收敛到比小的更大的误差。
这一切为什么要发生?我希望更大的模型只是训练时间更长,但收敛到较小或相同的误差。
我对模型进行了超优化,尝试了不同数量的失学正则化,并让它有足够的时间进行训练。我试验了大约10-20k参数、5层、10M数据样本和20-100个低LR历元的模型。模型包含密集的有时是LSTM层。
发布于 2018-02-01 10:09:09
我在测试中注意到的是,增加参数数量需要一些时间来检查如何准备输入数据或如何初始化权重。我发现,增加参数的数量通常需要以不同的方式初始化权重(这意味着用较小的值进行初始化),或者您需要规范化输入数据(我猜您已经这样做了),甚至还需要将它们除以常数因子使其更小。有时候,降低学习率是有帮助的,因为你的成本函数会随着参数的增加而变得更加复杂,而且可能会发生这样的情况:以前的学习速度对你的新情况来说太大了。但是很难给出一个精确的答案。
还有:更大的错误是什么意思?您是在进行分类还是回归?,另外,您是在讨论火车集上的错误还是开发/测试集上的错误?这是一个很大的不同。很可能(如果你在谈论的是开发/测试集),你对你的数据进行了过度拟合,因此在开发/测试集(偏差-方差权衡)上得到了一个更大的错误。你能告诉我们更多的细节吗?
https://stackoverflow.com/questions/48539256
复制相似问题