线性模型正则化的直观解释

2020-05-06 03:54:36

Terence Parr Terence在旧金山大学的数据科学硕士项目任教,您可能知道他是ANTLR解析器生成器的创建者。

线性和Logistic回归模型很重要,因为它们是可解释的、快速的,并且形成了深度学习神经网络的基础。它们也非常简单;我们只是通过训练数据拟合直线(或超平面)。不幸的是,线性模型倾向于追逐训练数据中的异常值,这通常会导致模型不能很好地概括到新数据。为了产生更好的通用性模型,我们都知道要使我们的模型正规化。正则化的形式有很多,如提前停止和退出进行深度学习,但对于孤立的线性模型,Lasso(L1)和Ridge(L2)正则化是最常见的。拟合线性模型和正则化背后的数学在其他地方也有很好的描述,例如在Hastie、Tibishani和Friedman的优秀著作“统计学习的元素(ESL)”中。这个世界当然不需要另一篇关于正则化线性模型力学的文章,所以我将假设你熟悉基础知识。

缺少的是一个简单而直观的解释,说明在正规化过程中到底发生了什么。这篇文章的目的是解释正规化是如何在视觉上表现出来的,并在此过程中破除一些神话,回答一些重要的问题。这篇文章的爆炸性发展远远超出了我的初衷,所以让我从总结关键元素开始;这样您就可以快速回到看YouTube或玩动物穿越游戏了。

就我个人而言,我最初最大的绊脚石是:用于实现正则化的数学与通常用于解释正则化的图片不一致。看看ESL第71页“收缩方法”一节中经常复制的图片(如左下图所示)。学生们在他们的职业生涯中多次看到这种情况,但很难将其与用于正规化线性模型训练的相对简单的数学联系起来。原因很简单,因为这个插图显示了我们如何在概念上使用硬约束来正规化模型,而不是我们如何实际实现具有软约束的正则化!数学实际上对应于右侧的图片,损失函数以蓝红(蓝色=较低,红色=较高损失)表示,而正则化惩罚项以橙色表示,从(0,0)开始。

正则化在概念上使用硬约束来防止系数变得太大(来自ESL图片的青色圆圈)。然而,出于实现的目的,我们通过将约束作为一项添加到损失函数来将“受制于”硬约束转换为软约束。正则化损失函数中的硬约束变为方程中的项,并且具有控制正则化的新常数:。惩罚项是一个软约束,因为没有阈值或限幅;更大的系数只是更昂贵。其效果是将普通损失函数“碗”向上移动,损失函数向原点最小,如右侧所示;该碗是损失碗和惩罚碗的相加。这幅图中唯一变化的是lambda;训练数据保持不变。移动碗是非调节损失函数加上罚金L2项。

这里有一个关于L1套索的关键问题:L1是鼓励系数缩小到零,还是仅仅不鼓励零?它鼓励零,我通过运行大量随机损失函数(不同的最小值位置和形状)的模拟来验证这一点。在下面的图像中,绿点表示导致零正则系数的损失函数最小值的位置。蓝色表示不会导致零系数的损失函数,橙色表示差一点未命中。L1往往不会险些命中,因此左侧的模拟仅为蓝色/绿色。对于其最小值在垂直于菱形边缘的区域中的任何损失函数,左侧的L1菱形硬约束趋于零系数。对于真正靠近或位于其中一个轴上的损失函数最小值,L2循环约束趋向于零系数。

如果L1鼓励系数为零,它为什么要这样做?!为什么L2不鼓励系数为零?假设我们有一些训练数据,其中与关联的变量非常具有预测性,而另一个变量则不是。在这种情况下,我们会看到一个带有等高线的损失函数,如下图所示,其中大黑点是非正则化损失函数的最小值。对于L1情况,最佳位置是钻石尖端的紫点。这是正确的,因为任何离开那个点的移动都会增加损失。看看L1紫点发出的轮廓线。关联的椭圆在所有位置具有相同的损耗值