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

时间:2016-01-14 13:51:37

标签: machine-learning statistics classification mathematical-optimization regularized

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

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

f(x) = Wx

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

3 个答案:

答案 0 :(得分:4)

随着您增加要训练模型的样本数量或降低模型的复杂性,对模型进行规范化的需求将越来越少。然而,在没有(或具有非常小的正则化效应)的情况下训练模型所需的示例的数量随着参数的数量以及可能在模型中继承的一些其他因素而指数地增加[超级]。

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

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

答案 1 :(得分:0)

在机器学习模型中,正则化用于解决过度拟合的问题,即训练误差和测试误差之间的差异太大时。谈到逻辑模型(例如逻辑回归),该模型在您的训练数据上可能会表现出色,并且正试图以如此高的精度预测每个数据点。这种情况会导致数据过度拟合,因为您的模型可能还会拟合离群值,这可能会给模型造成巨大麻烦。

enter image description here

此链接显示带有l2正则化器的逻辑回归方程,该正则化器具有有助于降低损失部分影响的lambda参数,但lambda的值不应过高,因为这将导致拟合不足,最终您的模型将变得愚蠢。

答案 2 :(得分:0)

使用正则化的主要原因是为了克服过拟合的问题。当您的模型很好地拟合数据时,即也捕获所有噪声时,正则化会惩罚权重。您可以在 Reference

中阅读更多内容并获得有关实现细节的数学直觉