【问题标题】:Monitoring val_loss while training训练时监控 val_loss
【发布时间】:2019-10-02 02:11:44
【问题描述】:

我有一个简单的问题让我突然怀疑自己的工作。

如果我只有一个训练和验证集,我是否可以在训练时监控 val_loss,或者这会增加我的训练偏差。我想在验证集训练结束时测试我的准确性,但突然间我在想,如果我在训练时监控该数据集,那会有问题吗?还是没有?

【问题讨论】:

  • 训练后,您应该在完全不可见的测试集上测试准确性。训练结束时验证集的结果会高估模型的泛化能力

标签: machine-learning keras monitoring loss-function


【解决方案1】:

简短回答 - 是的,监控验证错误并将其用作决定特定算法设置的基础会增加算法的偏差。详细说明一下:

1) 您修复任何 ML 算法的超参数,然后在训练集上对其进行训练。您生成的 ML 算法具有特定的超参数设置过度拟合到训练集,并且您使用验证集来估计这些超参数在看不见的数据上可以获得哪些性能

2) 但您显然想调整超参数以获得最佳性能。您可能正在执行网格搜索或类似的操作,以使用验证集为该特定算法获取最佳超参数设置。结果您的超参数设置过拟合验证集。可以把它想象成一些关于验证集的信息仍然通过超参数泄漏到你的模型中

3) 作为结果,您必须执行以下操作:将数据集拆分为训练集、验证集和测试集。使用训练集进行训练,使用验证集来决定特定的超参数。当您完成(完全完成!)对模型进行微调后,您必须使用模型从未见过的测试集来估计战斗模式下的最终性能。

【讨论】:

  • 我明白你的意思。但是,如果我仅使用它来监控训练并根据 Val_loss 保存最佳结果,则不会根据我的验证集修改超参数!还是我错过了一些观点。
猜你喜欢
  • 2019-11-12
  • 1970-01-01
  • 1970-01-01
  • 2022-11-24
  • 1970-01-01
  • 1970-01-01
  • 2021-01-21
  • 2019-11-29
  • 2018-04-21
相关资源
最近更新 更多