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

机器算法验证 神经网络 交叉验证 超参数
2022-03-21 20:44:24

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

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

这种现象的核心是信息泄露的概念。每次根据模型在验证集上的性能调整模型的超参数时,有关验证数据的一些信息就会泄漏到模型中。如果您只对一个参数执行一次,那么很少有信息会泄漏,并且您的验证集将保持可靠以评估模型。但是,如果您重复多次——运行一个实验,评估验证集,然后修改你的模型——那么你就会将越来越多的关于验证集的信息泄漏到模型中。

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

1个回答

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

尽管参数θ由训练数据直接通知,超参数ϕ是根据验证数据选择的。此外,由于超参数ϕ隐性影响θ,来自验证数据的信息会间接影响您选择的模型。