在训练神经网络时,训练数据和验证数据之间的损失差异在开始阶段有多重要?

简短问题:在训练初期(最初几个周期),验证损失和训练损失之间的差异是否能很好地指示应使用的数据量?例如,是否增加数据量直到开始时的差异尽可能小是一个好方法?这将节省我的时间和计算资源。

背景:我正在研究一个非常容易过拟合的神经网络。在应用了许多不同的技术如丢弃法、批量归一化、降低学习率、减小批量大小、增加数据多样性、减少层数、增大滤波器尺寸……之后,最好的结果仍然很差。虽然训练损失下降得很好,但验证损失过早地过拟合(我所说的过早是指,未达到期望的损失,它应该小很多倍)。由于我的数据集约200个样本的训练需要24小时来完成50个周期,我希望在增加数据量之前,通过上述所有方法来对抗过拟合。由于这些方法都没有帮助,我现在考虑增加数据量。我在思考多少数据足以让我的网络消除过拟合。我知道这个问题不容易回答,因为它取决于数据的复杂性和我试图解决的任务……因此我尝试将我的问题概括为:


回答:

简短问题的简短回答:不是

解释:(训练损失 – 验证损失)与你需要训练模型的数据量之间存在关联,但有许多其他因素可能导致较大的(训练损失 – 验证损失)。例如,你的网络架构太小,因此你的模型很快就会过拟合。或者,你的验证集不能反映训练数据。或者你的学习率太大。或者……

所以我的建议是:在另一个SO问题中重新表述你的问题,并问“我的做法可能有什么问题?”

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注