Neural network 运行更多的时代真的是过度装修的直接原因吗?

Neural network 运行更多的时代真的是过度装修的直接原因吗?,neural-network,gradient-descent,Neural Network,Gradient Descent,我在在线文章/教程中看到了一些评论,或者说越来越多的纪元可能会导致过度拟合。但我的直觉告诉我,时代的数量和过度拟合之间不应该有任何直接关系所以我在寻找解释我是对还是错(或介于两者之间的任何东西)的答案。 这是我的理由。要进行过度拟合,您需要在模型中有足够的自由参数(我认为这在神经网络中称为“容量”),以生成可以复制样本数据点的函数。如果没有足够的自由参数,就永远不会过度拟合。你可能只是身体不适 所以说真的,如果你没有太多的自由参数,你可以运行无限的时代,永远不会过度拟合。如果你有太多的自由参数,

我在在线文章/教程中看到了一些评论,或者说越来越多的纪元可能会导致过度拟合。但我的直觉告诉我,时代的数量和过度拟合之间不应该有任何直接关系所以我在寻找解释我是对还是错(或介于两者之间的任何东西)的答案。

这是我的理由。要进行过度拟合,您需要在模型中有足够的自由参数(我认为这在神经网络中称为“容量”),以生成可以复制样本数据点的函数。如果没有足够的自由参数,就永远不会过度拟合。你可能只是身体不适

所以说真的,如果你没有太多的自由参数,你可以运行无限的时代,永远不会过度拟合。如果你有太多的自由参数,那么是的,你拥有的时代越多,你就越有可能到达一个你过度拟合的地方。但这仅仅是因为运行更多的纪元揭示了根本原因:太多的自由参数。真正的损失函数并不关心您运行了多少个纪元。它存在于您定义模型结构的那一刻,甚至在您尝试对其进行梯度下降之前

事实上,我敢说:假设你有足够的计算资源和时间,你应该总是尽可能多地运行历代,因为这会告诉你你的模型是否容易过度拟合。无论您运行了多少个阶段,您最好的模型都将提供非常好的培训和验证准确性

编辑
在阅读更多内容时,我意识到我忘了考虑到你也可以随意改变样本大小。给定一个固定的模型,较小的样本量更容易过度拟合。这让我怀疑我的直觉。不过还是很高兴得到答案

如果相对于训练集的大小而言,可训练参数的数量很小(并且训练集相当多样化),那么多次运行相同的数据就没有那么重要了,因为您将学习有关问题的一些特征,而不仅仅是记忆训练数据集。当参数的数量与训练数据集的大小(或更大)相当时,问题就会出现,这与使用过多特征的任何机器学习技术基本相同。如果使用具有密集连接的大型层,这是非常常见的。为了解决这个过拟合问题,有很多正则化技术(辍学、L1正则化、将某些连接限制为0或相等,如在CNN中)


问题是,可能仍然会留下太多可训练的参数。更进一步规范化的一个简单方法是,将较小的学习率(即,不要从这个特定的示例中学习太多,以免记住它)与监控各个时期相结合(如果验证/训练准确性之间存在较大差距,则您开始过度拟合您的模型)。然后,您可以使用差距信息停止训练。这就是所谓的提前停止(在损失函数达到最小值之前停止)。

在我看来,你的直觉是完全正确的。 但这里有一个警告。深度模型的全部目的是它们是“深度的”(duh!!)。因此,随着网络的增长,功能空间会成倍地增大

下面是一个比较深层模式和简单模式的示例:

假设您有一个10变量的数据集。通过大量的特征工程,您可能可以从中提取50个特征。然后,如果你运行一个传统的模型(比如逻辑回归),你将有50个参数(用你的话来说是容量,或者自由度)需要训练

但是,如果使用一个非常简单的深度模型,其中包含层1:10个单位、层2:10个单位、层3:5个单位、层4:2个单位,则最终将得到(10*10+10*10+5*2=210)个参数进行训练

因此,通常当我们长时间训练一个神经网络时,我们最终得到的是我们的数据集的一个记忆版本(如果我们的数据集很小并且容易记忆,情况会变得更糟)

但正如你也提到的,没有内在的原因解释为什么更多的时代会导致过度拟合。通常是避免这种情况的一个很好的方法。只要将耐心设定为5-10个时代