数学基础部分包括:泰勒展开、雅克比矩阵、海森矩阵、链式法则、方向导数、仿射集、凸集、锥和凸锥以及超平面、半平面和凸函数的概念。
1.泰勒展开
泰勒公式在本质上是用函数的多项式展开去逼近函数本身的值,因为多项式函数比较容易分析,所以一般情况下对精度要求不高的时候可以使用其展开形式对原函数进行代替。
泰勒展开的定义:设
是一个正整数,如果定义在一个包含
的区间上函数
在
点处
次可导,那么对于这个区间上的任意
都有:
其中的多项式为函数在处的泰勒展开式,
是泰勒公式的余项且是
的高阶无穷小。
一般情况下在
处展开,得到的公式是麦克劳伦公式:
1.1 如何理解泰勒公式?
通过上面的式子可以看出来,泰勒展开实际上用一个点 的函数值和定义域中任意一点到该点的距离定义得来,为什么通过这种方式可以表示一个函数?
牛顿插值法
泰勒展开的思想实际上是牛顿插值法的推广,牛顿插值法是一种用已知的点去拟合函数的方法,下面用一个例子对牛顿插值法进行理解:

对于已知的四个点 ,我们想要构造一个能够经过这四个点的光滑函数
。
在已知第一个点的情况下,我们可以构建函数形式如下:
此时构造的函数是一条直线。在知道第一和第二个点的情况下,我们对上面的函数形式进行改变:
此时可以通过两个已知点将计算出来:
此时得到的函数图像如下图所示:

- 在知道第三个点的情况下,对
进行修改:
同样的方式对进行求解:
得到的函数图像如下:

- 用同样的方式再次求得系数
image.png
得到通过牛顿插值法得到的最终函数图像:

如果知道函数
个点的信息,那么就能通过牛顿插值法得到多项式函数
代替原函数:
从牛顿插值理解泰勒展开
牛顿插值法需要知道函数的任意 个点的值后就可以对函数
进行近似,如果该
个点之间距离十分接近,即有
:
那么牛顿插值法就变成了泰勒展开:
其中 的数值就可以理解为插值法中的点的个数,当该值较少(即
较小)的时候,
能够拟合点
附近的
的值,该值较大的时候,能够拟合更远处的
的值,当
的时候,有
无限接近
。
用例子来理解
在下图中蓝色虚线是原函数,黄色曲线使我们通过插值得到的函数
当有5个插值点的时候,函数的图像如下图所示:

当我们增加插值点到10个的时候,可以明显看出来 能够对距离
更远处的
值进行拟合:

从另一个角度理解泰勒展开项的系数
泰勒展开的过程中用多项式函数对原来的函数进行拟合,其中展开的过程中越高次数的多项式其对应的系数越小,这说明这些项在距离展开点 较近的时候发挥的作用较小,随着
的值逐渐远离展开点,这些项也逐渐发挥作用
1.2 皮亚诺与拉格朗日余项
通过上面的推导我们知道用泰勒展开去近似函数的时候在展开点处附近的近似效果最好,当函数值远离展开点的时候也就存在一定的误差,这种误差用余项 去表示。
假设函数 在
处有
阶导数,则有:
其中:
可以看出来当距离展开点 越近的时候该余项的值越小。
皮亚诺余项能够虽然能够表示误差,但是无法具体表示误差的大小,可以用拉格朗日余项具体表示余项的大小:
其中 是介于
和
之间的某个值。
1.3 一般形式的泰勒展开
对于标量形式的泰勒展开有:
如果选择方向 ,则有:
若 为向量形式:
其中 为
到
之间的向量。
2.雅克比矩阵与海森矩阵
雅克比矩阵
雅可比矩阵是多元函数组成向量的一阶导数,该导数的表示形式是一个矩阵,称为雅克比矩阵。
例如有多元函数组成的向量形式:
该函数的一阶导数为:
该矩阵就成为雅克比矩阵。
海森矩阵
海森矩阵是多元实值函数 的二阶偏导数构成的矩阵。
例如有多元实值函数:
则其对应的一阶偏导数:
对应的海森矩阵:
3.链式法则、方向导数
链式法则
链式法则是用于复合函数求导的法则,对于一个复合函数进行求导有:
最常见的使用链式法则的地方是神经网络进行权重更新的时候,当进行神经网络后向传播的时候,利用链式法则可以计算出每个层中系数对于最终结果的导数值,利用该导数值进行权重更新。
方向导数
方向导数用来表示函数沿着某一个方向的变化情况,通常其计算方式是单位方向向量与导数值的乘积:
例子:求 在
沿着
的方向导数:
方向导数在后面使用优化算法寻找函数极小点的过程中十分重要,当方向导数的值大于零的时候我们认为该方向为函数的上升方向,反之则为下降方向。(实际常用负的方向导数判断,大于零则为下降方向)
