回归基础,DOS 部分:线性回归、成本函数和梯度下降

欢迎来到我们回归基础系列的第二部分。在第一部分中,我们介绍了如何使用线性回归和成本函数为我们的房价数据找到最佳拟合线。然而,我们也看到测试多个截距值可能是乏味且低效的。在…

原文标题Back To Basics, Part Dos: Linear Regression, Cost Function, and Gradient Descent

回归基础,DOS 部分:线性回归、成本函数和梯度下降

欢迎来到我们回归基础系列的第二部分。在第一部分中,我们介绍了如何使用线性回归和成本函数为我们的房价数据找到最佳拟合线。然而,我们也看到测试多个截距值可能是乏味且低效的。在第二部分中,我们将更深入地研究梯度下降,这是一种强大的技术,可以帮助我们找到完美的截距并优化我们的模型。我们将探索它背后的数学原理,看看它如何应用于我们的线性回归问题。[0]

梯度下降是一种强大的优化算法,旨在快速有效地找到曲线的最小点。形象化这个过程的最好方法是想象你站在山顶,山谷里有一个装满金子的宝箱等着你。

回归基础,DOS 部分:线性回归、成本函数和梯度下降

然而,山谷的确切位置是未知的,因为外面太黑了,我们什么也看不见。此外,我们想在其他人之前到达山谷(因为我们想要自己所有的宝藏 duh)。梯度下降帮助我们导航地形并高效快速地到达这个最佳点。

通过使用算法规定的步骤,可以将梯度下降应用于我们的线性回归问题。为了可视化寻找最小值的过程,让我们绘制 MSE 曲线。我们已经知道曲线的方程是:

回归基础,DOS 部分:线性回归、成本函数和梯度下降

而从上一篇文章中,我们知道我们问题中MSE的方程为:[0]

回归基础,DOS 部分:线性回归、成本函数和梯度下降

如果我们缩小我们可以看到,可以通过在上面的等式中代入一堆截距值来找到 MSE 曲线。因此,让我们插入 10,000 个截距值,以获得如下所示的曲线:

回归基础,DOS 部分:线性回归、成本函数和梯度下降

目标是到达这条 MSE 曲线的底部,我们可以通过以下步骤来做到这一点:

第 1 步:从截距值的随机初始猜测开始

在这种情况下,假设我们对截距值的初始猜测为 0。

第二步:计算此时MSE曲线的梯度

曲线在某一点的梯度由该点的切线表示(一种奇特的说法,该线仅在该点与曲线接触)。例如,在 A 点,当截距等于 0 时,MSE 曲线的梯度可以用红色切线表示。

回归基础,DOS 部分:线性回归、成本函数和梯度下降

为了确定梯度的值,我们应用微积分知识。具体来说,梯度等于曲线相对于给定点截距的导数。这表示为:

回归基础,DOS 部分:线性回归、成本函数和梯度下降

注意:如果您不熟悉导数,如果有兴趣,我建议您观看这段可汗学院视频。否则,您可以忽略下一部分,但仍然能够阅读本文的其余部分。[0]

我们计算 MSE 曲线的导数如下:

回归基础,DOS 部分:线性回归、成本函数和梯度下降

现在要找到 A 点的梯度,我们将 A 点的截距值代入上式。由于截距 = 0,因此 A 点的导数为:

回归基础,DOS 部分:线性回归、成本函数和梯度下降

所以当截距=0时,梯度=-190

注意:当我们接近最佳值时,梯度值接近零。在最佳值处,梯度等于零。相反,我们离最优值越远,梯度就越大。

回归基础,DOS 部分:线性回归、成本函数和梯度下降

由此,我们可以推断出步长应该与梯度有关,因为它告诉我们应该迈出一小步还是迈出一大步。这意味着当曲线的梯度接近 0 时,我们应该采取小步骤,因为我们接近最优值。如果梯度越大,我们应该采取更大的步骤才能更快地达到最优值。

注意:但是,如果我们迈出巨大的一步,那么我们可能会跳得很大而错过最佳点。所以我们需要小心

回归基础,DOS 部分:线性回归、成本函数和梯度下降

第 3 步:计算步长并使用梯度和学习率更新截距值

