机器学习中L1,L2范数的理解

监督机器学习的目标无非是“在规则化参数的同时最小化误差”。最小化误差是为了让我们的模型拟合我们的训练数据,而规则化参数则是为了防止我们的模型过分拟合训练数据,从而导致模型泛化能力差。规则项的引入相当于模型中加入了先验知识,让模型往我们想要的方向发展,例如稀疏,低秩,平滑等。
一般来说,监督学习可以看做最小化下面的目标函数:
ω ∗ = a r g m i n w ∑ i L ( y i , f ( x i , ω ) ) + λ Ω ( ω ) \omega^{*}=argmin_w\sum_{i}L(y_{i},f(x_{i},\omega))+\lambda\Omega(\omega) ω=argminwiL(yi,f(xi,ω))+λΩ(ω)
第一项是损失函数,常见的有均方误差函数,交叉熵函数,而第二项就是规则化函数。常见的是L1正则项和L2正则项,也称L1和L2范数。

L0和L1范数

L0范数的数学表达式是
∥ χ ∥ 0 = ∑ i = 0 n x i 0 0 \lVert\chi\rVert_{0}=\sqrt[0]{\sum_{i=0}^nx_{i}^0} χ0=0i=0nxi0
零的开方是什么东东?在实际中,L0范数本身不容易有一个好的数学表示形式。L0范数并不是一个真正的范数,它主要被用来度量向量中非零元素的个数,换句话说,就是让参数w稀疏。但是,L0范数很难优化求解(NP难问题)。而L1范数是L0范数的最优凸近似,而且它比L0范数要容易优化求解。
L1范数是指向量中各个元素绝对值之和,其数学表达式是
∥ χ ∥ 1 = ∑ i = 0 n ∣ x i ∣ \lVert\chi\rVert_{1}=\sum_{i=0}^n|x_{i}| χ1=i=0nxi
它和L0参数一样可以实现参数稀疏。
那为什么要那么执着于稀疏呢?

1)特征选择(Feature Selection):

大家对稀疏规则化趋之若鹜的一个关键原因在于它能实现特征的自动选择。一般来说,xi的大部分元素(也就是特征)都是和最终的输出yi没有关系或者不提供任何信息的,在最小化目标函数的时候考虑xi这些额外的特征,虽然可以获得更小的训练误差,但在预测新的样本时,这些没用的信息反而会被考虑,从而干扰了对正确yi的预测。稀疏规则化算子的引入就是为了完成特征自动选择的光荣使命,它会学习地去掉这些没有信息的特征,也就是把这些特征对应的权重置为0。

2)可解释性(Interpretability):

另一个青睐于稀疏的理由是,模型更容易解释。例如患某种病的概率是y,然后我们收集到的数据x是1000维的,也就是我们需要寻找这1000种因素到底是怎么影响患上这种病的概率的。假设我们这个是个回归模型:y=w1x1+w2x2+…+w1000x1000+b(当然了,为了让y限定在[0,1]的范围,一般还得加个Logistic函数)。通过学习,如果最后学习到的w就只有很少的非零元素,例如只有5个非零的wi,那么我们就有理由相信,这些对应的特征在患病分析上面提供的信息是巨大的,决策性的。也就是说,患不患这种病只和这5个因素有关,那医生就好分析多了。但如果1000个wi都非0,医生面对这1000种因素,累觉不爱。

L2范数

在实际应用中,对于解决过拟合问题,更多应用的是L2范数。如果有人说到“岭回归”(Ridge Regression),或者“权值衰减”(weight decay),他们都在说一样东西。其数学表达式是:
∥ χ ∥ 2 = ∑ i = 0 n x i 2 \lVert\chi\rVert_{2}=\sqrt{\sum_{i=0}^nx_{i}^2} χ2=i=0nxi2
那添加L2范数有什么用呢?通常情况中认为如果系数小的话,模型比较简单,能适应更多的模型,从而减少过拟合现象。而如果系数一旦很大的话,那么数据只要偏移一点点,那么结果就会差很多;与此同时,如果系数比较小的话,数据偏移一些几乎不会对结果有什么影响。所以,L2范数就是为了让参数w变小,不同于L1范数直接让参数w变0,L2范数倾向于将参数接近0,但不为0.
在sklearn中,优化方法中newtom-cg(牛顿法的延伸),sag(随机平均梯度下降)和lbfgs(拟牛顿法的一张)只支持L2正则项。

参考资料:

  1. 周志华,西瓜书P252-254
  2. 机器学习中正则化项L1和L2的直观理解: https://blog.csdn.net/jinping_shi/article/details/52433975
  3. 机器学习中的范数规则化之(一)L0、L1与L2范数:https://www.cnblogs.com/weizc/p/5778678.html
  4. 范数(norm) 几种范数的简单介绍:https://blog.csdn.net/a493823882/article/details/80569888
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值