正则化

1. 引言
机器学习中经常会出现两种情况:欠拟合和过拟合。欠拟合问题很好解决,增加模型复杂度就好,真正让人头疼的是过拟合问题,会导致过拟合的原因有很多,也就导致了很难去解决这个问题,这里介绍一种经常被用来解决过拟合的手段:正则化。(关于正则化很推荐看Andrew Ng的Coursera机器学习课,讲的很清楚,这篇博客里面的图也基本是课程里面的讲义截图)

2. 原理介绍
关于欠拟合和过拟合可以用下面这张图解释:
正则化
对于一个上图所示的预测模型,当使用过于简单的预测模型时会导致欠拟合,也称为高偏差。我们增加模型复杂度,使用了一个二次模型,发现模型的拟合效果较好,根据经验,这是一个较好的预测模型。继续增加模型复杂度,这时模型完美的拟合了所有样本点,但是根据感觉,这绝对不是一个好的预测模型,称为过拟合,又叫高方差。
正则化
上面这张图可以描述刚刚出现的过拟合问题,我们使用了一个过于复杂的四次模型去拟合二次分布的样本,导致虽然完美的拟合了所有样本,但是却没有预测能力。针对这个例子的解决办法很简单,在损失函数后面加上θ32,和θ42两项。由于模型的训练是通过最小化损失函数实现的,所以训练过程就迫使θ3θ4接近于0,这就将一个四次模型变成二次模型。不过在实际应用中我们是不知道哪个参数是不需要的,所以我们会为所有参数加上正则化项,如下式:

minθ1mi=1m(hθ(xi)yi)2+λj=1nθj2

3. 常见正则化方法
3.1 L1正则
公式如下:

minθ1mi=1m(hθ(xi)yi)2+λnj=1n|θj|

L1正则会使部分参数为0,使参数稀疏化。

3.2 L2正则
公式如下:

minθ1mi=1m(hθ(xi)yi)2+λ2nj=1nθj2

与L1不同的是L2会是参数逼近0,但是不会等于0。

具体L1,L2正则推导可以看这篇博客《机器学习中正则化项L1和L2的直观理解》