正则L1和L2,以及L1不可导的处理(Proximal Algorithm近端算法)

L1正则化(lasso回归)是指权值向量w中各个元素的绝对值之和,通常表示为||w||_{1}。L1正则化可以产生稀疏权值矩阵,即产生一个稀疏模型,可以用于特征选择。

使用场景:输入特征的维度很高,而且是稀疏线性关系。

L2正则化(岭回归)是指权值向量w中各个元素的平方和然后再求平方根(可以看到Ridge回归的L2正则化项有平方符号),通常表示为||w||_{2}。L2正则化可以防止模型过拟合(overfitting);一定程度上,L1也可以防止过拟合。

使用场景:数据线性相关,用LinearRegression拟合的不是很好。

考虑二维的情况,即只有两个权值w^{1}w^{^{2}}L1=|w^{1}|+|w^{2}|,在图中,当损失函数等值线与正则项L等值线相交的地方就是最优解,这个顶点的值是(0,w)。等值线与这些角接触的机率会远大于与L其它部位接触的机率,而在这些角上,会有很多权值等于0,这就是为什么L1正则化可以产生稀疏模型,进而可以用于特征选择

L2正则化的函数图形是个圆,与方形相比,被磨去了棱角。因此相交时w^{1}w^{^{2}}等于零的机率小了许多,这就是为什么L2正则化不具有稀疏性的原因。L2正则化不容易得到稀疏矩阵,同时为了求出损失函数的最小值,使得w1和w2无限接近于0,达到防止过拟合的问题。

正则L1和L2,以及L1不可导的处理(Proximal Algorithm近端算法)_第1张图片

 

L1不可导的时候

当损失函数不可导,梯度下降不再有效,可以使用坐标轴下降法,梯度下降是沿着当前点的负梯度方向进行参数更新,而坐标轴下降法是沿着坐标轴的方向,假设有m个特征个数,坐标轴下降法进参数更新的时候,先固定m-1个值,然后再求另外一个的局部最优解,从而避免损失函数不可导问题。

使用Proximal Algorithm对L1进行求解,此方法是去优化损失函数上界结果。

对于目标函数中包含加性的非平滑项并使用梯度下降求解的问题,如果可以使用proximal operator,则解法如下:

假设目标函数为 其中 可导,而 不可导。

则每步迭代更新为

其中,

如果 ,也就是题目中要求的L1范数正则化,则对应的

proximal operator是在寻找一个距离v点不要太远的一个x,使得f(x)尽可能小,显然f(x)<=f(v)。其中加粗的黑线表示作用域,浅色的黑线表示函数f的等高线,蓝色的点对应上面式子的v点,红色点表示最终求得的x点

具体推导,见《西瓜书》(253-254页)

你可能感兴趣的:(机器学习)