【L1正则化与L2正则化详解及为什么L1和L2正则化可防止过拟合】

一、为什么L1和L2正则化可防止过拟合?

线性模型常用来处理回归和分类任务,为了防止模型处于过拟合状态,需要用L1正则化和L2正则化降低模型的复杂度,很多线性回归模型正则化的文章会提到L1是通过稀疏参数(减少参数的数量)来降低复杂度,L2是通过减小参数值的大小来降低复杂度。下面我们从梯度角度进行分析。

1、L1正则化

L1正则化的损失函数为:
在这里插入图片描述
上式可知,当w大于0时,更新的参数w变小;当w小于0时,更新的参数w变大;所以,L1正则化容易使参数变为0,即特征稀疏化。

2、L2正则化

L2正则化的损失函数为:
在这里插入图片描述
由上式可知,正则化的更新参数相比于未含正则项的更新参数多了 η λ n w \frac{\eta \lambda }{n}w nηλw项,当w趋向于0时,参数减小的非常缓慢,因此L2正则化使参数减小到很小的范围,但不为0。

更小的权值w,从某种意义上说,表示网络的复杂度更低,对数据的拟合刚刚好(这个法则也叫做奥卡姆剃刀)。

二、L0、L1和L2区别?

1、L0和L1之间的区别

L0范数是指向量中非0的元素的个数。如果我们用L0范数来规则化一个参数矩阵W的话,就是希望W的大部分元素都是0。

个人理解一是因为L0范数很难优化求解(NP难问题),二是L1范数是L0范数的最优凸近似,而且它比L0范数要容易优化求解。所以尽管L1范数和L0范数都可以实现稀疏,但L1因具有比L0更好的优化求解特性而被广泛应用。

2、L1和L2之间的区别及适用场景

L1在优化的时候,w在更新的时候,更偏向于收敛到0。也就是L1会趋向于产生少量的特征,而其他的特征都是0,使用L1可以得到稀疏的权值;所以L1适用于特征之间有关联的情况。
而L2在收敛的时候更偏向于收敛到到很小的参数,但一般不会是0。也就是L2会选择更多的特征,这些特征都会接近于0,使用L2可以得到平滑的权值;所以L2适用于特征之间没有关联的情况。
这个是什么缘由呢?其实就是,L2的求导后为一阶函数,对于大的w参数,惩罚作用大,对于小的w参数,惩罚作用小,很难惩罚到0,实际上起到了把大参数和小参数趋向于平均的作用;L1求导后为常数,无论对于大小参数,其惩罚作用一样,所以可以把小参数惩罚到0。

三、L1不可导的时候该怎么办?

Lasso回归的损失函数在0处不可导,因此不能直接使用梯度下降法进行求解。可以使用坐标轴下降法,即在各个坐标轴方向上进行下降。坐标轴下降法和梯度下降法具有同样的思想,都是沿着某个方向不断迭代,但是梯度下降法是沿着当前点的负梯度方向进行参数更新,而坐标轴下降法是沿着坐标轴的方向。

坐标轴下降法的数学依据为:

四、实现参数的稀疏有什么好处?

因为参数的稀疏,在一定程度上实现了特征的选择。一般而言,大部分特征对模型是没有贡献的。这些没有用的特征虽然可以减少训练集上的误差,但是对测试集的样本,反而会产生干扰。稀疏参数的引入,可以将那些无用的特征的权重置为0.

你可能感兴趣的:(机器学习,面经,经验分享)