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