机器学习面试:L1和L2为什么可以防止过拟合

本文探讨了过拟合的概念,以及如何通过L1和L2正则化提高模型的泛化能力。L1正则化倾向于产生稀疏权重,使部分参数变为0;L2正则化则使权重值趋向于0,两者通过约束参数大小,降低模型复杂度,从而防止过拟合。正则化超参数λ和C的调整影响模型的拟合状态,找到合适的平衡点是关键。
摘要由CSDN通过智能技术生成

什么是过拟合

过拟合这个意思其实就是提高泛化能力,我们在训练集上整了一个极其复杂的模型,准确率高达99.9999%,但是当把这个模型应用到测试集上的时候,准确率跌到了0.0001%,这种情况就称为过拟合或者说模型的泛化能力差。
过拟合

怎么提高泛化能力

看了很多关于L1和L2的文章,上来就是各种数学推导,还有不明所以的图片,L1让参数变为0,L2让参数趋向于0,这怎么就可以提高泛化能力,防止过拟合呢?推导是看明白了,但是心底的疑问依然没有解答。

为什么参数减少了就能防止过拟合
为什么参数减少了就能防止过拟合
为什么参数减少了就能防止过拟合

我就想啊,假如咱们训练了一个很复杂的模型(想想深度神经网络),训练集和测试集精确率都非常高,上线的结果也非常的漂亮,我为什么还要减少参数个数呢?上百的logstic回归达到了80%的精度,上万个参数的神经网络达到在测试集上达到了95%的精度,我会选择参数少的logstic吗?所以我在想,好像并不是说参数越少模型的泛化能力就越高,这是一个充分不必要条件。如果一定要说减少参数可以防止过拟合,这个前提是同一个模型下

为什么约束参数可以防止过拟合

为什么模型可以进行预测。训练集和测试集是同分布的,我们在训练集学到的模型就可以应用到测试集上,但是训练集通常是有限的,数据是离散的,这就导致我们会学到各种各样的模型,下面的回归模型,可以构建各种高阶多项式进行拟合,单从训练集上根本看不出哪一种模型好,哪一种模型坏(高维的情况你还能知道选择哪一个?)。但是如果让你选,你会选择哪一个呢?很多人应该都会选择第二个(人工基本不太可能筛选高维模型,这里是简化),老实讲,因为觉得光滑,自然界中大多数样本都是光滑的,样本之间不太可能有很大的波动,说成数学语言就是,导数不大

过拟合就是拟合函数需要顾忌每一个点,最终形成的拟合函数波动很大。在某些很小的区间里,函数值的变化很剧烈。这就意味着函数在某些小区间里的导数值(绝对值)非常大,由于自变量值可大可小,所以只有系数足够大,才能保证导数值很大。我们没有办法约束样本,但是可以通过约束参数(正则化)使其不要太大,所以可以在一定程度上是模型更加平滑,减少过拟合情况

离散数据导致学习到不同的模型
我也看到了很多用结构风险最小化来解释的。但还是不太能接受,结构化风险依然没有说明为什么复杂度小的模型会对测试集有较好的预测结果(看看最后的疑问)

L1和L2正则化

上面假设了,自然界中模型是趋于光滑的,梯度变化不会很大,这样可以通过约束参数使得梯度改变的不大(不知怎么的,就想到了梯度爆炸和梯度消失),即 ∑ ∣ w ∣ ⩽ C \sum |w| \leqslant C wC或者 ∑ w 2 ⩽ C \sum w^2 \leqslant C w2C,哈哈,这样就变成求约束极值的问题了。
在这里插入图片描述
把约束当成一个架子,架子上面呢有一个可以移动小球,函数的中心可以当成一个磁铁,这个磁铁在狠狠的吸引铁球,最后铁球就会一点点被拽到平衡的位置,对于L1呢,架子是方的,很容易被拽到顶角,然后停下,当然呢,如果架子中心和磁铁的连线正好与边锤子,这个时候就拽不动了,这个时候权重就不为0了。对于L2,架子是圆的,被拽到的平衡位置是圆的中心与函数的中心一条线的位置。(这个其实就是KKT求解的图,我后面放上去)
在这里插入图片描述
左边是L1,右边是L2。可以看到L1附加的梯度值是 η λ n s i g n ( w ) = ± η λ n \eta \frac{\lambda}{n}sign(w)=\pm\eta \frac{\lambda}{n} ηnλsign(w)=±ηnλ,与权重无关,是一个固定的值(常数),这在更新梯度的时候就会非常的快。而L2的梯度值为 η λ n w \eta \frac{\lambda}{n}w ηnλw,相当于每次减少权重的一个比例值,权重越小,减的值也越小,更新的也越慢。
在这里插入图片描述

正则化超参数的意义

下面这个图很好的解释了超参数的意义,以L2为例
∑ w 2 ⩽ C \sum w^2 \leqslant C w2C
C的大小代表圆的半径大小,C越大,圆越大。若 λ 很小,对应]C 值就很大。这时候,圆形区域很大,能够让 w 更接近 f ( w ) f(w) f(w)最优解的位置。若 λ 近似为 0,相当于圆形区域覆盖了最优解位置,这时候,正则化失效,容易造成过拟合。相反,若 λ 很大,对应上文中的 C 值就很小。这时候,圆形区域很小, w w w f ( w ) f(w) f(w) 最优解的位置较远。w 被限制在一个很小的区域内变化,w 普遍较小且接近 0,起到了正则化的效果。但是,λ 过大容易造成欠拟合。欠拟合和过拟合是两种对立的状态。
在这里插入图片描述
关于 λ \lambda λ和C的关系,准确来讲L1和L2的正则化为
L = f ( w ) + λ 2 n ∑ w 2 L=f(w)+\frac{ \lambda}{2n}\sum w^2 L=f(w)+2nλw2
为了使L达到最小,可以想想 λ \lambda λ为0,这个时候其实根本就没有正则化,此时的 C C C一定非常大, λ \lambda λ如果很大,这个时候正则化项就会非常的小,可以想想此时的 C C C一定很小,(因为 w w w肯定在圆上)

疑问

  1. 为什么复杂度低的模型有更好的泛化能力
    训练集和测试集满足同样的分布,但是训练的时候模型只学了训练集的分布,复杂度高的模型会将噪声也覆盖,导致在测试集上效果变差(其实我还是不明白,测试集上不是也有噪声吗,既然在训练集上将样本分的那么好,为什么测试集就分不好了。还是说因为训练集是有限的,我们学到的其实是总体数据的部分分布情况,导致噪声对模型有很大的影响)

l1 相比于 l2 为什么容易获得稀疏解?
L3和L4正则化
【通俗易懂】机器学习中 L1 和 L2 正则化的直观解释
为什么L1和L2正则化可防止过拟合
详解风控场景下分类模型算法(2)- 多重共线性、正则化和过拟合 - Jiecheng Zhao的文章 - 知乎

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值