L1和L2是正则化项,又叫做罚项,是为了限制模型的参数,防止模型过拟合而加在损失函数后面的一项。
L0正则:模型参数中非零参数个数;
L1正则:模型各参数绝对值之和;
L2正则:模型各个参数的平方和的开方值。
L1和L2的区别:
L1是模型各个参数的绝对值之和。L2是模型各个参数的平方和的开方值。
使用L1可以得到稀疏的权值;用L2可以得到平滑的权值
L1会趋向于产生少量的特征,而其他的特征都是0:因为最优的参数值很大概率出现在坐标轴上,这样就会导致某一维的权重为0,产生稀疏权重矩阵
L2会选择更多的特征,这些特征都会接近于0:最优的参数值很小概率出现在坐标轴上,因此每一维的参数都不会是0。当最小化||w||时,就会使每一项趋近于0
为什么L1正则可以实现参稀疏,而L2不可以?
L1正则因为是绝对值形式,很多系数被压缩为0,而L2正则是很多系数被压缩到接近于0而不是0。
在图像上,L1是正方形,L2是圆形:L1往往可以取到正方形的顶点,L2往往取不到圆形和参数线的交点,即很多分量被压缩到接近于0。
为什么L1范数会使权值稀疏?
任何的规则化算子,如果他在Wi=0的地方不可微,并且可以分解为一个“求和”的形式,那么这个规则化算子就可以实现稀疏。W的L1范数是绝对值,|w|在w=0处是不可微
为什么L0和L1都可以实现稀疏,但常用的为L1?
L0很难优化求解(NP难问题),L1是L0的最优凸近似,比L0范数要容易优化求解。
参数稀疏有什么好处呢?
参数稀疏,在一定程度上可以实现特征的选择。一般而言,大部分特征对模型是没有贡献的。这些没有用的特征虽然可以减少训练集上的误差,但是对测试集的样本,反而会产生干扰。稀疏参数的引入,可以将那些无用的特征的权重置为0.
L1范数和L2范数为什么可以避免过拟合?
加入正则项就是在原来目标函数的基础上加入了约束。当目标函数的等高线和L1,L2范数函数第一次相交时,得到最优解。
L1范数:
L1范数符合拉普拉斯分布,是不完全可微的。在图像上会有很多角出现。这些角和目标函数的接触机会远大于其他部分。就会造成最优值出现在坐标轴上,因此就会导致某一维的权重为0,产生稀疏权重矩阵,进而防止过拟合。
L2范数:
L2范数符合高斯分布,是完全可微的。和L1相比,图像上的棱角被圆滑了很多。一般最优值不会在坐标轴上出现。在最小化正则项时,参数不断趋向于0.最后获得很小的参数。