L1正则化——为什么具有稀疏性呢?

在这里插入图片描述
在这里插入图片描述



L1正则化具有稀疏性的原因主要是由于它的优化性质和几何解释:

  1. L1正则化的优化性质:L1正则化的损失函数包含参数的绝对值之和作为正则化项。在优化过程中,当正则化参数 λ \lambda λ足够大时,优化算法会倾向于将一些参数的值减小到零,因为这样可以最小化整体的损失函数。而绝对值函数的导数在零点处不连续,这使得优化过程中某些参数很容易变成零,从而产生稀疏性。

  2. 几何解释:在参数空间中,L1正则化的等值线是由参数的绝对值之和构成的菱形。在优化过程中,模型的参数向量在参数空间中往往会落在菱形的顶点处,这些顶点恰好对应着某些参数为零的情况,因此导致了参数的稀疏性。

在这里插入图片描述

因此,由于L1正则化的优化性质和几何解释,它能够促使模型的参数向量在优化过程中趋向于稀疏化,从而实现特征选择和模型简化的效果。




总结

首先,L1正则化的正则化项是权重向量的绝对值之和。在优化过程中,这个正则化项会引导模型尽量将某些权重压缩为零。这是因为最小化L1正则化项(即权重向量的绝对值之和)的过程中,优化算法会倾向于让不太重要的权重趋于零。

其次,从几何角度来看,L1正则化在优化过程中用一个菱形去逼近目标。这种逼近方式使得L1正则化更容易在坐标轴和目标相交,因此更容易得到稀疏解,即权重向量的某些分量可能为零。

### Python中L1正则化和L2正则化的实现及区别 #### L2 正则化(Ridge) 在机器学习模型训练过程中加入L2正则化可以防止过拟合。对于线性回归而言,在损失函数基础上增加权重参数平方之和作为惩罚项,即: \[ J(\theta) = MSE(\theta) + \alpha\sum_{i=1}^{n}\theta_i^2 \] 其中 \(MSE\) 表示均方误差,\( n \) 是特征数量,而超参数 \( \alpha \geq 0 \) 控制着正则化的强度[^1]。 下面是一个简单的例子来展示如何在Python中应用L2正则化: ```python from sklearn.linear_model import Ridge import numpy as np X = np.array([[0, 0], [1, 1]]) y = np.array([0, 1]) ridge_reg = Ridge(alpha=0.5) ridge_reg.fit(X, y) print(ridge_reg.coef_) ``` #### L1 正则化(Lasso) 不同于L2正则化,L1正则化通过绝对值形式引入稀疏性的特点使得某些系数变为零从而达到变量选择的效果。其对应的代价函数表达式如下所示: \[ J(\theta)=M S E(\theta)+\alpha\|\theta\|_1=\frac{1}{m} \sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})^2+\alpha\sum_{j=1}^{n}\left|\theta_j\right| \] 这里同样有超参α用于调整正则力度大小. 下面是利用scikit-learn库中的`Lasso`类来进行L1正则化的实例代码片段: ```python from sklearn.linear_model import Lasso lasso_reg = Lasso(alpha=0.5) lasso_reg.fit(X, y) print(lasso_reg.coef_) ``` #### 实现差异对比 主要体现在两个方面:一是数学公式的不同;二是实际效果上的差别——L1倾向于产生更少但是更大的权值估计,并可能使一些不重要的输入特性对应于完全消失的权重;相反地,L2会均匀缩小所有的权重但不会让它们变成确切意义上的零。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值