正则化与L0,L1,L2范数简介

本文介绍了机器学习中常见的范数,如L0、L1和L2范数,以及它们在模型正则化中的应用。L1范数(Lasso回归)通过产生稀疏解来进行特征选择,防止过拟合,而L2范数(Ridge回归)则通过使模型参数更小但不为零来规则化模型,保持模型稳定性。正则化是平衡模型复杂度与泛化能力的重要手段,遵循奥卡姆剃刀原理,防止过拟合。L1正则化相比于L2更容易得到稀疏解,适合特征选择。

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

参考:机器学习中的范数规则化之(一)L0、L1与L2范数

1. 常见的范数

1.1 L0 范数

向量中非零元素的个数,即稀疏度,适合稀疏编码,特征选择。

1.2 L1 范数

又叫曼哈顿距离或最小绝对误差,向量中各个元素绝对值之和,也叫“稀疏规则算子”。

1.3 L2 范数

又叫欧式距离,向量中各元素平方和再开方

L1 范数相当于给模型参数\theta设置一个拉普拉斯先验分布;L2范数相当于给模型参数\theta设置一个均值为0的高斯先验分布。

1.4 针对线性回归问题怎么选择惩罚项?

通过缩减回归系数避免过拟合问题。

L1 范数(Lasso回归)

1. 特征选择(将某些系数缩减为0)

2. 防止过拟合。

L2 范数(Ridge回归)

1. 规则化,让优化求解变得更稳定快速;

2. 防止过拟合。

2. 正则化

2.1 正则化作用

在经验风险与模型复杂度之间做平衡(选择二者同时较小的模型),防止过拟合,提高模型泛化能力。

结构风险 = 经验风险 (模型关于训练样本集的平均损失)+ 正则化项

R(f)=\frac{1}{n}\sum_{i=1}^{n}L(y_{i},f(x_{i}))+\lambda \Omega (f)

其中lambda为正则化参数

正则化是结构风险最小化策略的实现,通过在经验风险上加上(表示模型复杂度的)正则化项或惩罚项,达到选择经验风险与模型复杂度同时较小模型的目的。(对参数做惩罚,让拟合曲线变得更圆滑,有更强的泛化能力)。

广义上的正则化技术:能够显著减少方差,而不过度增加偏差的策略。

偏差小说明模型对现有数据集拟合得好,误差小,此时模型一般较为复杂,存在过拟合的可能;

方差小说明模型(不太复杂)比较简单,具有较好的泛化能力。

模型Error = Bias(精准度) + Variance(稳定性),反映整个模型的准确度。

Bias: 模型在样本上的输出与真实值间的误差。

Variance: 模型每一次输出结果与输出期望之间的误差。

正则化的作用就是适当的控制模型复杂度,从而使泛化误差曲线取最小值。

2.2 正则化常用方法

L1,L2,扩增数据集,早停,Dropout,集成学习,多任务学习,对抗训练,参数共享等。

其中L1,L2属于对范数做惩罚;Dropout是正则化的一种方法,原理类似bagging。

2.3 相关原理

奥卡姆剃刀原理:在所有可能选择的模型中,我们应该选择能够很好解释已知数据并且十分简单的模型。

NFL(没有免费午餐原理): 在所有问题同等重要的前提下,无论哪种学习算法,它们的期望性能都是相同的。

3. L0 与L1 正则化的区别

L0 范数本身是特征选择的最理想方案,但因其很难优化求解(通常是NP难问题)。因此实际中我们使用L1来得到L0的最优凸近似,求取稀疏解。对于L1范数,由于|w|在0处不可导,但为可去间断点,可以通过补充该点的定义解决。

L0和L1正则可以得到稀疏解,而L2不能,且参数优化速度L1快于L2,但L2更容易理解,计算方便(一般不对参数b 进行正则,因为它没有和数据有直接乘法交互)。

稀疏性(sparsity)问题本质上对应了L0范数的优化,这在通常条件下是NP难问题。

LASSO通过L1范数来近似L0范数,是求取稀疏解的重要技术。

L1 会趋向于产生少量的feature,而其他feature都为0;L2则会选择更多的特征,这些特征都会接近于0。当遇到两个对预测有帮助的feature时,L1倾向于选择一个更大的feature,而L2更倾向于把两者结合起来。

让L2范数的正则项||w||^{2}最小,可以使w的每个元素都很小,接近于0,但不会像L1那样让它=0,L2相对于L1具有更为平滑的特性,因此在模型预测中往往比L1具有更好地预测特性。

 L1 给出的最优解w*更加靠近某些轴,而其它轴为0。所以L1能使得到的参数稀疏化,“可解释性”也好;L2的w*更加靠近原点。

4. L1 正则化为什么更容易获得稀疏解?

L1、L2常被用来解决过拟合问题,而L1还可以用于特征选择,因为L1会使得较多的参数为0,从而产生稀疏解,将0对应的feature遗弃,进而用来特征选择。

假设只有一个参数w,损失函数为L(w),分别加上L1、L2正则化项后有:

J_{L1}(w)=L(w)+\lambda |w|

J_{L2}(w)=L(w)+\lambda w^{2}

假设L(w)在0处的导数为d_{0},即\frac{\partial L(w)}{\partial w}|_{w=0}=d_{0}

\frac{\partial J_{L_{2}}(w)}{\partial w}|_{w=0}=d_{0}+2\lambda w|_{w=0}=d_{0}

\frac{\partial J_{L_{1}}(w)}{\partial w}|_{w=0^{-}}=d_{0}-\lambda

\frac{\partial J_{L_{1}}(w)}{\partial w}|_{w=0^{+}}=d_{0}+\lambda

易知:

当引入L2正则时,代价函数在0处的导数仍是d_{0}

而引入L1正则后,代价函数在0处的导数有一个突变,从d_{0}-\lambdad_{0}+\lambda,若d_{0}-\lambdad_{0}+\lambda异号,则在0处会是一个极小值点。

因此优化时,很可能优化到该极小值点上,即w=0处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值