Learning Rate 控制 Step Size 的大小,并确保所采取的步骤不会太大或太小。步长是通过将梯度乘以学习率来确定的。

实际上,学习率通常是一个小于等于 0.001 的小正数。但是对于我们的问题,我们将其设置为 0.1。

所以当截距为0时,Step Size = gradient x Learning Rate = -190*0.1 = -19。

根据我们上面计算的步长,我们使用以下任何公式更新截距:

回归基础,DOS 部分:线性回归、成本函数和梯度下降

所以我们插入数字……

回归基础,DOS 部分:线性回归、成本函数和梯度下降

…并发现新截距 = 19。

现在将这个值代入 MSE 方程,我们发现截距为 19 时的 MSE = 8064.095。我们注意到,在一大步中,我们更接近最优值并降低了 MSE。

回归基础,DOS 部分:线性回归、成本函数和梯度下降

即使我们查看图表,我们也会看到截距为 19 的新线比截距为 0 的旧线更适合我们的数据:

回归基础,DOS 部分:线性回归、成本函数和梯度下降

Step 4: Repeat steps 2–3

我们使用更新后的截距值重复步骤 2 和 3。

例如,由于本次迭代的新截距值为 19,因此在第 2 步之后,我们将在这个新点计算导数:[0]

回归基础,DOS 部分:线性回归、成本函数和梯度下降

并且我们发现MSE曲线在截距值为19处的梯度为-152(如下图红色切线所示)。

回归基础,DOS 部分:线性回归、成本函数和梯度下降

接下来我们按照Step 3,计算一下Step Size:[0]

回归基础,DOS 部分:线性回归、成本函数和梯度下降

随后,更新拦截值:

回归基础,DOS 部分:线性回归、成本函数和梯度下降

现在我们可以将之前截距为 19 的线与新截距为 34.2 的新线进行比较……

回归基础,DOS 部分:线性回归、成本函数和梯度下降

……我们可以看到新线更符合数据。

总体而言,MSE 正在变小……

回归基础,DOS 部分:线性回归、成本函数和梯度下降

……我们的步长越来越小:

回归基础,DOS 部分:线性回归、成本函数和梯度下降

我们迭代地重复这个过程,直到我们收敛到最优解:

回归基础,DOS 部分:线性回归、成本函数和梯度下降

随着我们朝着曲线的最小点前进,我们观察到步长变得越来越小。经过 13 步,梯度下降算法估计截距值为 95。如果我们有一个水晶球,这将被确认为 MSE 曲线的最小点。很明显,与蛮力方法相比,这种方法如何更有效。

现在我们有了截距的最优值,线性回归模型为:

回归基础,DOS 部分:线性回归、成本函数和梯度下降

最后,回到我们朋友马克的问题——他应该以什么价格出售他 2400 平方英尺的房子?

回归基础,DOS 部分:线性回归、成本函数和梯度下降

将 2400 平方英尺的房屋面积代入上述等式……

回归基础,DOS 部分:线性回归、成本函数和梯度下降

……瞧。我们可以告诉不必要地担心的朋友马克,根据他附近的 3 栋房子,他应该考虑以 260,000 美元左右的价格出售他的房子。

现在我们对这些概念有了扎实的理解,让我们做一个快速的问答环节来回答任何挥之不去的问题。

为什么找到梯度实际上有效?

为了说明这一点,请考虑我们试图达到曲线 C 的最小点(表示为 x*)的场景。如果我们当前位于 x 处的 A 点,位于 x* 的左侧:

回归基础,DOS 部分:线性回归、成本函数和梯度下降

如果我们取曲线在 A 点相对于 x 的导数,表示为 dC(x)/dx,我们得到一个负值(这意味着梯度向下倾斜)。我们还观察到我们需要向右移动才能到达 x*。因此,我们需要增加 x 以达到最小值 x*。

回归基础,DOS 部分:线性回归、成本函数和梯度下降

由于dC(x)/dx为负,x-𝛂*dC(x)/dx会大于x,从而向x*移动。

类似地,如果我们位于最小点 x* 右侧的点 A,那么我们会得到正梯度(梯度向上倾斜)dC(x)/dx。

回归基础,DOS 部分:线性回归、成本函数和梯度下降

所以 x-𝛂*dC(x)/dx 将小于 x,从而向 x* 移动。

