1.5 极值点

图1.6展示了一个一元函数[1]fx),它具有多个已标记的导数为零的极值点,这是我们讨论优化问题时所关注的点。当最小化f时,我们希望找到一个全局极小值点,该点处的x值使得fx)最小化。一个函数最多有一个全局极小值,但可以有很多个全局极小值点。

图1.6 一个一元函数中优化算法关注的极值点(导数为零的点)

不幸的是,通常很难证明给定的候选点处于全局极小值。通常,我们最多能做的就是检查它是否处于局部极小值。如果存在一个δ>0,使得对于任意x,在|x-x*|<δ时,都有fx*)≤fx),则称一个点x*处于局部极小值(或者是一个局部极小值点)。在多元情况下,该定义推广到:存在一个δ>0,只要‖x-x*‖<δ,都有fx*)≤fx)。

图1.6展示了两种类型的局部极小值:强局部极小值和弱局部极小值。强局部极小值点,也称为严格局部极小值点,是在邻域内唯一最小化f的点。也就是说,如果存在一个δ>0,使得对于任意x,在x*x且|x-x*|<δ时,都有fx*)≤fx),我们称点x*为一个严格局部极小值点。在多元情况下,该定义推广到:存在一个δ>0,使得对于任意x,在x*x且‖x-x*‖<δ时,都有fx*)≤fx)。局部极小值点中不是强局部极小值点的点,被称为弱局部极小值点。

在连续、无界的目标函数中,所有局部和全局极小值处的导数都为零。但是,导数为零是局部极小值存在的必要条件而非充分条件[2]

图1.6中还有一个拐点,它的导数为零,但该点不会局部极小化f。在拐点处,f的二阶导数的符号会改变,其对应于f′的局部极小值或极大值。拐点处的导数不一定为零。

[1] 一元函数是单个标量的函数。一元这个术语描述了只有一个变量的对象。

[2] 具有非零导数的点永远不是极小值点。