相信大部分人都见到过,下面的这两张对比图,用来解释为什么L1正则化比L2正则化更容易得到稀疏解,然而很多人会纠结于"怎么证明相切点是在角点上?",呃,不必就纠结于此,请注意结论中的"容易"二字,配图只是为了说明"容易"而已。
假设x仅有两个属性,即w只有两个分量w1,w2,稀疏解->w1=0或w2=0,即w的等值线与平方误差等值线的切点位于坐标轴。其中L2正则项等值线为圆型,L1正则项等值线为方形,代价函数等值线即平方误差等值线这里假设为圆形。
L1和L2为正则化项,即约束象限,用来限制参数范围,为什么要加正则化向呢?在线性的情况下,使用测量数据直接计算得到的解有两部分:一部分是准确解的信息,另一部分则是噪声信息,加入正则化项(也称惩罚项),可以平衡/过滤掉噪声特征信息,从而保留最具有训练价值的特征。
如上图所示,相比圆,方形的顶点更容易与抛物面相交,顶点就意味着对应的很多系数为0,而L2正则项中的圆上的任意一点都很容易平方误差等值线相交很难得到正好等于0的系数,而L1正则项中的方形则相对容易得到等于0的系数。
事实上L1与L2均可以实现与平方误差等值线的切点位于坐标轴上,只不过L2需平方误差等值线的"中心点"位于坐标轴上才可能实现L2与平方误差等值线的切点位于坐标轴,即w1=0或w2=0,从而获得稀疏解。而L1就不需要这样的硬性条件,所以L1相对L2比较容易获得稀疏解。如下所示
L2正则化:切点(稀疏解)可能位置
如下图示例,蓝色线为平方误差等值线,共有4种圆心处于不同位置的等值线,红色线为L2正则化等值线,蓝色线和红色线的切点为黄色点。切点(稀疏解)位于坐标轴上有4种方式。
L1正则化:切点(稀疏解)可能位置
如下图示例,蓝色线为平方误差等值线,共有n(n≥4)种圆心处于不同位置的等值线,红色线为L1正则化等值线,蓝色线和红色线的切点为黄色点。切点(稀疏解)位于坐标轴上可有n种方式。
L1更容易得到稀疏解,只是在在容易程度上比较,并不是说L2就不能得到稀疏解,只是L2的稀疏性不强。
因此
L1正则化常用于生成稀疏矩阵,用于特征选择(部分特征对应的参数w=0)
简单来讲,越好的特征包含的数据分布信息越多,差的特征也包含一定的数据分布信息,但同时还会包含大量的噪声,特征选择旨在于选择出好的特征去学习,而不是为了一点点的模型训练提升去引入学习更多的噪声
而L2正则化常用于防止过拟合,那么问题来了
为什么L2正则化可以防止过拟合?L2正则化和过拟合的关系
首先图释什么是过拟合/欠拟合,简单说就是一种拟合程度,直线(曲线)经过点(特征点+噪声点)的数量,如下图所示,
什么是过拟合?模型训练时候的误差很小,但在测试的时候误差很大,也就是我们的模型复杂到可以拟合到我们的所有训练样本了,但在实际预测新的样本的时候,糟糕的一塌糊涂。通俗的讲就是应试能力很强,实际应用能力很差。
拟合过程中通常都倾向于让权值尽可能小,最后构造一个所有参数都比较小的模型(c=0,d=0,...)。因为一般认为参数值小的模型比较简单,能适应不同的数据集,也在一定程度上避免了过拟合现象。可以设想一下对于一个线性回归方程,若参数很大,那么只要数据偏移一点点,就会对结果造成很大的影响;但如果参数足够小,数据偏移得多一点也不会对结果造成什么影响,专业一点的说法是『抗扰动能力强』。
怎样解决过拟合?
一是减少特征的数量,二是正则化。
而L2正则化可以得到值很小(参数都接近于0)的参数,所以L2正则化又称权重衰减
L2正则化使得尖锐点更平滑,
那么为什么L2正则化可以得到值很小(参数都接近于0)的参数?
L2正则化就是在代价函数后面再加上一个正则化项,目标函数如下所示
其中,J0为代价函数,其余为正则化项(惩罚项)。λ为正则化系数,用来平衡J0于正则化项。
对参数w求导:
令导数为0得到:
可以得到有无正则化项时,参数w的取值情况如下,
观察易得到,相对于无L2正则化项的代价函数,有L2正则化项的代价函数得到的参数w最优解绝对值更小即更接近0。而当正则化项为L1正则化时,对J(w)求导结果(有无正则化项)相对L1没有明显变化,如下所示
综上所述,
L1正则化:生成稀疏参数,用于特征选择
L2正则化:平衡化各个参数,使每个参数均接近0,用于防止过拟合。
此外,L1正则化也可以防止一定程度的过拟合,即过滤噪声特征,使噪声特征对应的参数为0,即减少特征数量,从而达到抑制过拟合的效果。