三个层面、三个不同角度理解正则化

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_27825451/article/details/84133852

全文摘要

“正则化”这是机器学习和深度学习都在不断用到的一个技术手段,也是解决模型模型过拟合最常用的手段,但是很少有文章真正讲的深入彻底,本文是在之前自己的一篇博文的基础之上进行补充的,将再次从“三个不同层面”解释正则化,本文只针对L1、L2正则化。

三个不同层面理解“正则化”

我们经常说,对于L1正则化,在极小值处,会产生“稀疏解”,而对于L2正则化,在极小值处,会产生“平顺解”,那么这个所谓的“稀疏”和“平顺”到底怎么理解呢?本文将从三个不同的层面进行解释,即解的空间形状、函数叠加层面、贝叶斯先验层面。有关详细的数学推导可以参考我的另一篇文章:

1 “解的空间形状”

机器学习的经典之作给出的解释无疑是权威且直观的,面试者给出的答案多数也是从这个角度出发的。在二维的情况下,黄色的部分是L2 和L1 正则项约束后的解空间,绿色的等高线是凸优化问题中目标函数的等高线,如下图 所示。由图可知,L2 正则项约束后的解空间是圆形,而L1 正则项约束的解空间是多边形。显然,多边形的解空间更容易在尖角处与等高线碰撞出稀疏解。

上述这个解释无疑是正确的,但却不够精确,面试者往往回答过于笼统,以至于忽视了几个关键问题。比如,为什么加入正则项就是定义了一个解空间约束?为什么L1 和L2的解空间是不同的?面试官如果深究下去,很多面试者难以给出满意的答案。其实可以通过KKT条件给出一种解释。

事实上,“带正则项”和“带约束条件”是等价的。为了约束w 的可能取值空间从而防止过拟合,我们为该最优化问题加上一个约束,就是w 的L2 范数的平方不能大于m:

为了求解带约束条件的凸优化问题,写出拉格朗日函数

若w* 和λ* 分别是原问题和对偶问题的最优解,则根据KKT 条件,它们应满足

仔细一看,第一个式子不就是w* 为带L2 正则项的优化问题的最优解的条件嘛,而λ* 就是L2 正则项前面的正则参数。

这时回头再看开头的问题就清晰了。L2 正则化相当于为参数定义了一个圆形的解空间(因为必须保证L2 范数不能大于m),而L1 正则化相当于为参数定义了一个棱形的解空间。如果原问题目标函数的最优解不是恰好落在解空间内,那么约束条件下的最优解一定是在解空间的边界上,而L1“棱角分明”的解空间显然更容易与目标函数等高线在角点碰撞,从而产生稀疏解。

本节小结

综上所述:L1、L2正则化的的本质都是带有约束条件的非线性规划问题。L1的解空间是菱形,L2的解空间是圆形。更详细的具体解释参见我的另一片文章的第4.2节,那里有更详细的解释。

2 函数叠加层面

第二个角度试图用更直观的图示来解释L1 产生稀疏性这一现象。仅考虑一维的情况,多维情况是类似的,如下 所示。假设棕线是原始目标函数L(w) 的曲线图,显然最小值点在蓝点处,且对应的w* 值非0。

首先,考虑加上L2正则化项,目标函数变成L(w)+Cw2,其函数曲线为黄色。此时,最小值点在黄点处,对应的w 的绝对值减小了,但仍然非0。

然后,考虑加上L1 正则化项,目标函数变成L(w)+C|w|,其函数曲线为绿色。此时,最小值点在红点处,对应的w 是0,产生了稀疏性。

产生上述现象的原因也很直观。加入L1 正则项后,对带正则项的目标函数求导,因为正则项是一个绝对值函数,函数求导需要分段进行,正则项部分产生的导数在原点左边部分是−C,在原点右边部分是C,因此,只要原目标函数的导数绝对值小于C,那么带正则项的目标函数在原点左边部分始终是递减的,在原点右边部分始终是递增的,最小值点自然在绝对值函数的拐点处,也就是原点处。相反,L2 正则项在原点处的导数是0,只要原目标函数在原点处的导数不为0,那么最小值点就不会在原点,所以L2 只有减小w 绝对值的作用,对解空间的稀疏性没有贡献。

3 贝叶斯先验层面

从贝叶斯的角度来理解L1 正则化和L2 正则化,简单的解释是, L1 正则化相当于对模型参数w 引入了拉普拉斯先验,L2 正则化相当于引入了高斯先验,而拉普拉斯先验使参数为0 的可能性更大。

下图是高斯分布曲线图。由图可见,高斯分布在极值点(0 点)处是平滑的,也就是高斯先验分布认为w 在极值点附近取不同值的可能性是接近的。这就是L2 正则化只会让w 更接0点,但不会等于0 的原因。

相反,下图是拉普拉斯分布曲线图。由图可见,拉普拉斯分布在极值点(0 点)处是一个尖峰,所以拉普拉斯先验分布中参数w 取值为0 的可能性要更高。在此我们不再给出L1 和L2 正则化分别对应拉普拉斯先验分布和高斯先验分布的详细证明。

本节小结

L1 正则化相当于对模型参数w 引入了拉普拉斯先验,L2 正则化相当于引入了高斯先验。

因为拉普拉斯分布在极值点处可能性更大,所以会有更多的参数为0.解更加稀疏。

而高斯分布在极值点附近的概率很大,但都是差不了太多的,所以参数的解会大部分靠近0,表现得更加平滑。

猜你喜欢

转载自blog.csdn.net/qq_27825451/article/details/84133852