如何考虑超参数或训练过程中非凸的预测误差

数据挖掘 神经网络 深度学习 超参数 正则化 辍学
2022-02-15 19:37:25

以超参数和预测误差为例:

在此处输入图像描述

想象一下,超参数是 L2 惩罚或辍学率——我们认为应该有一个单一的最佳点——太高会导致拟合不足,太低会导致过度拟合。

在进行交叉验证时,我不断得到像上面那样的非凸图。

我想这只是在训练过程中出现了很多噪音——对于一个适度的样本量,我有很多变量,我需要大量正则化以获得一个好的模型。但是我仍然有点不确定这种事情是否可能指向我实现的某些方面的错误。

有没有人遇到过这种事情?您是否只是不理会非凸性并采用最小化预测误差的模型?

如果是这样,这就引出了一个问题:为什么不在训练期间的每次更新中计算一个预测误差,保存任何最小化预测误差的权重集——即使模型远未收敛。基本上让噪音对你有利。这似乎很吸引人,因为有时我在早期得到非常低的预测错误,只是随着损失函数的下降而使它们消失。

这似乎非常没有原则,但我问自己“我为什么要关心它”?并且“无论如何它是没有原则的吗?”

1个回答

潜在的真实性能可能是凸的,或者至少可能只有一个最小值,但是您不知道真正的潜在性能,因为您应用了交叉验证,您只能获得样本量很小的随机样本。性能是一个随机变量,您对期望值感兴趣,但您只能获得k个样本,其中k是折叠数。我认为如果你增加k你的曲线会看起来更平滑。也就是说,即使您的假设总体上很重要,但对于这个特定的集合,可能会有一些奇怪的数据点使随机设置的性能仍然比预期的差。

您建议的方法的问题是您将此噪声视为信号。如果您有一个正态分布的随机变量,则从中采样 1000 次并取最大值,这将远高于真实的预期值。另一种解释可能是它不是噪音,而是您实际上过度拟合。那么你的方法更有意义,如果训练期间围绕它的样本也相对较低,那么这实际上是一个很好的策略,它被称为早期停止,一种不同形式的正则化,通常用于神经网络。

编辑:我认为你是对的,我没有很好地解释这个类比,我们正在尝试优化一个函数 g(x),其中 x 是我们的超参数,g(x) 是一个随机变量函数,假设它有一个真正的基础价值 f(x) 和加性噪声ϵ. 如果ϵ是高斯分布,与基础值相比具有高方差,如果我们取最大值而不看其他任何东西,我们可以取一个有幸运噪声的最大值。我认为我们在您的图表中看到的是相对较高的方差,因为您的数据样本量较小(这意味着您的折叠中的验证集较小),这将导致非凸行为。也就是说,您对早期看到较低验证损失的解释确实意味着过度拟合,早期停止可以提供帮助。