这一讲里,我们进入到多元函数求极值的最后一部分,即牛顿法的内容中。
在前面的两讲内容里,我们所介绍的梯度下降法和最速下降法都只用到了目标函数的一阶导数(也就是梯度)来确定每一次迭代的搜索方向,因此也可以被称作为是一阶方法。
而另一种算法的优化思路是这样的,在迭代方法中引入高阶导数,其迭代效率可能会优于最速下降法,而牛顿法就是其中的典型代表,他的核心是同时使用一阶导(梯度)和二阶导(黑塞矩阵)来确定搜索方向,效率上要优于一阶的方法。
1.向量微分基础
1.1.函数的分类
在介绍牛顿法的具体算法之前,我们先来介绍一下向量微分的基础知识,这些内容在算法的实现中将会用到。
其实从多元函数的内容开始,我们对于函数的认识就应该深了一层,这里我们趁此机会把函数的种类全部梳理一遍。
我们看看三种函数,标量函数、向量函数和矩阵函数:
对于标量函数$f$,他的自变量可以是标量x,向量$x$,和矩阵$X$,然而函数的结果只能是标量,也就是说无论是标量、向量还是矩阵,经过标量函数的映射,得到的最终都是标量。
类似的,对于向量函数$f$和矩阵函数$F$,他的自变量同样可以是标量x,向量$x$或者矩阵$X$,但是通过向量函数$f$的映射,最终得到的结果都是向量,而通过矩阵函数$F$的映射,最终得到的结果都是矩阵。
而我们这几讲里所重点讨论的一元函数$f(x)$和多元函数$f(x_1,x_2,...,x_n)$属于什么类型?由于他们最终得到的结果值都是一个标量,因此我们所讨论的范畴依然还只是标量函数,而一元函数