最近有些考研的小伙伴问到我这个问题,正好也给自己梳理一下思路,毕竟在机器学习里面这4个概念也是非常重要的,不过这里由于知识所限,就只整理跟考研部分比较相关的知识点了。
既然是4种点,首先就需要将其进行大致的分类,大致来说如下。
$$ \begin {cases} 一元函数 \quad \begin {cases} 一阶导数f'(x) \quad 驻点、极值点、鞍点 \\[3ex] 二阶导数f''(x) \quad 拐点 \end {cases} \\[3ex] 多元函数 \quad 极值点、鞍点 \end {cases} $$
一元函数
在一元函数有3种点——驻点、极值点和拐点。要想完全理解这三个定义的话就需要从函数的性质入手,对于函数来说,与极值点相关的就是函数的极大值、极小值、最大值和最小值。因此首先可以来看极大值、极小值的定义。
(Def1 极值) 设函数$f(x)$在点$x_0$的某个邻域$U(x_0)$内有定义,如果对于去心邻域$\mathring{U}(x_0)$内的任意一个$x$,有$$f(x)<f(x_0) \quad (或f(x)>f(x_0))$$那么就称$f(x_0)$是函数$f(x)$的一个极大值(极小值)。
从上述定义就可以看到,极大值和极小值其实和导数是没有任何关系的,所以如果真的要判断极大值和极小值的话,最为本质的方法应该是比较在待观察点邻域内函数值的变化情况,那么,导数在这里起到了什么作用呢?这是由极值的一个必要条件得到的。
(Thm2 极值的必要条件) 设函数$f(x)$在$x_0$处可导,且在$x=x_0$处取得极值,那么有$f'(x_0)=0$。
注意一下这个是必要条件,也就是说从可导的极值点才有导数值为0,这句话并不能用于通过导数去判断极值,也就是充分条件。但是至少给了我们一个思考的方向,那就是当思考从导数去判断极值的时候,我们应该要去寻找哪些点。
仔细观察Thm2中的描述,现在我们思考它的逆否命题,那便是,设函数$f(x)$在$x_0$处可导,如果有$f'(x_0)≠0$,那么在$x=x_0$处,$f(x)$不能取得极值。于是,我们其中一个思考的方向便是$f'(x)=0$的点,此外,如果一开始的假设就不成立的话,那么也有可能使得结论是成立的,这就是$f'(x)$不存在的点。
(Def3 驻点) 设$f(x)$可导,则使得$f'(x)=0$的点称为$f(x)$的驻点。
下面给出2个例子,说明驻点和不可导的点都可以是极值点。
(1) 考虑函数$f(x)=x^2$,有$f'(x)=2x$,那么在$x=0$处的导数值$f'(0)=0$,根据图像容易得到$f(0)=0$是$f(x)$的极小值点。
(2) 考虑函数$f(x)=|x|$,那么在$x=0$处连续,且左导数$f'_{-}(0)=-1$,右导数$f'_{+}(0)=1$,因此$f(x)$在$x=0$处不可导,但是根据图像也容易得到$f(0)=0$是$f(x)$的极小值点。
因此,我们在利用导数去考虑一个函数的极值的时候,需要判断2种点,第一种就是驻点,第二种就是导数不存在的点。然后接下来应该如何利用导数呢,我们就需要如下的定理,它给出了利用导数的符号去判断驻点是否为极值点的充分条件。
(Thm4 极值第一充分条件) 设函数$f(x)$在$x_0$处连续,且在$x_0$附近的空心邻域$\mathring{U}(x_0,\delta)$内可导。则有
(1) 若$x \in (x_0-\delta,x_0)$时,$f'(x)>0$,而$x \in (x_0,x_0+\delta)$时,$f'(x)<0$,则$f(x)$在$x=x_0$处取得极大值。
(2) 若$x \in (x_0-\delta,x_0)$时,$f'(x)<0$,而$x \in (x_0,x_0+\delta)$时,$f'(x)>0$,则$f(x)$在$x=x_0$处取得极小值。
(3) 若$x \in \mathring{U}(x_0,\delta)$时,$f'(x)$的符号保持不变,那么$f(x)$在$x_0$处没有极值,把这样子的点称为鞍点。
有了Thm4,我们求出来的驻点就有所发挥了,只要考虑在驻点周围的导函数的符号即可,这句话其实也是瞄着极值的定义来写的,我们可以将$f'(x)>0$简单的翻译成$f(x)$单调递增,将$f'(x)<0$简单的翻译成$f(x)$单调递减,这样子就从Thm4转化为Def1。
下面给出一个例子。
例: 求函数$f(x)=x+\frac{1}{x}$的极值和极值点。
解:
由$f(x)=x+\frac{1}{x}$可得定义域为$(-∞,0) \cup (0,+∞)$,接下来求导数可得$$f'(x)=1-\frac{1}{x^2}$$
令$f'(x)>0$可得$x<-1$或者$x>1$,令$f'(x)<0$可得$-1<x<0$和$0<x<1$,导数不存在的点为$x=0$。
因此可以知道$f(x)$在$(-∞,-1)$上递增,在$(-1,0)$上递减,在$(0,1)$上递减,$(1,+∞)$上递增,从而在$x=-1$上取得极大值$f(-1)=-2$,在$x=1$上取得极小值$f(1)=2$,$x=0$没有定义。
除了这种方法以外,还有一种方法就是利用二阶导数$f''(x)$,注意我们这里可以先把$f''