L1正则化和L2正则化学习记录

181 阅读4分钟

L1正则化 L2正则化

2020-11-18

机器学习中正则化项L1和L2的直观理解是一个很好的博客,本篇记录也是对这个博客学习的一些记录,但是原博客中

最开始也提到L1正则化一定程度上也可以防止过拟合。之前做了解释,当L1的正则化系数很小时,得到的最优解会很小,可以达到和L2正则化类似的效果。

这一句话感觉介绍错误应该是当L1的正则化系数很大的时候,得到的最优解会很小。

  • L1正则化是指权值向量w 中各个元素的绝对值之和,通常表示为w1||w||_1

  • L2正则化是指权值向量w 中各个元素的平方和然后再求平方根(可以看到Ridge回归的L2正则化项有平方符号),通常表示为w2||w||_2

  • L1表示为:

  • L2表示为:

  • L1正则化可以产生稀疏权值矩阵,即产生一个稀疏模型,可以用于特征选择,产生稀疏权值矩阵有什么用?

  • L2正则化可以防止模型过拟合(overfitting);一定程度上,L1也可以防止过拟合,为什么可以防止过拟合?

为什么L1可以产生稀疏的权值矩阵,就像图中所展示的这样,在一定的平衡条件下处于角位置上的点相比而言更容易触碰到更加接近中点的等值线,所以很可能这些点就处于边界上了。

对这个图片进行一个解释:对于正则化L1我们可以表示为J=J0+LJ=J_0 + L ,图中的等值线表示的是J0J_0的图像,而其中的直线方块表示的是L对应的图像,所以方块的角点更容易接触到同等条件下更为接近图中等值线的J0J_0。这里我们以两个参数及进行举例,w2w^2w1w^1

类似的对于L2的正则项,我们可以画出这样的图像来:

  • 相比于L1,L2中的L部分可以表示成为一个圆圈,对于一个圆圈而言,最佳点是边角的位置就会少很多,这也就是为什么L2正则化不具有稀疏性,因为在一个圆上不太可能出现很多ww都是0的情况
  • 还有一种解释:因为加了正则化项之后,原来的最优点一定没有原来的点更小了,所以很可能现在的最优点就是之前的最优点和原点之间,但是太接近原点又会导致原来的函数值太大,所以就会去一个折中,另外比较L1和L2我们可以发现只要最初的最优点不是在y=xy=x and y=xy=-x 上,那么对于L1来说最优点往往是在最开始最优点到L图像的垂足上,而L2正则化的图像往往是原始最优点到原点距离的连线,所以这样来说L1正则化往往会比L2正则化的最后优化结果其中的一些参数更加接近0.

为什么梯度下降的等值线和正则化函数的交点是最优解可以查看这个网站:带约束的最优化问题

第二部分控制overfitting

通过上面的讲解我们就可以理解为什么使用L1正则化能够得到一个稀疏解,接下来介绍为什么L2能够控制overfitting

L2正则化的原始公式如下:

这是我们的损失函数,对损失函数求导,之后再乘上-1和学习率我们就能更新模型中的参数了,也就是沿着负梯度方向更新参数,最后经过化简之后的结果如下:

θ:=θ(1αλm)α1mi=1m(hθ(x(i))y(i))xj(i)\theta:=\theta(1-\alpha\frac{\lambda}{m})-\alpha\frac{1}{m}\sum_{i=1}^{m}{(h_\theta(x^{(i)})-y^{(i)})x^{(i)}_j}

其中这里的λ\lambda表示的是L2的正则化参数,α\alpha表示的是学习率,可以看出在每次迭代中θ\theta都会至少减少αλm\alpha\frac{\lambda}{m}数值大小,所以经过很多次的迭代最后的参数数值一定是越来越小的,所以使用L2正则化就能减少overfitting

同时上面我们也介绍了,随着L1正则化中λ\lambda增大,最优解一定是更加的接近原点偏离原始的最优解,所以L1正则化一定程度上也能起到降低overfitting的效果。由于L1正则化的损失函数中存在绝对值所以只能实现部分的微分,所以不能像L2正则化这样表现得这么直接。

小节

这里我们介绍了机器学习中的L1正则化和L2正则化,最重要的两个点就是为什么L1正则化能够使得最后的解变得稀疏,而L2正则化能够一定程度上减少overfitting。这是L1L2正则化中最需要了解的两个点。