机器学习中正则化项的理解

一、引子

装逼1:监督机器学习问题无非就是“minimize your error while regularizing your parameters”,也就是在规则化参数的同时最小化误差。最小化误差是为了让我们的模型拟合我们的训练数据,而正则化是防止我们的模型过分拟合我们的训练数据。

装逼2:有几种角度来看待正则化(Regularization),它符合奥卡姆剃刀(Occam’s razor)原理:在所有可能选择的模型中,能够很好地解释已知数据并且十分简单的才是最好的模型。从贝叶斯估计的角度来看,正则化项对应于模型的先验概率。从风险的角度,正则化是结构风险最小化策略的实现,是在经验风险上加一个正则化项(regularizer)或惩罚项(penalty term)。结构风险=经验风险+正则化项(惩罚项)
 

1、正则化作用:
  约束参数,降低模型复杂度,降低模型的过拟合风险,这也是正则化项最常用的作用。感觉是通过权重项的添加,降低学习得到的权重与数据的强匹配,缓解可能的过拟合现象。
 

2、正则化思想:
  处理最优化函数问题时,在目标函数中加入对参数的约束惩罚项,从而达到简化模型的目的,而正则化方法中最常见的就是L0, L1 和L2范数。范数的知识在大学高等数学中有较为详尽的解释,在此不予赘述:

L0范数是指向量中非0元素的个数。如果我们用L0范数来规则化一个参数矩阵W的话,L0范数越小,则参数中零的个数则越多。此时参数矩阵是稀疏的;
L1范数是向量中各系数绝对值之和,它还有一个名字–LASSO;
L2范数是向量中各系数平方和的平方根,在计量经济学里面,它又称为“岭回归(Ridge Regression)”。

二、目标函数(Loss Function)

   一般来说,监督学习可以看做最小化下面的目标函数,在西瓜书133页也谈到相似的问题,西瓜书中给出的无正则化项的Loss Function写作如下形式:

在本文中写作为:
其中,第一项L(yi,f(xi;w)) 就是误差平方和;第二项则为惩罚项,对参数w的正则化函数Ω(w)去约束我们的模型尽量的简单;机器学习的大部分带参模型都和这个不但形似,而且神似。是的,其实大部分无非就是变换这两项而已。

 
1、第一项-Loss函数
如果是Square loss,那就是最小二乘了;
如果是Hinge Loss,那就是著名的SVM了;
如果是exp-Loss,那就是牛逼的 Boosting了;
如果是log-Loss,那就是Logistic Regression了;
不同的loss函数,具有不同的拟合特性,这个也得就具体问题具体分析的。

 
2、第二项-正则化项Ω(w)
一般是模型复杂度的单调递增函数,模型越复杂,规则化值就越大。比如,规则化项可以是模型参数向量的范数。然而,不同的选择对参数w的约束不同,取得的效果也不同,但我们在论文中常见的都聚集在:零范数、一范数、二范数、迹范数、Frobenius范数和核范数等等。

三、L0/L1范数

1、分别定义
L0范数是指向量中非0的元素的个数。如果我们用L0范数来规则化一个参数矩阵W的话,就是希望W的大部分元素都是0。都为稀疏。
L1范数是指向量中各个元素绝对值之和,也有个美称叫“稀疏规则算子”(Lasso regularization)。

 
2、两者关系:
任何的L0规则化算子,如果他在Wi=0的地方不可微(L1),并且可以分解为一个“求和”的形式,那么这个规则化算子就可以实现稀疏。L0范数的最小化问题是NP难问题。而L1范数是L0范数的最优凸近似,它比L0范数要更容易求解。因此,优化过程将会被转换为更高维的范数(例如L1范数)问题。

 
3、参数稀疏的好处
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种因素,累觉不爱。

四、L1(Lasso)、L2(岭回归)范数

