关于正则化的理解

  • 正则化是什么
  • 带约束条件的最优化
  • 等高线
  • 正则化
  • 总结


正则化是什么

深度学习 正则化作用_深度学习 正则化作用


在机器学习中,如果参数过多或者过大,会导致过拟合的情况出现,通常可以在原损失函数上增加一个正则项,或者叫惩罚项,来解决过拟合的问题。

常用的正则化有两种,L1正则化和L2正则化,分别对应(式1)和(式2),L1正则项是所有参数的绝对值之和,L2正则项是所有参数的平方和。这里先下结论,L1正则化可以减小参数,甚至减少参数,L2正则化可以减小参数。

带约束条件的最优化

深度学习 正则化作用_机器学习_02


图1中,要最小化f(x,y),并且使得xy=3,在这里,前者是被约束项,后者是约束项。这种带约束条件的最优化通常可以使用拉格朗日数乘法解决,这里不作数学推导,而是从逻辑上分析如何解决这个问题。

通常,先在坐标轴中画出约束项xy=3的图像,然后遍历xy=3上的点,然后找出令f(x,y)最小的点,我个人将这种方法简述成,约束固定,被约束滑动

等高线

图2中,假设损失函数J只有两个参数θ1和θ2,等高线的意思即当点(θ1,θ2)在R1上时,J(θ1,θ2)都是相等的。同理,当点(θ1,θ2)在R2上时,J(θ1,θ2)也都是相等的。

正则化

深度学习 正则化作用_深度学习 正则化作用_03


实际上,正则化也是一种带约束项的优化方法,原损失函数J0为被约束项,正则项为约束项。

以L1正则化为例,如果继续采用约束固定,被约束滑动的方法是行不通的,因为画不出正则项的图像,因为公式中并没有指出正则项的范围。

可以换一个思路,即约束滑动,被约束固定。即先沿用正常的方法对原损失函数J0进行最小化,得到最优解和它的等高线,即图3中的L1,然后遍历L1中的点,找到令正则项最小的点。根据等高线的原理,A、B、C点都是J0的最优解,此时画出A、B、C对应的正则项的图像,你会发现在C点时,正则项最小,即总的损失函数J最小。

在许多组效果相同的参数解中,尽量选择最小的那一组参数,这就是正则化的作用。

再仔细看下C点,它的横坐标为0,也就意味着θ1已经不会再对模型产生任何影响了,即模型从两个参数变为了一个参数,这就是上文提到的L1正则化能够减少参数的原因。更专业的说法是,L1正则化能够生成稀疏矩阵

再看图4,假设对于原损失函数J0而言,A点比B点更优,即J0(A)<J0(B)。在这样的前提下,对于正则项来说,显然B点比A点更优,这个时候总的损失函数J的最优解是什么呢?A还是B?

我个人认为,有可能是A,也有可能是B,甚至是其他的点。因为总的损失函数J最小化原损失函数J0的同时,也要兼顾到正则项的最小化。J要平衡二者,所以它不会一味地追求参数最优,也不会一味地去追求参数最小

最后看图5,图5描述的是L2正则化,由于L2正则项的形状是个圆,并没有L1正则项那么棱角分明,y轴上的点不容易与等高线相交,因此只能做到减小参数。

总结

鉴于本人的数学知识早已还给老师,因此没有选择从数学推导的角度去理解正则化的本质,而是从逻辑上去理解。本文中有一小部分的内容只是我个人的想法,有可能是错的,希望各位读者有选择性地参考。