查看原文
其他

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

草yang年华 机器学习与python集中营 2021-09-10

进入正文

全文摘要

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

另一篇相关的文章:史上最简单易懂、全面详细的“正则化”教程


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


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

01

01

“解的空间形状”

机器学习的经典之作给出的解释无疑是权威且直观的,面试者给出的答案多数也是从这个角度出发的。在二维的情况下,黄色的部分是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节,那里有更详细的解释。


02

02

函数叠加层面

第二个角度试图用更直观的图示来解释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 绝对值的作用,对解空间的稀疏性没有贡献。


03

03

贝叶斯先验层面

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

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


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


本节小结

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

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

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



2018/11/15

Thursday

上面就是关于正则化的详细解释了,如果有不懂的地方可以参阅前面的文章,参见:史上最简单易懂、全面详细的“正则化”教程

两篇一起阅读会更加容易理解哦!后续还会继续分享关于机器学习、深度学习相关的知识,请记得继续关注哦!

往期回顾


史上最简单易懂、全面详细的“正则化”教程

机器学习试试水——15道机器学习面试真题检测一下吧!

两本经典“计算机视觉”书籍下载

人工智能技术栈——核心知识体系(知识图分享)

















: . Video Mini Program Like ,轻点两下取消赞 Wow ,轻点两下取消在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存