在之前的文章中,我们介绍了雅可比行列式,它用于计算多变量系统的梯度。当应用于标量值多变量系统时,雅可比行列式会生成一个行向量,指向梯度最大的方向,其长度与部分陡峭程度成比例。本文将进一步探讨雅可比的概念,从向量扩展到矩阵。
我们从一个简单的例子入手,介绍如何应用雅可比的概念。通过计算简单的偏导数,我们可以得到雅可比向量。接下来,我们尝试通过观察向量场来推测函数的形状,并在多个方向上寻找雅可比的值。
图像显示了一个指向原点的向量。当我们逐渐靠近原点时,这些向量变得更短,但仍指向原点。零向量意味着原点可能是最大值、最小值或鞍点。我们将进一步介绍鞍点的概念。
通过观察整个向量场,我们可以确认原点实际上是系统中的最大值。现在,我们将构造一个雅可比矩阵。该函数接受一个向量作为输入,并返回一个向量作为输出。
考虑以下两个函数:
这两个函数可以被视为两个不同的向量空间。一个空间包含向量(u)和(v),而另一个空间包含向量(x)和(y)。在(xy)坐标系中移动一个点,在(uv)坐标系中会有对应的路径,但路径本身可能完全不同。
在(uv)系统中,每个点在(xy)系统中都有对应的点。在(xy)坐标系中绕一个点移动将在(uv)系统中具有对应的路径,但路径完全不同。
(u)和(v)的雅可比行向量可以用矩阵形式表示,因为它们是单个向量的组成部分。对于向量值函数,这就是雅可比矩阵的结构。接下来,我们将应用这一概念到前面提到的函数,并查看结果。
常数值表明梯度在整个空间中都是恒定的。这个矩阵只是将(xy)空间线性转换到(uv)空间。如果我们使用向量(xy),结果将是:
我们遇到的许多函数并不是如此简单甚至线性的。它们往往更加复杂,通常是非线性的。然而,这些函数通常足够平滑。通过仔细缩放,我们可以认为每个小区域的雅可比矩阵近似线性,这样可以改变区域的大小。
我们可以在笛卡尔坐标系和极坐标系之间进行转换时体验这一点。考虑表示半径和从x轴向上角度的向量(r)。我们必须分别用(x)和(y)来表示它们。
利用三角函数,我们可以将它们表示为以下表达式:
接着,我们构建雅可比矩阵并找到它的行列式。
我们得到的结果是(r),不包含(theta)。这表明,当我们沿(r)方向远离原点时,较小的空间区域会随着(r)的增大而放大。
雅可比向量和矩阵在机器学习微积分中有广泛应用,有助于建立对这些概念的直观理解。在机器学习中,“优化”通常指寻找函数的最大值或最小值。在实际应用中,优化可以用于绘制道路、安排生产计划、制定库存策略等。
我们经常需要找到函数的最大值或最小值。为了做到这一点,我们首先构建雅可比矩阵,然后找到使梯度为零的(x)和(y)的值。然而,对于复杂的函数,找到最大值和最小值可能会变得非常困难。
对于复杂的函数,我们可以通过解析表达式找到雅可比矩阵,但将它设置为零可能无济于事。这些函数可能有多个梯度为零的位置。如果绘制所有函数的最大值和最小值,我们将看到最高的山峰和最深的山谷。所有的山峰都是最大值,所有的山谷都是最小值。
最高的单个山峰(在这种情况下为A)是全局最大值,而C和E是局部最小值。同样,点D是全局最小值,点B是局部最小值。
然而,当函数变得复杂时,找到全局最优解变得困难。这时,雅可比向量可以帮助我们找到局部最优解,但不一定是最优解。这就是所谓的“夜间爬山”问题。为了更好地解决这些问题,我们引入了海森矩阵。
海森矩阵是对雅可比矩阵的进一步扩展,用于计算函数的二阶导数。它是一个(n times n)的方阵,其中(n)是函数中变量的数量。通过构建海森矩阵,我们可以确定函数在梯度为零的点上的特性,从而进一步帮助我们解决问题。
在实际应用中,我们常常面对高维函数。在机器学习中,我们经常处理大量维度的数据,有时高达数十万。在这种情况下,绘制表面和导航变得非常困难。我们依赖于数学理论和数值方法来指导我们的研究。
即使在二维系统中工作,也可能没有良好的解析表达式,每次计算都需要很高的成本。即使可以绘制函数,也可能缺乏足够的计算资源来填充它。此外,现实世界中的函数可能包含严重的不连续性,使得导航变得更加困难。
另一个挑战是噪声。有许多原因可能导致函数变得嘈杂。尽管如此,雅可比矩阵和海森矩阵仍然为我们提供了强大的工具来理解和解决这些问题。
总之,我们已经掌握了处理多变量系统的方法,这在机器学习中非常重要。在后续的文章中,我们将探讨多元链式法则和其他必要的微积分概念,并将其应用于优化神经网络。
通过这些讨论,我们建立了解决高维系统问题的直觉,这对机器学习至关重要。