L2范数是指向量各元素的平方和然后求平方根。我们让L2范数的规则项||W||2最小,可以使得W的每个元素都很小,都接近于0,但与L1范数不同,它不会让它等于0,而是接近于0。

 
L2的作用:

L2范数是使得各个元素接近于0,越小的参数说明模型越简单,越简单的模型则越不容易产生过拟合现象。通过L2范数,我们可以实现了对模型空间的限制,从而在一定程度上避免了过拟合。L2的作用=参数变小=模型变简单≈模型参数信息变少。

1、L2范数不但可以防止过拟合,还可以让我们的优化求解变得稳定和快速。

2、优化计算的角度。L2范数有助于处理 condition number不好的情况下矩阵求逆很困难的问题。

condition number:condition number衡量的是输入发生微小变化的时候,输出会发生多大的变化。也就是系统对微小变化的敏感度。condition number值小的就是well-conditioned的,大的就是ill-conditioned的。

如果一个矩阵的condition number在1附近,那么它就是well-conditioned的,如果远大于1,那么它就是ill-conditioned的,如果一个系统是ill-conditioned的,它的输出结果就不要太相信了。

这三者的区别:

L0范数和L1范数都具有变量选择的功能,但L0范数很难优化求解(NP问题),而L1范数是L0范数的最优凸近似,L1范数比L0范数更容易求解,所以L1范数被广泛应用到各种各样的模型中。
L2范数的规则项可以使得每个系数都很小,都接近于0,但与L1范数不同,它不会让它等于0,而是接近于0,因此L2范数没有变量选择的功能。但是利用L2范数(岭回归方法)我们可以解决多重共线性问题并求出回归系数。一句话总结下:通过L2范数,我们可以实现了对模型空间的限制,从而在一定程度上避免了过拟合。

Lasso算法和岭回归算法区别

L1在江湖上人称Lasso,L2人称Ridge(岭回归)。

1、梯度下降速度

L1和L2的差别就在于这个“坡”不同,如下图:L1就是按绝对值函数的“坡”下降的,而L2是按二次函数的“坡”下降。所以实际上在0附近,L1的下降速度比L2的下降速度要快。所以会非常快得降到0。

2、模型空间的限制

为了便于可视化,我们考虑两维的情况,在(w1, w2)平面上可以画出目标函数的等高线,而约束条件则成为平面上半径为C的一个 norm ball 。等高线与 norm ball 首次相交的地方就是最优解:

可以看到,L1-ball 与L2-ball 的不同就在于L1在和每个坐标轴相交的地方都有“角”出现,而目标函数的测地线除非位置摆得非常好,大部分时候都会在角的地方相交。注意到在角的位置就会产生稀疏性,例如图中的相交点就有w1=0,而更高维的时候(想象一下三维的L1-ball 是什么样的?)除了角点以外,还有很多边的轮廓也是既有很大的概率成为第一次相交的地方,又会产生稀疏性。

相比之下,L2-ball 就没有这样的性质,因为没有角,所以第一次相交的地方出现在具有稀疏性的位置的概率就变得非常小了。这就从直观上来解释了为什么L1-regularization 能产生稀疏性,而L2-regularization 不行的原因了。

因此,一句话总结就是:L1会趋向于产生少量的特征,而其他的特征都是0,而L2会选择更多的特征,这些特征都会接近于0。Lasso在特征选择时候非常有用,而Ridge就只是一种规则化而已。

Reference:

https://blog.csdn.net/sinat_26917383/article/details/52092040
https://www.cnblogs.com/stevenlk/p/6247992.html
https://blog.csdn.net/zhangbaoanhadoop/article/details/83042960
https://baijiahao.baidu.com/s?id=1607333156323286278&wfr=spider&for=pc
https://charlesliuyx.github.io/2017/10/03/%E3%80%90%E7%9B%B4%E8%A7%82%E8%AF%A6%E8%A7%A3%E3%80%91%E4%BB%80%E4%B9%88%E6%98%AF%E6%AD%A3%E5%88%99%E5%8C%96/

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值