Ridge和Lasso回归的区别有哪些?
各位朋友大家好,欢迎来到月来客栈,我是掌柜空字符。
Lasso回归和Ridge回归分别对应的是在原始目标函数中加入
正则化和
正则化。因此问Lasso回归和Ridge回归的区别实际上就是在问
正则化和
正则化之间有什么区别。
结论:不管是
正则化还是
正则化,两者的目的都是用来缓解模型过拟合的问题,其手段便是在最小化目标函数的过程中使得模型的参数趋向于0。但是对于
正则化来说它却能够使得模型参数更加的稀疏,即直接使得模型对应的参数变为0(不仅仅是接近)。
为了讲清楚两者的差异,下面先来看看两者的原理(以下部分内容摘自图书《跟我一起学机器学习》),然后再介绍其差异之处。
4.4 正则化
通常,模型产生过拟合的现象表现为在训练集上误差较小,而在测试集上误差较大,并且笔者还讲到,之所以会产生过拟合现象是由于训练数据中可能存在一定的噪声,而我们在训练模型时为了尽可能地做到拟合每个样本点(包括噪声),往往就会使用复杂的模型。最终使训练出来的模型在很大程度上受到了噪声数据的影响,例如真实的样本数据可能更符合一条直线,但是由于个别噪声的影响使训练出来的是一条曲线,从而使模型在测试集上表现糟糕,因此,可以将这一过程看作由糟糕的训练集导致了糟糕的泛化误差,但仅仅从过拟合的表现形式来看糟糕的测试集(噪声多)也可能导致糟糕的泛化误差。在接下来的内容中,笔者将分别从这两个角度来介绍一下正则化(Regularization)方法中最常用的
正则化是如何来解决这一问题的。
这里还是以线性回归为例,我们首先来看一下在线性回归的目标函数后面再加上一个
正则化项的形式。
在式(4.6)中的第2项便是新加入的
正则化项(Regularization Term),那它有什么作用呢?我们知道在模型训练过程中,当真实值与预测值之间的误差越小(表现为损失值趋于0),也就代表着模型的预测效果越好,并且可以通过最小化目标函数来达到这一目的。由式(4.6)可知,为了最小化目标函数
,第2项的结果也必将逐渐地趋于0。这使最终优化求解得到的
均会趋于0附近,进而得到一个平滑的预测模型。这样做的好处是什么呢?
4.4.1 测试集导致糟糕的泛化误差
所谓测试集导致糟糕的泛化误差是指训练集本身没有多少噪声,但由于测试集含有大量噪声,使训练出来的模型在测试集上没有足够的泛化能力,而产生了较大的误差。这种情况可以看作模型过于准确而出现了过拟合现象。正则化方法是怎样解决这个问题的呢?
假如式(4.7)所代表的模型就是根据式(4.6)中的目标函数训练而来的,此时当某个新输入样本(含噪声)的某个特征维度由训练时的
变成了现在的
,那么其预测输出就由训练时的
变成了现在的
,即产生了
的误差,但是,由于
接近于
附近,所以这使模型最终只会产生很小的误差。同时,如果
越接近于
,则产生的误差就会越小,这意味着模型越能够抵抗噪声的干扰,在一定程度上越能提升模型的泛化能力 [1]。
由此便可以知道,通过在原始目标函数中加入正则化项,便能够使训练得到的参数趋于平滑,进而能够使模型对噪声数据不再那么敏感,缓解了模型过拟合的现象。
4.4.2 训练集导致糟糕的泛化误差
所谓糟糕的训练集导致糟糕的泛化误差是指,由于训练集中包含了部分噪声,导致我们在训练模型的过程中为了能够尽可能地最小化目标函数而使用了较为复杂的模型,使最终得到的模型并不能在测试集上有较好的泛化能力,但这种情况完全是因为模型不合适而出现了过拟合的现象,而这也是最常见的过拟合的原因。
正则化方法又是怎样解决在训练过程中就能够降低对噪声数据的敏感度的呢?为了便于后面的理解,我们先从图像上来直观地理解一下正则化到底对目标函数做了什么。
如图4-14所示,左右两边黑色实线为原始目标函数,黑色虚线为加了
正则化后的目标函数。可以看出黑色实线的极值点均发生了明显改变,并且不约而同地都更靠近原点。
图 4-14
正则化图形
再来看一张包含两个参数的目标函数在加入
正则化后的结果,如图4-15所示。
图 4-15
正则化投影图形
如图4-15所示,图中黑色虚线为原始目标函数的等高线,黑色实线为施加正则化后目标函数的等高线。可以看出,目标函数的极值点同样也发生了变化,从原始的
变成了
,而且也更靠近原点(
和
变得更小了)。到此我们似乎可以发现,正则化能够使原始目标函数极值点发生改变,并且同时还有使参数趋于0的作用。事实上也正是因为这个原因才使
正则化具有缓解过拟合的作用,但原因在哪里呢?
以目标函数为例,其取得极值的极值点为
,且
在极值点处的梯度为
。当对其施加正则化
后,由于
的梯度方向是远离原点的(因为
为一个二次曲面),所以给目标函数加入正则化,实际上等价于给目标函数施加了一个远离原点的梯度。通俗点讲,正则化给原始目标函数的极值点施加了一个远离原点的梯度(甚至可以想象成施加了一个力的作用),因此,这也就意味着对于施加正则化后的目标函数
来讲,
的极值点
相较于
的极值点
更加靠近于原点,而这也就是
正则化本质之处。
假如有一个模型
,它在含有噪声的训练集上表示异常出色,使目标函数
的损失值等于
(也就是拟合到了每个样本点),即在
处取得了极值。现在,我们在
的基础上加入
正则化项构成新的目标函数
,然后来分析一下通过最小化
求得的模型
到底产生了什么样的变化。
从式(4.8)可知,由于
是由
加正则化项构成的,同时根据先前的铺垫可知,
将在离原点更近的极值点
处取得
的极值,即通过最小化含正则化项的目标函数
,将得到
这个最优解,但是需要注意,此时的
将不再是
的最优解,即
,因此通过最小化
求得的最优解
将使
,而这就意味着模型
比模型
更简单了,也就代表着从一定程度上缓解了
的过拟合现象。
同时,由式(4.6)可知,通过增大参数
的取值可以对应增大正则化项所对应的梯度,而这将使最后求解得到更加简单的模型(参数值更加趋近于0)。也就是
越大,一定程度上越能缓解模型的过拟合现象,因此,参数
又叫作惩罚项(Penalty Term)或者惩罚系数。
最后,从上面的分析可知,在第一种情况中
正则化可以看作使训练好的模型不再对噪声数据那么敏感,而对于第二种情况来讲,
正则化则可以看作使模型不再那么复杂,但其实两者的原理归结起来都是一回事,那就是通过较小的参数取值,使模型变得更加简单。
4.4.5
正则化原理
在介绍完
正则化后我们再来简单地看一下
正则化背后的思想原理。如式(4.16)所示便是加入
正则化后的线性回归目标函数:
在式(4.16)中的第2项便是新加入的
正则化项,可以看出它与
正则化的差别在于前者是各个参数的绝对值之和,而后者是各个参数的平方之和。那
正则化又是如何解决模型过拟合现象的呢?
以单变量线性回归为例,在对其施加
正则化之前和之后的目标函数如式(4.17)所示
由式(4.17)可知,目标函数
和
关于权重
的梯度分别为
进一步由梯度下降算法可得两者的参数更新公式为
为了更好的观察式(4.19)中两者的差异,令
,
,此时有
此时根据式(4.20)中两者对比可知,对于施加
正则化后的目标函数来说,当
时,
会先减去
;当
时,
会先加上
;所以在这两种情况下更新后的
都会更加的趋向于0,而这也就是
正则化同样能够缓解模型过拟合的原因。
4.4.6
与
正则化差异
根据前面的几节内容的介绍可知,
和
正则化均能够使得求解得到的参数趋向于0(即接近于0),但是对于
正则化来说它却能够使得模型参数更加的稀疏,即直接使得模型对应的参数变为0(不仅仅是接近)。那
正则化是如何产生这一结果的呢?
以单变量线性回归为例,对其分别施加
和
正则化后,目标函数关于参数
的梯度分别为
根据式(4.21)可知,对于
正则化来说,只要满足条件
,那么带有
正则化的目标函数总能保持,当
时单调递减,当
时单调递增,即此时一定能在
产生最小值。对于
正则化来说,当
时,只要
,那么带有
正则化的目标函数便不可能在
出产生最小值。也就是说,对于
正则化来说只需要满足条件
,便可以在
处取得最小值;而对于
正则化来说,只有满足条件
时,才可能在
处取得最小。因此,相较于
正则化,
正则化更能够使得模型产生稀疏解。
当然,我们还可以从另外一个比较直观的角度来解释为什么
正则化更容易产生稀疏解。从本质上看,带正则化的目标函数实际上就等价于带约束条件的原始目标函数,即为了缓解模型的过拟合现象可以对原始目标函数的解空间施加一个约束条件,而这个约束便可以是
或者是
正则化。例如对于带
约束条件的目标函数有
从式(4.22)可以看出,这是一个典型的带有不等式约束条件的极值求解问题。根据第9.6节介绍的内容可以得到对应的如下拉格朗日函数
其中
被称为拉格朗日乘子,可以看出本质上它就等同于式(4.16)中的惩罚系数
,同时由于
为常数,所以式(4.23)与目标函数(4.16)等价。
进一步,根据式(4.23)可以画出在二维特征条件下原始目标函数与
约束条件下解的分布情况(同理还可以画出
约束条件下的解空间),如图4-18所示。
图 4-18. 两种约束条件下目标函数对应的最优解
在图4-18中,椭圆曲线表示目标函数对应的等高线,菱形和圆形分别表示
和
约束条件下对应的解空间。从图中可以看出,目标函数在
约束条件下于p处取得最小值,在
约束条件下于q处取得最小值。此时可以发现,由于
约束条件下的解空间为菱形,因此相较于
约束,
更容易在顶点处产生极值,这就导致
约束更能够使得模型产生稀疏解。同时,我们还可以通过一张更明显的图示来进行说明,如图4-19所示。
图 4-19. 不同目标函数在两种约束条件下的最优解
从图4-19可以看出,对于不同的约束条件来说,相较于
约束条件目标函数都更容易在
约束条件下产生稀疏解。
最后,在实际运用过程中,还可以将两种正则化方式结合到一起,即弹性网络惩罚(Elastic-Net)[3],如式(4.24)所示
其中
是用来控制
和
惩罚项各自所占的比重,可以看出当
时式(4.24)便等价于
正则化,当
时则等价于
正则化。
同时,在sklearn中可以分别通过导入中的模块和来使用支持弹性网络惩罚的线性回归和逻辑回归,其中的参数便是式(4.24)中对应的
参数。
4.4.7 小结
在这节内容中,笔者首先通过示例详细介绍了如何通过
正则化方法来缓解模型的过拟合现象,以及介绍了为什么
正则能够使模型变得更简单,然后笔者通过一个示例来展示了
正则化的效果,与此同时,笔者还介绍了另外一种常见的
正则化方法,最后还详细对比了
正则化和
正则化的差异之处。
领取专属 10元无门槛券
私享最新 技术干货