正则化惩罚项, L 1 L1 L1和 L 2 L2 L2正则
Regularize penalty items L 1 L1 L1 and L 2 L2 L2
为什么要引入正则化惩罚项?
在训练数据不够多时,或者过度训练模型( o v e r t r a i n i n g overtraining overtraining)时,常常会导致过拟合( o v e r f i t t i n g overfitting overfitting)。正则化方法即为在此时向原始模型引入额外信息,以便防止过拟合和提高模型泛化性能的一类方法的统称,这就引入了正则化惩罚项。在实际中,最好的拟合模型(从最小化泛化误差的意义上来说)是一个适当正则化的模型。
L 1 L1 L1正则
L 1 L1 L1参数正则化通过向目标函数添加一个正则项 Ω ( θ ) = ∣ ∣ w ∣ ∣ 1 = ∑ i ∣ w i ∣ Ω(\theta)=||w||_1 =\sum_{i}|w_i| Ω(θ)=∣∣w∣∣1=∑i∣wi∣。
同时通过缩放惩罚项 Ω Ω Ω的正超参数 α \alpha α来控制 L 1 L1 L1权重衰减的强度,那么正则化的目标函数为
f ( w ; X , y ) = α ∣ w 1 ∣ + J ( w ; X , y ) f(w;X,y) = \alpha|w_1|+J(w;X,y) f(w;X,y)=α∣w1∣+J(w;X,y)
对应的梯度就变为
▽ w f ( w ; X , y ) = α s i g n ( w ) + ▽ w J ( w ; X , y ) \bigtriangledown _wf(w;X,y) = \alpha sign(w)+\bigtriangledown _wJ(w;X,y) ▽wf(w;X,y)=αsign(w)+▽wJ(w;X,y)
其中 s i g n ( w ) sign(w) sign(w)只是简单地取 w w w的正负号,当 w ≥ 0 w\ge0 w≥0时, s i g n ( w ) = w sign(w) = w sign(w)=w,当 w < 0 w<0 w<0时 s i g n ( w ) = − w sign(w)=-w sign(w)=−w
L 1 L1 L1范数的作用
- 稀疏参数,进行特征选择。 L 1 L1 L1范数是指向量中各个元素绝对值之和。它是 L 0 L0 L0范数的最优凸近似。任何规则化的算子,如果他在 w i = 0 w_i=0 wi=0的地方不可微,并且可以分解为一个”求和“的形式,那么这个规则化算子就可以实现稀疏。 w w w的 L 1 L1 L1范数是绝对值, ∣ w ∣ |w| ∣w∣在 w = 0 w=0 w=0处是不可微的,这就实现了稀疏。一般来说, X X X的大部分元素也就是特征都是和最终的输出结果没有关系或者不提供任何信息的,在最小化目标函数即损失函数的时候考虑这些额外的特征值虽然可以获得更小的训练误差,但是在预测新样本的时候也会被考虑到,这样就干扰了对结果的预测。将参数稀疏化之后就可以完成特征自动选择的任务,它会学习地去掉这些没有信息的特征,也就是把这些特征对于的权重置0.
- 稀疏参数,使得模型更容易解释。当一个模型的参数很多时候,例如, y = w 1 x 1 + w 2 x 2 + . . . . . . + w 1000 x 1000 y = w_1x_1+w_2x_2+......+w_{1000}x_{1000} y=w1x1+w2x2+......+w1000x1000,那么当我们想解释这1000个特征因素对结果的影响时候无疑是很困难的。但是假如通过学习,最后得到的参数只有很少几个,例如只有5个非零特征,那么我们就有理由相信,这些对应的特征对结果的影响是决定性的。那么此时再解释这个模型中的5个特征因素对结果的影响时就容易多了。例如:医生解释病人患病的原因,西瓜最后是好瓜还是坏瓜。
L 2 L2 L2正则
L 2 L2 L2参数正则化通过向目标函数添加一个正则项 Ω ( θ ) = 1 2 ∣ w ∣ 2 \begin{aligned}Ω(\theta) = \frac{1}{2}|w|^2\end{aligned} Ω(θ)=21∣w∣2,使得权重更接近原点, L 2 L2 L2的参数正则化方法也叫作权重衰减,同时也可以通过缩放惩罚项的正超参数 α \alpha α来控制 L 2 L2 L2权重衰减的强度,那么正则化的目标函数为
f ( w ; X , y ) = 1 2 w T w + J ( w ; X , y ) \begin{aligned}f(w;X,y) = \frac{1}{2}w^Tw + J(w;X,y)\end{aligned} f(w;X,y)=21wTw+J(w;X,y)
对应的梯度就变为
▽ w f ( w ; X , y ) = α w + ▽ w J ( w ; X , y ) \bigtriangledown_wf(w;X,y) = \alpha w + \bigtriangledown _wJ(w;X,y) ▽wf(w;X,y)=αw+▽wJ(w;X,y)
那么使用梯度下降更新权重
w ′ = w − l e a r n i n g _ r a t e ( ▽ w f ( w ; X , y ) ) = w − l e a r n i n g _ r a t e ( α w + ▽ w J ( w ; X , y ) ) = ( 1 − l e a r n i n g _ r a t e α ) w − l e a r n i n g _ r a t e ▽ w J ( w ; X , y ) w' = w - learning\_rate(\bigtriangledown _wf(w;X,y)) = w - learning\_rate(\alpha w + \bigtriangledown _wJ(w;X,y))\\= (1-learning\_rate \alpha)w - learning\_rate\bigtriangledown _wJ(w;X,y) w′=w−learning_rate(▽wf(w;X,y))=w−learning_rate(αw+▽wJ(w;X,y))=(1−learning_rateα)w−learning_rate▽wJ(w;X,y)
可以看到加入权重衰减后,在每步执行梯度更新之前先进行收缩权重,将权重向量乘以一个常数 α \alpha α,因为 α , l e a r n i n g _ r a t e \alpha,learning\_rate α,learning_rate都是大于 0 0 0的数,因此相对于不加正则化的模型,正则化之后的模型权重在每次更新之后的值要更小。
L 2 L2 L2范数的作用
- 权值衰减,改善机器学习的过拟合。过拟合就是模型训练时候的误差很小,但是在测试的时候误差很大,泛化能力很弱,对于新样本适应能力很差。就像学生学习和考试,平时只是背诵知识,固定题型,没有学会解决问题的一般能力,考试时候很差。
- L 2 L2 L2范数是指向量各元素的平方和然后求平方根。我们可以给 L 2 L2 L2范数的规则项乘以一个系数 α \alpha α,使得每个权重都很小,都接近于0,但是与 L 1 L1 L1范数不同,它不会让它等于0。越小的参数模型越简单,越简单的模型则越不容易产生过拟合。可以理解为因为限制了参数很小,实际上就是限制了多项式某些分量的影响很小,这样就相当于减少参数个数。
L 1 L1 L1与 L 2 L2 L2的区别
L2正则化 | L1正则化 |
---|---|
计算效率高(因为有解析解) | 在非稀疏情形下计算效率低 |
非稀疏输出 | 稀疏输出 |
无特征选择 | 内置特征选择 |
二次下降 | 一次下降 |
- 就计算效率而言
L 1 L1 L1范数没有一个解析解,但是 L 2 L2 L2范数有。这就允许 L 2 L2 L2范数在计算上能够高效的计算。然而, L 1 L1 L1范数的解具有稀疏性,这就使得它可以使用稀疏算法,以使得计算更加的高效。
- 就稀疏性而言
稀疏性指的是一个举证或向量中只有少数的项是非0的。 L 1 L1 L1的范数具备产生许多0或非常小的系数和少量大的系数
- 就特征选择而言
L 1 L1 L1范数可以用来提取有用信息,即那些有用的特征,而 L 2 L2 L2范数并不具备。
- 就下降速度而言
将权值参数传递给 L 1 L1 L1或者 L 2 L2 L2代价函数时,模型就会尝试最小化这些权值参数。而这些最小化更新权值参数的过程就像是一个下坡的过程,但是这个坡的坡度是不一样的, L 1 L1 L1是按照绝对值的坡下降的,而 L 2 L2 L2是按二次函数的坡下降的。显然 L 1 L1 L1的下降速度要比 L 2 L2 L2的下降速度快,所以会非常快的降到0。