机器学习微积分中的函数优化

我们已经在“机器学习微积分”系列中介绍了很多内容。从一维函数,梯度,导数到多元环境中的jacobian(

雅可比)和hessian(海森)。我们还使用MacLaurin(麦克劳林)Taylor series(泰勒级数)方法讨论了线性化和近似函数。今天,在机器学习微积分-函数优化中,我们将探讨机器学习的另一个重要方面,即优化函数的参数。多元微积分可以帮助我们找到函数的最大值和最小值,而我们的目标是找到适合数据的函数。

我们将从一个维度开始,学习重要的牛顿-拉夫森方法,然后使用雅可比向量(梯度向量)进入多维。这将导致我们采用梯度下降法。最后,我们将讨论一些有约束的情况,并尝试使用拉格朗日乘数找到它们的梯度下降解。

函数优化牛顿-拉夫森法:

我们将从一个简单的场景开始。我们需要找到导数以便使用牛顿-拉夫森方法求解方程。考虑具有均值Μ(mu)和宽度Σ的分布。

机器学习微积分中的函数优化

我们要使我们的数据适合这种分布,为此我们有两个参数均值宽度。这样我们就不必在所有数据点之间移动。我们将有一个带有两个参数的模型,我们可以使用它进行所有操作。更简单,更快。但是如何找到模型的最佳参数?

我们的方法是找到最适合模型与数据的表达式。然后,我们将观察拟合优度随拟合参数mu和sigma的变化。首先,让我们做更多的演算。

考虑下面的方程可微分为两个二次解。这意味着它将有两个最大和最小的转折点,如图所示。

机器学习微积分中的函数优化

假设我们不知道方程式。或它的尺寸太大,我们无法对其进行可视化。假设我们必须找到一个y = 0的解。在图上,我们可以看到它只有一个解。根据方程的形式,它可能有多个解决方案。我们将开始从我们最初的猜测附近寻找解决方案。如果我们在x = -2处评估解决方案,则可以说该函数的值是-2且渐变为10。如果我们将该渐变外推到y截距,则在y轴上此截距处的x值将是我们的下一个估计方程的解。

机器学习微积分中的函数优化

我们将再次对其进行推断,并寻找该解决方案的下一个估计值。我们可以根据先前一个方程式的猜测为新的猜测写。

如果我们从原始猜测i = 0开始制作表格,

机器学习微积分中的函数优化

您仅需3次迭代即可看到方程式的解。这是牛顿-拉夫森法。使用这种方法,我们不必每次都评估函数。我们既不必绘制图形,也不必代数求解。如果我们有一个多元函数,那么所有这些在解析上求解都将是昂贵的,甚至绘制它也会非常庞大​​。我们尝试解决方案,评估,找到下一个猜测,然后一次又一次重复直到获得所需解决方案的这种

计算方法称为迭代方法

接下来,快速查看一些这种方法可能会出错的情况。例如,我们从x = 0开始。Y的计算结果为2。当我们找到梯度并将其外推时,我们将远离求解。

机器学习微积分中的函数优化

在x = 1时的另一个猜测将y评估为1。梯度的外推使我们回到x = 0,即我们开始的位置。这将我们困在一个循环中,在该循环中,我们一直在0和1之间切换,永远不会接近我们所需的x = -1.769解。

机器学习微积分中的函数优化

在转折点出现另一个问题。最大值和最小值。这里的梯度很小。当我们使用这个小值对牛顿-拉夫森方程进行除法时,下一个估计将是一些非收敛的疯狂值。

机器学习微积分中的函数优化

这些就是问题。使用牛顿-拉夫森(Newton-Raphson)方法,我们评估一个函数来找到它的梯度,并迭代地做这个。大多数时候,它帮助我们达成我们的解决方案。在这种情况下,牛顿-拉夫森是一个强大的方法,只要计算它的值和梯度几次就可以得到解。

为了想象这整个场景,假设你在晚上站在一个岩石的地方。你不能看到整个风景。你只能通过一小步来感受周围的环境。你可以感觉到周围的陡峭,然后朝一个方向迈出一步,这个方向可以把你带到一个安全的没有岩石的地方。重点是你不需要知道整个面积或者整个函数。你只需要知道函数的值,感受局部的陡度或梯度。

在用牛顿-拉夫森方法找到一维函数的梯度后,让我们进入下一个多维函数在微积分中的机器学习-函数优化。

多元函数的优化-梯度下降法

当x和y为正时,该函数为正;当y为负时,该函数为负。

机器学习微积分中的函数优化

机器学习微积分中的函数优化

给我们的问题是,到达该图底部的最快方法是什么?我们知道如何区分多元函数(我们已经在前面的部分中学习了)。

