你如何解释这个学习曲线?
取决于 1 在您的任务中代表什么。如果您试图预测家庭价格并且 1 代表1美元,我认为平均验证损失是好的。在这种情况下,如果 1 代表10000美元,则可能有些地方不对劲。但请记住,有 2 个部分会导致整体损失。mse 损失和 l2 惩罚损失。(还请记住,大多数优化器已经将 l2 惩罚实现为权重衰减。因此您不需要单独添加它)
一些建议。
检查您的数据是否有任何异常值/异常。根据您的任务,您应该知道可以使用这些数据点做什么。另请查看您的数据集是否具有高方差。
如果您担心过度拟合,请再次考虑您的数据。更少的数据 + 更多的参数往往会导致过度拟合。如果您的数据集太小,您需要重新考虑。
尝试调整隐藏单元的数量并观察结果。
尝试使用交叉验证。
或者,尝试使用不同的优化器,看看会发生什么(尝试 Adam)。
验证损失准确地解决了一个错误。可能意味着数据验证集的类型或训练中的某些东西有问题。一个精确的验证丢失几乎肯定意味着有什么不对劲。
我建议在做任何事情之前彻底检查您的数据或查看模型本身是否有任何要调试的内容。考虑到训练误差减少,验证数据的格式或验证数据本身可能有所不同。
对数据类型和手头的确切问题的温和描述可能会进一步提供帮助。
过度拟合的明显特征是当您的验证损失开始增加,而您的训练损失继续减少时,即:
(图片改编自 Wikipedia entry on overfitting)
很明显,这不会在您的图表中发生,因此您的模型不会过度拟合。
训练和验证分数之间的差异本身并不意味着过度拟合。这只是泛化差距,即训练集和验证集之间的预期性能差距;引用Google AI 最近的一篇博客文章:
理解泛化的一个重要概念是泛化差距,即模型在训练数据上的性能与其在从同一分布中提取的不可见数据上的性能之间的差异。
1.0(或任何其他特定值)的 MSE 本身不能被视为“好”或“坏”;一切都取决于上下文,即特定问题和因变量的实际大小:如果您试图预测数千(甚至数百)数量级的事物,则 1.0 的 MSE 听起来不错;如果您的因变量取值,例如 [0, 1] 或类似值,则情况不同。