L1、L2正则化的理解

本文从实际理解出发,阐述L1和L2正则化的概念,通过简化公式和实例,解释为何在机器学习中使用它们,以及如何通过拉格朗日乘子将正则化融入深度学习模型优化。重点讲解了L1正则化如何导致稀疏模型和L2正则化的平滑效果,配以直观图形帮助理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

看了好多关于L1、L2 正则化的文章,大多讲的比较正规(一堆数学公式),今天我就从自己的理解角度谈谈我对L1、L2正则化的理解

1、为啥要谈L1、L2 正则化,因为我发现学机器学习和深度学习都避免不了,人家会说正则化,会用一些正则化优化的策略,并且自己还不怎么懂

2、当然学这些避免不了一些基础的公式比如:

  • L1 正则化公式 f ( w ) = ∣ w 1 ∣ + ∣ w 2 ∣ + ∣ w 3 ∣ + ∣ w 4 ∣ + . . . . . . f(w) = |w_1|+|w_2|+|w_3|+|w_4| + ...... f(w)=w1+w2+w3+w4+...... 也就是绝对值之和
  • L2正则化公式 f ( w ) = w 1 2 + w 2 2 + w 3 2 + w 4 2 + . . . . . . f(w) =\sqrt{ w_1^2+w_2^2+w_3^2+w_4^2+...... } f(w)=w12+w22+w32+w42+...... 也就是距离公式 为啥没写成 ( x 1 − y 1 ) 2 (x_1-y_1)^2 (x1y1)2 这种形式,因为深度学习当中我们只关注w即权重所以,要转变下思想(穿个马甲出来也要认识它)
    为了简单起见我们只取 w 1 , w 2 w_1,w_2 w1,w2 所以
    L1正则化的公式 f ( w ) = ∣ w 1 ∣ + ∣ w 2 ∣ f(w)=|w_1|+|w_2| f(w)=w1+w2 图像为:
    在这里插入图片描述
    L2 正则化的公式 f ( w ) = w 1 2 + w 2 2 f(w) = w_1^2+w_2^2 f(w)=w12+w22图像为:
    在这里插入图片描述
  • 拉格朗日数乘公式: f ( w 1 , w 2 , λ ) = f ( w 1 , w 2 ) + λ ϕ ( w 1 , w 2 ) f(w_1,w_2,\lambda) = f(w_1,w_2)+\lambda\phi(w_1,w_2) f(w1,w2,λ)=f(w1,w2)+λϕ(w1,w2) 虽然这里边只有 w 1 , w 2 w_1,w_2 w1,w2但是可以搬到高维上且 f ( w 1 , w 2 ) f(w_1,w_2) f(w1,w2)展开后也是包含平方项的所以这个公式就和我们做深度学习求损失的公式很像了(深度学习求损失的公式一般用均方误差来算)比如YOLOV1中的公式(看不懂不重要,重要的是理解求损失是用平方差求的即可)
    在这里插入图片描述
    所以为了在深度学习中求得最小损失就尽量构造拉格朗日数乘公式。即把拉格朗日数乘公式中的 f ( w 1 , w 2 ) f(w_1,w_2) f(w1,w2)作为深度学习中的损失函数的一部分,把拉格朗日中的 λ ϕ ( w 1 , w 2 ) \lambda\phi(w_1,w_2) λϕ(w1,w2)用L1正则或L2正则替换(也就是在L1,L2正则前乘以 λ \lambda λ)然后根据拉格朗日数乘求解各个参数使得值最优

3对于下图的理解

  • L1正则化图
    在这里插入图片描述
    对于上边这个图,也是他们常用来解释为啥L1正则化能稀疏模型、这个图我刚开始也没看明白为啥最上边的那个交点能稀疏模型,对于稀疏模型,大致意思就是让权重w尽可能多的为零,即在 y = w 1 x + w 2 x 2 + w 3 x 3 + . . . y=w_1x+w_2x^2+w_3x^3+... y=w1x+w2x2+w3x3+...中的w如果有很多0则公式不就简单多了,也就是说模型不就简单多了,这样可以仅使用有价值的特征,所以可以达到特征选择的目的,但是如何让w为0,只有当w在坐标轴上的时候0才最多(需要注意的是上图是个二维图,不是3D,并且不是以彩色图形为中心建立的)这就需要发挥你的想象力虽然下图不是上图的原图,但是可以借鉴
    在这里插入图片描述
  • L2正则化图
    在这里插入图片描述
    对于L2正则化图不容易将w落在坐标轴上,但是只要相切就可以让w权重变小,w越小模型也越简单
    其他的可以参考另一篇博客点击进入
