向损失函数添加模型复杂性惩罚是否允许您跳过交叉验证?

人工智能 机器学习 过拟合 正则化 交叉验证 容量
2021-10-28 21:35:35

我的理解是选择小型模型,即拥有一个多目标函数,您可以在其中优化模型的准确性和简单性,自动处理过度拟合数据的危险。

我有这个权利吗?

如果我的用例能够跳过冗长的交叉验证过程,那将非常方便。

1个回答

我的理解是选择小型模型,即拥有一个多目标函数,您可以在其中优化模型的准确性和简单性,自动处理过度拟合数据的危险。

有点。次要目标函数通常用作正则化的一种形式,并且可以减少过拟合。

然而,这种正则化并不是灵丹妙药。您实现的正则化程度会有所不同,它可能取决于正则化技术中的超参数。在您的情况下,模型的准确性和简单性的目标函数的相对权重将有一个最佳点,可以最大限度地减少过度拟合,而不会影响太多和欠拟合。

如果我的用例能够跳过冗长的交叉验证过程,那将非常方便。

通常使用正则化需要交叉验证,以便为您的正则化超参数找到合适的值。如果您选择的正则化技术非常适合您的问题,那么您可能不必搜索太多 - 可能有一组广泛的值适合您。

反过来,一个好的正则化选择可能意味着您的模型的准确性对模型的其他超参数不太敏感,因此搜索准确的模型变得容易一些。

然而:

向损失函数添加模型复杂性惩罚是否允许您跳过交叉验证?

不。假设您想找到性能最佳的模型,您仍然需要执行交叉验证。充其量你可能不得不比没有额外目标的情况下执行得少一点,因为它已经稳定了你的模型对抗可能影响泛化的其他因素。但是,您可能必须执行更多的交叉验证,至少在开始时,才能确定您添加到次要目标的新相对加权超参数的有用值。此外,新的简单性目标函数可能会改变其他超参数的最佳选择,例如自由参数的数量、学习率和训练时间长度。

如果您之前在训练的每个 epoch 之后执行交叉验证,并在 cv 集上给出最佳准确度的 epoch 之后选择最佳模型,那么这通常被认为是另一种形式的正则化,称为early stopping您可能会发现您可以在训练期间放松这一点并减少测试频率,因为通过基于复杂性目标的正则化,训练将趋向于更稳定的终点,并且不太可能通过额外的训练时期过度拟合。尽管根据我的经验,训练期间的交叉验证通常默认开启,以便绘制学习曲线并确保这种稳定性真正成立。