主要内容
渐变
梯度存储多变量函数的所有偏导数信息。 但它'不仅仅是一个存储设备, 它有几个美妙的解释 和许多, 许多用途。
我们要做的是什么
- 标量的多变量函数
的梯度, 称为 , 将其所有的偏导数信息打包成一个向量:
特别的是, 这意味着 是一个向量值函数。
- 如果你想象在
的输入空间,站在某点 ( ), 向量 告诉你应该走哪个方向来最快地增加 的值。 - 这些梯度向量 ——
—— 也垂直于 的等高线。
定义
在知道了具有多维输入的函数有偏导数后,你可能会想知道这种函数的完整导数是多少。在标量的多变量函数 的情形下,这意味着是那些多维输入但是一维输出的函数,答案是梯度。
函数 的梯度 , 称为 , 是将其所有的偏导数信息打包成一个向量。
这是最容易理解的一个例子。
示例 1: 二维
如果 , 下列哪个表示了 ?
这个矢量场常被称作 的梯度场。
反思题:为什么在这个矢量场中在 平面中间沿着对角线向上的矢量那么小?
示例 2: 三维
理解梯度
在上面的每个粒钟,我们将 描绘为矢量场,但是我们要怎么理解这些矢量场呢?
更具体地来说,让我们思考 的输入为二维的情形。梯度将每个输入点 转化为向量。
关于函数围绕点 的行为,向量要告诉我们什么呢?
把 的图像想象成一个丘陵地形。如果站在图上位于点 正上方——或下方——的位置,山丘的坡度取决于你走的方向。例如,如果你往 的正方向走,坡度为 ;如果你往 的正方向走,坡度则为 。但是大部分的方向是两者的结合。
关于梯度最重要的需要记住的是:的梯度, 如果以输入 计算, 指的是上升最陡的方向。
因此,如果你朝着梯度的方向走,你会直上山顶。同样,在该方向上,向量的大小 告诉你山的坡度有多少。
为什么 把偏导数放入向量中会给你最大上升斜率并不是那么直接地一目了然,但是一旦我们学到 方向导数 就会解释这个。
当一个函数 的输入存在于多于两个维度的空间中,我们不再可以舒舒服服地把它描绘成一个丘陵地形了。尽管如此,背后的基本理念还是相同的。无论 的输入空间是二维的,三维的,还是1,000,000维的: 的梯度给出了一个在输入空间中的一个向量,即为指向使得函数 增长最快的方向。
示例 3: 局部极大值看上去是什么样子的
思考该函数 。它的梯度是多少?
这是 的图像所呈现的样子:
注意,它有两个峰值。这是 矢量场看上去的样子——颜色更红的向量应被理解为更长,颜色更蓝的向量应被理解为更短:
两个输入点与 图像中的峰值相对应,且峰值被指向这些点的箭头所包围。这是为什么?
这是因为在山顶的附近,最快上升的方向总是指向山顶。
反思题:在函数局部最小值附近的梯度场看上去会是什么样子的呢?
梯度垂直于等高线
让我们以函数
为例:
看上面的图片,你可能注意到了一些有趣的东西:每个向量都与它所碰到的等高线垂直。
想要知道为什么会这样,选取一条特定的等高线,它代表了输出为2的等高线,然后放大到该线上的一个点。我们知道梯度 指向 的值增加最快的方向。有两种方式可以来想这个方向:
- 选择一个固定的步长,然后找到一个可以使得每一步都让
增加最多的方向。 - 选择
的一个固定增长值,然后找到一个能使 增加该固定值的 最短 步长的方向。
无论哪一种,你都在试图在行进重最大化升高的高度,要么通过最大化上升值,要么最小化行进长度。
等高线图很好的描绘出了第二视角可能看上去的样子。在上面的图2中,第二条等高线代表了2.1,它比最初的值为 2 的等高线大一点点。 的梯度则应该指向到达第二条线的尽可能短的方向。
我们越放大,这些线越像平行的直线。从一条线到另一条平行于它的线的最短距离始终垂直于该两条线,因此梯度会看上去与等高线垂直。
del算子
在多变量微积分中,或者其他情况下,算子这个词会多次出现。这个可能听上去很高大上,但是在大多数情况下,你可以把算子理解为“把一个函数变成另一个函数的东西”的意思。
导数就是一个算子的例子,因为它把函数 变成了一个新函数 。 微分算子 是所有把导数的概念扩展到不同的情境中的算子。
微分算子示例
名称 | 符号 | 示例 | ||||
导数 | ||||||
偏导数 | ||||||
梯度 |
无论你想叫它啥,算子 可以被没那么严谨地认为是偏导数算子的向量:
这不是一个特别确切的定义。一方面,这个向量的维度未定义,因为它取决于 所应用的函数有多少输入。另外,通过算子产生的向量通常很快且宽松。但是,因为在实践中,它的含义通常都很清晰,人们几乎不怎么担心这个问题。
想象一下, 将此向量 "乘以" 一个标量值函数:
总结
- 标量的多变量函数
的梯度, 称为 , 将其所有的偏导数信息打包成一个向量:
特别的是, 这意味着 是一个向量值函数。
- 如果你想象在
的输入空间,站在某点 ( ), 向量 告诉你应该走哪个方向来最快地增加 的值。 - 这些梯度向量
也垂直于 的等高线。