过拟合解决利器-正则化项

正则化(Regularization) 是解决模型过拟合的重要手段之一,正则化是为了防止过拟合, 进而增强泛化能力,使测试集上的表现(或说性能 performance)一样优秀,但是它为什么能解决模型的过拟合问题呢?下面将慢慢展开。

过拟合

在机器学习(ML)中,训练的模型对于训练集和验证集有着优秀的拟合预测能力,但是对于测试集或未见过的样本(Sample),拟合预测能力很差,我们说泛化能力(Generalization)较差,出现了过拟合(Overfitting)。

正则化如何去做

无论是Logistic Regression、SVM或是简单的线性模型,都有一个基函数 ϕ ( ) \phi() ϕ() ,其中有很多参数 w w w 需要通过对损失函数 L o s s Loss Loss 求极小值(或最大似然估计)来确定,求的过程,也就是使用训练集的训练过程:梯度下降到最小值点(或者推导直接求解)。最终,找到最合适的参数来确定模型。
如,一个损失函数(Loss Function)为:
L ( w ) = 1 2 ∑ n = 1 N ( y n − w T ϕ ( x n ) ) 2 (1) L(\mathbf w) =\frac{1}{2} \sum_{n=1}^{N}(y_n-\mathbf w^T \phi (\mathbf x_n))^2 \tag{1} L(w)=21n=1N(ynwTϕ(xn))2(1)
其中, y n y_n yn是真实值, w w w 是权重(需要训练的部分,未知数,即参数), ϕ ( ) \phi() ϕ()是基函数,例如多项式函数,核函数, 1 2 \frac{1}{2} 21 是为了求导时计算方便。
加入正则化项,得到最终的损失函数:
L ( w ) = 1 2 ∑ n = 1 N { y n − w T ϕ ( x n ) } 2 + λ 2 w T w (2) L(\mathbf w)=\frac{1}{2} \sum_{n=1}^{N}\{y_n-\mathbf w^T \phi (\mathbf x_n)\}^2 + \frac{\lambda}{2} \mathbf w^T \mathbf w \tag{2} L(w)=21n=1N{ynwTϕ(xn)}2+2λwTw(2)
其中,(2)式被称为目标函数(评价函数)= 误差函数(损失函数) + 正则化项, λ \lambda λ 是正则化系数, λ 2 w T w \frac{\lambda}{2} \mathbf w^T \mathbf w 2λwTw 还可以写成 λ 2 ∥ w ∥ 2 = w 1 2 + w 2 2 + … + w n 2 \frac{\lambda}{2}\parallel \mathbf w\parallel ^2 = w_{1}^{2}+w_{2}^{2}+\ldots+w_{n}^{2} 2λw2=w12+w22++wn2

因此,用权重(参数)的平方和表示正则化项,仔细想想,它还可以表示模型的复杂度(区别于空间复杂度和时间复杂度,这里的复杂度指参数的多少和大小) 在这种正则化策略中, 我们会对权重的平方和进行惩罚。用 L 2 L2 L2 正则化公式来量化复杂度, 该公式将正则化项定义为所有特征权重的平方和 。这种策略是:尽量选择较小的权重 。也就是使参数小到几乎可以让我们忽略, 同时我们仍能获取正确的训练样本 。

其实,L2正则的作用就是防止参数的值变得过大或过小。可以设想一下, 我们的训练数据很少,实际使用模型进行推断时,有些特征是没见过的,若模型里面参数的值很大,就会造成模型对某一些特别的特征响应过大,导致最终输出的值偏离实际,其实我们更希望模型更从容淡定一些,这就是加入L2 normalization的作用。

一般的,正则化可以表示为:
L ( w ) = 1 2 ∑ n = 1 N { y n − w T ϕ ( x n ) } 2 + λ 2 ∑ j = 1 M ∣ w j ∣ q (3) L(\mathbf w)=\frac{1}{2} \sum_{n=1}^{N}\{y_n-\mathbf w^T \phi (\mathbf x_n)\}^2 + \frac{\lambda}{2} \sum_{j=1}^{M} {\vert w_j \vert}^q \tag{3} L(w)=21n=1N{ynwTϕ(xn)}2+2λj=1Mwjq(3)
其中, M M M是模型的阶次(表现形式是数据的维度),比如 M = 2 M=2 M=2,就是一个平面(二维)内的点, q = 2 q=2 q=2 就是二次正则项。

目前,我们在目标函数添加了两项:

  • 第一项是损失项,我们希望获取正确的样本。可以看出,损失项取决于训练数据。
  • 第二项是正则化项,与数据无关, 它的作用是简化模型 。

目标函数中,使正则化项降低达到限制模型的复杂度,即 M M M 的大小, M M M 是模型的阶次, M M M 越大意味着需要决定的权重越多,模型越复杂。在多项式模型多,直观理解是每一个不同幂次的 x x x 前的系数,0(或很小的值)越多,模型越简单。这就从数学角度解释了,为什么正则化可以限制模型的复杂度,进而避免过拟合。

总结

总之,正则化项量化了模型的复杂度。而复杂度越高,模型对训练集的拟合程度越高,在测试集中的泛化能力可能越低,加入正则化项到目标函数之后,最小化目标函数,不仅使损失函数降低,还相对降低了模型的复杂度,可以简单的理解为两者相互博弈的过程。

【直观详解】什么是正则化

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值