我训练了一个模型,取得了不错的结果,但后来我变得贪心,想要更高的准确性,于是我继续训练模型,时间越来越长,但毫无效果,什么都没有发生!根据理论,在过度训练后,验证准确率应该会在某个点开始下降(损失开始增加)!但这似乎从未发生过。因此,我认为可能是神经网络过于简单,无法过拟合,所以我增加了它的容量,最终得到了数百万个参数,并且训练了10,000个周期,仍然没有发生过拟合。
同样的问题在这里被问到过这里,但那里的答案并不令人满意。
这意味着什么?
回答:
对于高容量模型来说,这是一个已知的情况。它们对过拟合的抵抗力出人意料,这与经典的统计学习理论相矛盾,经典理论认为如果没有显式的正则化,你会过拟合。例如,这篇论文指出
大多数具有学习参数的深度神经网络在经验上通常具有很好的泛化能力,即使装备的有效参数数量远超过训练样本的数量,即高容量…因此,统计学习理论无法解释深度学习模型的泛化能力。
此外,这篇和这篇论文也讨论了这个问题。你可以继续跟踪这些论文中的参考文献以了解更多。
就个人而言,我从未见过高容量模型在训练数万个周期后过拟合。如果你想要一个会过拟合的例子:使用ReLU激活函数且没有dropout的Lenet 5来处理Cifar10,并使用学习率为0.01
的SGD进行训练。这个模型的训练参数数量约为60,000,与Cifar10的样本数量相同(低容量模型)。在最多500-1000个周期后,你会看到非常明显的过拟合现象,损失和错误随时间增加。