为什么熵作为误差度量会导致过度拟合?

机器算法验证 机器学习 错误 过拟合
2022-03-06 11:12:32

KDnuggets 上的这篇文章引用了John Langford的文章,指出熵和互信息在用作误差度量时会导致过度拟合。你能详细介绍一下吗?

2个回答

我认为这两个损失函数的关键部分是由于它们使用日志,它们是无界的。

也就是说,与x[0,1], 作为x0,logx. 在这里,“脆性”似乎暗示某些记录可能会过度影响损失,因此训练集中(而不是测试集中)中的(少量)这些记录会过度影响损失分数,因此训练的更新参数,导致过拟合。

用于分类交叉熵损失函数n观察和一些参数w, 预测y^和实际值y是:

J(w)=1ni=1n(yilogy^i+(1yi)log(1y^i))

你可以看到,如果一些预测y^k在这方面非常小,那么y^k会过度影响损失,特别是如果真实值yk更接近 1。当然,在这些情况下,该函数试图变得昂贵,但它是无界的,所以 Langford 说对于实际/模型分布的某些组合和一些记录,它异常昂贵,并且还不知道真实分布,这总是有风险的。互信息也存在同样的问题。

类似的问题仍然存在于其他损失函数中,例如 OLS 中的高杠杆点,但它对于有限输入域并不是无界的,并且至少对于 OLS,可以在所有情况下进行测试和处理,例如使用影响矩阵。

任何不惩罚系统复杂性的误差测量都可能导致过度拟合,例如熵。

通常,当您将训练数据拟合到要很好地推广到新数据的模型时,此训练步骤是通过最小化一些错误度量来完成的E(w)这取决于您的参数w(一个包含所有模型参数的向量,这些参数将在训练期间拟合)。

如果您的错误度量只关心更好地拟合您的训练数据,您可能会发现构建具有大量参数(另外可能取任何值)的模型是好的,因为您的模型非常灵活,您的训练数据可以完美学到了。另一方面,如果您的训练数据有噪声(通常是这种情况),您将通过这种方式使您的模型也适合噪声,这就是过度拟合的意义所在。

有一些技术可以避免这种情况,它们统称为“正则化”技术,是最常见的向误差函数添加正则化项的技术,所以现在E(w)=ED(w)+EW(w)在哪里ED是衡量您的适合程度的错误(例如熵)和EW对复杂模型的惩罚(对于具有许多参数或大参数值的模型更大)。