如果在调整超参数时评估验证数据的模型性能,为什么有关验证数据的信息会泄漏?


9

在FrançoisChollet的Python深度学习中,它说:

结果,即使从未对模型进行过直接训练,根据其在验证集上的性能来调整模型的配置也可能很快导致对验证集的过度拟合。

这种现象的核心是信息泄漏的概念。每次根据模型在验证集上的性能来调整模型的超参数时,一些有关验证数据的信息都会泄漏到模型中。如果仅对一个参数执行一次此操作,那么将泄漏很少的信息,并且您的验证集将保持可靠以评估模型。但是,如果您重复多次(运行一个实验,对验证集进行评估并最终修改模型),那么您将把与验证集有关的越来越多的信息泄漏到模型中。

如果在调整超参数时评估验证数据的模型性能,为什么有关验证数据的信息会泄漏?


顺便说一句:它不仅取决于您执行此操作的频率,还取决于优化过程中性能评估(目标功能)的随机不确定性。
cbeleites不满意SX

1
@cbeleites抱歉,这是什么意思?
fabiomaia

1
如果用于优化的评估结果是完美的(即既不是系统误差也不是随机误差),则优化将选择真正的最优模型,那么您就不会有过拟合现象,并且对所选模型进行另一个独立的完美验证将得出完全相同的结果。该优化甚至可以容忍系统误差(偏差),只要它不会随您在优化过程中变化的因素而变化即可。现在考虑在性能估计上存在随机误差(方差不确定性)时会发生什么:您会在真实性能“风景”之上获得噪声。
cbeleites不满意SX

1
这种噪声会使某个点(超参数设置)看起来比实际情况好,因此这些超参数设置可能会被意外(错误地)选择。发生这种情况的可能性随着以下因素的增加而增加:a)您查看此类性能值的次数,以及b)在真实性能之上的噪声量(与真实性能相比)。这不是为什么验证结果的重用会导致数据泄漏,而是关于各自的过度拟合是如何发生的,以及您应该预期的严重性,因此仅是评论。
cbeleites对SX不满意,

Answers:


11

信息被泄漏是因为您正在使用验证数据进行超参数选择。本质上,您正在创建一个复杂的优化问题:最小化针对验证数据评估的超参数的损失,其中这些超参数对通过使用特定训练集训练的参数的神经网络模型进行正则化。ϕθ

即使参数是直接由训练数据告知的,超参数还是会根据验证数据进行选择。此外,由于超参数隐式影响,因此验证数据中的信息会间接影响您选择的模型。θϕϕθ


1
回想起来,这是显而易见的。但是,“如果只对一个参数执行一次,那么很少的信息会泄漏”是什么意思呢?这是什么意思,与“重复多次”的其他情况有什么不同?
fabiomaia

4
假设您仅尝试2种超参数配置,根据验证数据衡量性能,然后选择最佳模型。由于运气不佳,您不太可能成功拟合验证数据。相比之下,假设您尝试超参数配置并根据验证数据选择最佳模型。纯粹由于运气不佳,您存在过大的风险,您已经设法过度拟合了验证数据。另请参阅:“分叉路径的花园”和虚假效果的发现。210
Sycorax说,恢复莫妮卡

1
这是很合理的。原书上的措辞不是最好的。谢谢!
fabiomaia

这本书的措辞很好。
Michael M

2
在您看来,它似乎“出色”,因为您可能已经知道作者在说什么。@Sycorax的评论对我来说更为明确和有益。
fabiomaia
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.