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

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

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

f(x) = Wx

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


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

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

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

链接地址: http://www.djcxy.com/p/89695.html

上一篇: Why there is the need of using regularization in machine learning problems?

下一篇: AngularJS and ASP.Net WebAPI Social Login on a Mobile Browser