我有一个简单的问题,使我突然怀疑我的工作。
如果我只有一个培训和验证集,我是否允许在培训期间监视val_loss,还是这增加了我的培训的偏见。我想在我的验证集的训练结束时测试我的准确性,但是突然我想如果我在训练时监视那个数据集,那会有问题吗?还是没有?
发布于 2019-05-15 07:25:41
简短的回答--是的,监控验证错误并将其作为决定具体算法设置的基础,会增加算法的偏差。详细说明:
1)修正任何ML算法的超参数,并将其训练在训练集上。得到的ML算法与特定设置的超参数适用于训练集,并使用验证集来估计这些超参数在未见数据上可以获得的性能。
2)但是你显然想调整你的超参数以获得最佳的性能。您可能正在执行网格搜索或类似的操作,以便使用验证集为该特定算法获得最佳的超参数设置。因此,您的超参数设置非常适合于验证集。想象一下,关于验证集的一些信息仍然通过超参数泄漏到模型中。
3)因此,您必须执行以下操作:将数据集拆分为训练集、验证集和测试集。使用培训集进行培训,使用验证集对特定的超参数做出决定。当你完成(完全完成!)通过对模型进行微调,您必须使用从未见过的测试集来评估战斗模式下的最终性能。
https://stackoverflow.com/questions/56140764
复制相似问题