<think>好的,我现在需要帮助用户理解L1和L2正则化的概念及用法。首先,我应该回顾一下自己掌握的知识,确保准确无误。正则化机器学习中用于防止过拟合,L1和L2是两种常见的方法。它们通过在损失函数中添加惩罚项来限制模型参数的大小。 首先,L1正则化,也称为Lasso正则化,添加的是模型权重的绝对值之和作为惩罚项。这会导致一些权重变为零,从而产生稀疏的模型,适用于特征选择。而L2正则化,即Ridge正则化,添加的是权重的平方和,这会使得权重趋向于较小的值但不会完全为零,有助于处理共线性问题。 接下来,用户可能需要知道两者的数学表达式。L1正则化项是$\lambda \sum |w_i|$,而L2的是$\lambda \sum w_i^2$。需要确保使用正确的LaTeX格式,如用户要求的行内公式用$...$,独立公式用$$...$$。 然后,我需要比较两者的区别,比如稀疏性、解的唯一性、计算效率等。例如,L1因为绝对值的性质,更容易产生稀疏解,这在特征数量多的时候很有用。而L2由于平方项,优化时梯度计算更平滑,可能更容易收敛。 还要考虑应用场景,比如L1用于特征选择,L2用于防止过拟合。此外,可以提到弹性网络(Elastic Net)结合了L1和L2的优点。 需要检查是否有遗漏的重要点,比如优化方法的不同。L1由于在零点处不可导,可能需要使用次梯度等方法,而L2可以使用标准的梯度下降。 最后,生成相关问题时要围绕用户可能感兴趣的扩展内容,比如如何选择正则化系数、与其他正则化方法的比较、实际案例等。确保问题有针对性,能引导用户进一步学习。 现在,整合这些信息,按照用户的要求结构化回答,引用相关的文献,并正确标注引用标识。同时,确保语言流畅,用中文表达,避免使用Markdown格式,代码部分用三个反引号包裹。</think>### L1正则化与L2正则化的概念及用法 #### 1. **基本概念** 正则化(Regularization)是机器学习中防止模型过拟合的核心技术,通过在损失函数中添加惩罚项来约束模型参数。L1和L2正则化是最常用的两种方法: - **L1正则化(Lasso正则化)**:向损失函数添加模型权重$w_i$的绝对值之和,公式为: $$ \text{损失函数} + \lambda \sum_{i=1}^n |w_i| $$ 其中$\lambda$是正则化系数,控制惩罚力度[^2][^3]。 - **L2正则化(Ridge正则化)**:添加权重的平方和,公式为: $$ \text{损失函数} + \lambda \sum_{i=1}^n w_i^2 $$ 同样通过$\lambda$调节正则化强度[^2]。 #### 2. **核心区别** | 特性 | L1正则化 | L2正则化 | |---------------|------------------------------|------------------------------| | **稀疏性** | 产生稀疏解(部分权重为0)[^4] | 权重趋近于小值但不为0 | | **解的唯一性**| 可能多解(非严格凸) | 唯一解(严格凸) | | **计算效率** | 需特殊优化方法(如坐标下降) | 梯度下降可直接优化 | | **抗噪声能力**| 对异常值敏感 | 对异常值更鲁棒 | #### 3. **应用场景** - **L1适用场景**: - 特征选择:通过稀疏性筛选重要特征(如高维数据)。 - 解释性要求高的模型(如医学诊断)。 - **L2适用场景**: - 处理共线性问题(如线性回归中特征高度相关)。 - 防止过拟合的通用场景(如神经网络、逻辑回归)。 #### 4. **代码示例(线性回归)** ```python # L1正则化(Lasso回归) from sklearn.linear_model import Lasso model_l1 = Lasso(alpha=0.1) # alpha对应λ # L2正则化(Ridge回归) from sklearn.linear_model import Ridge model_l2 = Ridge(alpha=0.1) ``` #### 5. **参数选择建议** - 通过交叉验证(如GridSearchCV)选择最优$\lambda$。 - 实践中可结合两者(Elastic Net):$$ \text{损失函数} + \lambda_1 \sum |w_i| + \lambda_2 \sum w_i^2 $$
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值