为什么需要在机器学习问题中使用正则化?

Dem*_*dge 7 statistics classification machine-learning mathematical-optimization regularized

这似乎是一个愚蠢的问题,但我无法得出一个合理的答案.

据说正则化可以帮助我们获得复杂的模型以避免过度拟合.但对于线性分类问题:

f(x) = Wx
Run Code Online (Sandbox Code Playgroud)

模型的复杂性有些明确:它是线性的,而不是二次的或更复杂的.那么为什么我们仍然需要对参数进行正则化?为什么在这种情况下我们更喜欢较小的重量?

Ami*_*mir 4

随着您想要训练模型的样本数量的增加或模型复杂性的降低,对模型进行正则化的需求往往会越来越少。然而,训练没有(或具有非常非常小的正则化效应)的模型所需的示例数量随着模型中继承的参数数量和可能的其他一些因素呈指数增长。

\n\n

由于在大多数机器学习问题中,我们没有所需数量的训练样本或者模型复杂度很大,因此我们必须使用正则化来避免或减少过度拟合的可能性。直观上,正则化的工作方式是引入一个惩罚项,其中argmin\xe2\x88\x91L(desired,predictionFunction(Wx))L一个损失函数,用于计算模型的预测与期望目标的偏差程度。所以新的损失函数就变成了argmin\xe2\x88\x91L(desired,predictionFunction(Wx)) + lambda*reg(w)其中reg是正则化的一种类型(例如squared L2),lambda是控制正则化效果的系数。然后,自然地,在最小化成本函数的同时,权重向量被限制为具有较小的平方长度(例如squared L2 norm)并收缩到零。这是因为权重向量的平方长度越大,损失就越高。因此,权重向量还需要在优化运行时补偿模型损失的降低。

\n\n

现在想象一下,如果删除正则化项 (lambda = 0)。然后模型参数可以自由地具有任何值,因此无论您有线性还是非线性模型,权重向量的平方长度都可以增长。这给模型的复杂性增加了另一个维度(除了参数数量之外),并且优化过程可能会找到可以与训练数据点完全匹配的权重向量。然而,当暴露于看不见的(验证或测试)数据集时,模型将无法很好地概括,因为它已经过度拟合训练数据。

\n