Gradient Decent 如何知道何时停止采取步骤?

当步长非常接近 0 时,梯度下降停止。当一个点的梯度接近 0 时会发生这种情况。如前所述,在最小点处梯度为 0,当我们接近最小值时,梯度接近 0。因此,当某一点的梯度接近于0或在最小点附近时,Step Size也将接近于0,表明算法已经达到最优解。

回归基础,DOS 部分:线性回归、成本函数和梯度下降

实际上,最小步长 = 0.001 或更小

回归基础,DOS 部分:线性回归、成本函数和梯度下降

话虽这么说,梯度下降还包括对放弃前所采取的步数的限制,称为最大步数。

实际上,最大步数 = 1000 或更大

所以即使Step Size大于Minimum Step Size,如果已经超过了Maximum Number of Steps,梯度下降也会停止。

如果最小点不是那么容易识别怎么办?

到目前为止,我们一直在使用一条曲线,可以很容易地确定最小点所在的位置。但是,如果我们有一条不那么漂亮的曲线,看起来像这样怎么办:

回归基础,DOS 部分:线性回归、成本函数和梯度下降

在这里,我们可以看到 B 点是全局最小值(实际最小值),A 点和 C 点是局部最小值(可能与全局最小值混淆但不是的点)。所以如果一个函数有多个局部最小值和一个全局最小值,不能保证梯度下降会找到全局最小值。此外,它找到的局部最小值将取决于初始猜测的位置(如梯度下降的第 1 步所示)。[0]

回归基础,DOS 部分:线性回归、成本函数和梯度下降

以上图为例,如果初始猜测在块 A 或块 C,梯度下降将声明最小点分别在局部最小值 A 或 C,而实际上它在 B。只有当初始猜测是在区块 B,算法将找到全局最小值 B。

现在的问题是——我们如何做出好的初始猜测?

简单的答案:反复试验。有点儿。

不那么简单的答案:从上图中,如果我们对 x 的最小猜测是 0,因为它位于块 A 中,它将导致局部最小值 A。因此,如您所见,0 可能不是一个好的大多数情况下的初步猜测。一种常见的做法是应用基于 x 所有可能值范围内均匀分布的随机函数。此外,如果可行,使用不同的初始猜测运行算法并比较它们的结果可以深入了解猜测之间是否存在显着差异。这有助于更有效地识别全局最小值。

好的,我们快到了。最后一个问题。

如果我们试图找到不止一个最优值怎么办?

到目前为止,我们只专注于找到最佳截距值,因为我们神奇地知道线性回归的斜率值为 0.069。但是,如果没有水晶球并且不知道最佳斜率值怎么办?然后我们需要优化斜率和截距值,分别表示为 x₀ 和 x₁。

为了做到这一点,我们必须利用偏导数而不仅仅是导数。

注意:要了解有关偏导数的更多信息,请阅读本文或观看此视频。[0][1]

但是,该过程仍然与优化单个值的过程相对相似。仍然必须定义成本函数(例如 MSE)并且必须应用梯度下降算法,但增加了寻找 x₀ 和 x₁ 的偏导数的步骤。

第 1 步:对 x₀ 和 x₁ 进行初步猜测

第 2 步:求关于 x₀ 和 x₁ 在这些点的偏导数

回归基础,DOS 部分:线性回归、成本函数和梯度下降

第 3 步:根据偏导数和学习率同时更新 x₀ 和 x₁

回归基础,DOS 部分:线性回归、成本函数和梯度下降

第 4 步:重复第 2-3 步,直到达到最大步数或步长小于最小步长

我们可以将这些步骤外推到 3、4 甚至 100 个值以进行优化。

总之,梯度下降是一种强大的优化算法,可以帮助我们有效地达到最优值。梯度下降算法可应用于许多其他优化问题,使其成为数据科学家必备的基本工具。就这样,我们由两部分组成的回归基础系列已经完成并尘埃落定。现在进入更大更好的算法!

一如既往,请随时在 LinkedIn 上与我联系或发送电子邮件至 shreya.statistics@gmail.com 向我发送有关您想要说明的任何其他算法的问题和建议![0]

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
乘风的头像乘风管理团队
上一篇 2023年2月5日 下午6:00
下一篇 2023年2月5日 下午6:11

相关推荐