主要内容
课程: 多变量微积分 > 单元 3
课程 3: 优化多元函数 (文章)最大值、最小值和鞍点
了解多元函数的局部最大值 (最小值) 概况。
我们要做的是什么
- 直觉上,当你用图形来思考时,多变量函数的局部极大值是峰值,就像单变量函数一样。
- 多变量函数在最大点处的梯度为零向量,对应于具有平面切平面的图形。
- 正式地说,当我们输入多变量函数
时,局部极大值点是输入空间中的一个点,该点附近的一个小区域中的所有其他输入产生的值都比他小。
高维优化
微积分最重要的应用之一是它能解出函数的最大值或最小值。
- 也许你自己经营一个公司,你想出一些函数去衡量你可以赚取多少钱,基于一些参数:如员工工资、原材料成本,等等。你要找到正确的资源组合来最大化你的收入。
- 也许你正在设计一辆车,希望能让它更符合空气动力学。你想出一个函数,去衡量基于众多参数下的总的风阻,从而来设计你汽车的外形,将风的阻力降低到最小值。
- 在机器学习和人工智能中,计算机“学习”如何做某事的方法通常是最大限度的减少程序员制定的一些“成本函数”。
视觉上局部最大值和最小值
让我们从那些我们可以画出的多变量函数开始:那些具有二维输入和标量输出的函数,像这样:
我选择这个函数是因为它有很多漂亮的起伏和波峰。我们称其中一个峰值为局部极大值,复数表达为为局部极大值。
- 在输入空间的峰值(在本例中是指
-平面)下面的点 称为局部最大值点。 - 函数在局部极大值点处的值,也就是图像在该点上方的高度,就是局部极大值本身。
“局部”一词用来区别这些值和函数的全局最大值,后者是函数能够实现最大值。如果你在一山的顶峰上,这是一个局部的最大值,但是除非那座山是珠穆朗玛峰,否则它不是全球的最高峰。
在本文的最后,我将给出局部极大值点的正式定义。直观地说,它是输入空间中的一个特殊点,在这个点上,向任何方向迈出一小步都只会降低函数的值。
类似地,如果图上某一点有一个倒置的峰值,我们说函数在 -平面上的这一点上/下处有一个局部最小值点,函数在这一点上的值是一个局部最小值。直观地说,在这些点上,任何方向的步进都只能增加函数的值。
一个变量中的稳定点(回顾)
你可能还记得单变量微积分中的局部极大/极小的概念,在这个概念中你会遇到很多类似的问题:
概念检查: 取什么值时,函数 能得到最大值?最大值是多少?
通常,函数 的局部极大值和极小值是通过输入值 的求导函数 来计算的。这是因为只要函数是连续的及可微的,切线在最大值和最小值时就会变平,其斜率是 。
这一点 有不同的名称:
- 稳态点
- 临界点
- 平稳点
所有这些都意味着相同的内容:
要求 是连续的和可微分的是很重要的,因为如果它不是连续的,则不连续点可以是局部最大值:
如果 是连续的但不可微分的,那么局部最大值可能是这样的:
在这两种情况下,讨论这些最大值点的切线都没有意义,对吧?
然而,即使 是连续可微的,即使导数为 ,该点也可能不是最值,因为这也发生在拐点:
这意味着找到稳定的点是开始寻找最大值的好方法,但这个不一定是结果。
对于函数的图形,这意味着它的切平面在局部最大值或最小值处是平坦的。例如,这是一个具有许多局部极值和平面切面的图:
这有一个在一个单变量函数中,输入 的的名称与函数相同。
- 稳态点
- 稳态点
- 临界点
“稳定”和“平稳”这两个词背后的思想是,当你稍微靠近这个输入时,函数的值不会发生显著变化。在我看来,“临界”这个词总是有些夸张,就好像函数即将在这些点附近死去。
与单变量函数一样,保证一个点是局部最大值或最小值,仅使梯度为零是不够的。首先,仍然有类似于拐点的东西:
但也有一种全新的可能性,这种可能性是多变量函数所独有的。
鞍点
考虑函数 。我们观察一下原点 周围的情况。
- 两个偏导数在这一点的值都是
。
因此 是一个稳定的点。
- 当你在这个点 在
方向移动,函数可以写成 。变量函数 在 时有一个局部最小值 。 - 当你在这个点 在
方向移动,函数可以写成 。变量函数 在 时有一个局部最大值 。
换句话说,对于这个输入应该是最大值还是最小值, 和 方向存在分歧。因此,即使 是一个稳定的点,但它不是一个拐点,它也不能是局部最大值或局部最小值!
这是这个图形在空间中旋转的视频:
数学家们也是这么想的,他们很少见地决定为某样东西取一个好名字: 鞍点。根据定义,这些是稳定的点,函数在一个方向上有局部最大值,但在另一个方向上有局部最小值。
测试最大值/最小值
"好吧,"
我听到你说
“因此,梯度为 是不够的,因为你可能有一个拐点或鞍点。但是你怎么知道一个稳定点是局部最大值还是最小值呢?
我很高兴你问了这个问题!这是下一篇文章关于二阶偏导数检验的主题。现在,让我们用局部极大值的正式定义来结束。
正式定义
我之前已经说过了,但是学习正式定义的原因,即使你已经有了一种直觉,是为了让你自己了解如何精确地捕捉到直观的数学思想。这是清晰思考的好练习,也有助于理解直觉与现实的不同。
在定义局部最大值时,让我们使用向量表示输入,将其写成 。
局部最大值的正式定义:一个标量值函数 在 处有一个局部最大值,如果存在一个正数 ,想象它是一个半径,那么下面的语句为真:
这有点拗口,让我们来分解一下:
说" "意味着变量 与最大点 之间的距离小于 。当 是二维的,这就相当于说 位于以 为圆心的半径 的圆内。
更进一步,如果 是 维的,那么所有 的集合使得 形成一个以 为圆心,半径为 的 维的球。
然后我们可以把这个定义从数学语言翻译成更类似于英语的东西如下:
是 的最大值,如果在点 附近的输入空间中有一个小的(球状的)区域,那么您可以在点 处获得该区域点上的 值的最大值。
测试你的理解:写出局部最小值的正式定义,并在写下它时思考每个组件的含义。(不要只是想把上面定义的单词抄下来。)
总结
- 直觉上,当你用图形来思考时,多变量函数的局部极大值是峰值,就像单变量函数一样。
- 多变量函数在最大点处的梯度为零向量,对应于具有平面切平面的图形。
- 正式地说,当我们输入多变量函数
时,局部极大值点是输入空间中的一个点,该点附近的一个小区域中的所有其他输入产生的值都比他小。