机器学习微积分中的函数优化

接下来,我们将把这两个梯度写成一个向量。函数f的梯度。

机器学习微积分中的函数优化

Grad是一个很棒的向量,它结合了线性代数和微积分!

如果我们把这个向量和另一个向量r点乘,它告诉我们df/dx在这个向量的x方向上移动了多少,df/dy在这个向量的y方向上移动了多少。

机器学习微积分中的函数优化

另一件需要注意的事是我们在空间中对点a和b求值。我们想知道当向量沿着一个相反方向的单位向量移动时,有多少变化。我们称这个单位向量为r^,其分量为c和d,然后取梯度f和r^的点积,称为方向梯度。

机器学习微积分中的函数优化

另一个问题可能是方向梯度的最大高度是多少?

这意味着r^与grad f平行。因此,为了获得最大的方向梯度,我们希望r为梯度f的归一化形式。

机器学习微积分中的函数优化

这等于gad f的平方除以grad f的大小,grad f的大小等于grad f的大小。

机器学习微积分中的函数优化

因此,方向梯度的最大值仅是梯度f的大小。因此,这是我们可以拥有的最陡峭的坡度。

另一个问题是渐变点在哪里?朝哪个方向。如果您在大雾天站在山顶上,要走下去,您将看到山峦。不在山上,在我们的情况下不在轮廓上。因此,梯度指向垂直于轮廓线的最陡下降方向。

梯度f指向最深下降的方向,而–梯度f指向最陡下降的方向。

如果我们要对数据拟合模型。我们将研究数据点与模型拟合之间的最小差异。我们可以使用牛顿-拉夫森(Newton-Raphson)使用梯度从某些测试点转到所需的解决方案。但是在牛顿-拉夫森,我们寻找零点。在这里,我们不知道函数的最小值。

在这种情况下,我们使用梯度下降法。我们采取了一系列小步骤以达到最低要求。假设我们从sn点开始。然后,我们迈出一小步达到sn +1。此sn + 1等于sn减去在前一点sn求出的grad f的一些乘积。sn + 1 = sn – x(等级f)sn

因此,我们向山下走了一步,重新评估,再走一步,并以此方式采取了一系列较小的步骤。根据我们的开始步骤,仍然有可能陷入局部极小值中,但仍然是数值优化器中通常用于解决实际问题的相当有用的方法。

最后,在用于机器学习的微积分-函数优化中,我们将讨论约束优化。那就是找到最大或最小的约束,例如沿着一条线等。

使用的方法称为拉格朗日乘数

约束优化–拉格朗日乘数:

下面是我们上面讨论的函数的等高线图,其中垂直于等高线绘制了梯度。

机器学习微积分中的函数优化

现在,我们必须找到此函数的最大值,但要限制在圆上。圆的半径是一个平方,我们想在该圆上找到最大值。请注意,不是圆上所有位置的值,而是圆上的最大值。

机器学习微积分中的函数优化

法国数学家拉格朗日(Lagrange)注意到,等高线接触路径时,我们得到了最大值和最小值。等高线稍小时,它不会碰;如果等高线大,它们可能会像等高线图中那样交叉多次。当它碰到时,我们沿路径获得函数的最大值和最小值,在我们的例子中为圆。

此外,拉格朗日注意到,当轮廓接触路径时,垂直于轮廓的矢量与路径本身的垂直矢量在负方向上的方向相同。这意味着,如果找到梯度,则可以找到函数的最大和最小点。

我们想要找到一个圆约束的最大值和方程的函数是,

机器学习微积分中的函数优化

我们必须解决

机器学习微积分中的函数优化

其中λ是拉格朗日乘数。

解方程

机器学习微积分中的函数优化

解决方案:

机器学习微积分中的函数优化

因此对于函数解,我们得到2个最大值。

我们已经利用对梯度的理解来找到函数的最大值和最小值,该函数受到圆形路径上某些约束的约束。

总结:

在本文中,我们通过结合线性代数和向量来研究向量微积分。我们主要讨论了函数优化和方程优化。我们开始与牛顿-拉夫森方法,我们开始与猜测解和使用梯度移动到下一个猜测,直到我们达到所需的解决方案。

我们也看了多元的情况,学习了梯度下降。这是目前用于优化函数的最强大的工具。使用梯度下降法,如果我们找到我们最初估计的梯度,然后采取更小的步骤下山,我们可以得到我们的解决方案。我们最后讨论了约束条件下的优化函数。我们讨论的方法使用拉格朗日乘子。在机器学习的微积分-函数优化中,我们已经涵盖了机器学习的一个相当重要的方面,那就是优化函数参数,使模型更好地拟合数据值。


分享到:


相關文章: