MAT9004复习总结(1)

MAT9004复习总结

快到期末了......最近在复习MAT9004这门课,这门课主要讲的是高数、线性代数和概率论的一些基础知识,lecture上一般讲的比较简单,但每个知识点的切入点都很不错,在复习过程中有一些困惑,结合一些资料以及之前的知识储备浅略的探索了一下,总结的可能比较零碎,如果篇幅较长的话后期再做分类整理.

一阶近似引出的点

首先给出一阶近似(first order approximation)的概念 : \[f(x_0+ \Delta x) \approx f(x) + f'(x)\Delta x\] 对于二元函数 : \[f(x + \Delta x, y + \Delta y) \approx f(x, y) + f_x (x, y) \Delta x + f_y (x, y) \Delta y\] 这里的一阶近似就是一阶泰勒展式,这里可以联想到几处知识点,泰勒公式海森矩阵极值点判定牛顿法.

泰勒公式

泰勒公式(Taylor's Formula)本质上是用多项式函数对光滑函数进行逼近,也就是在\(x_0\)处用\(n\)阶多项式模拟(逼近)复杂函数 : \[f(x)=\sum_{n=0}^N {f^{n}(a) \over n!} (x-a)^n + R_n(x)\]

表示函数在\(a\)处的泰勒展式,其中\(R\)是余项,是对误差的近似估计. 这里除以\(n!\)是为了惩罚高阶多项式,应为当低阶和高阶相加时,由于幂函数增长速度非常快,导致低阶的特性完全没覆盖,因此通过施加这种惩罚来让多项式在\(x\)值较小时呈现出低阶的特性,随着\(x\)的增大再显现处高阶特性.

至于为什么泰勒公式可以实现在\(x_0\)处,用一个多项式函数去近似一个复杂函数,这是因为本质上泰勒公式的做法是让近似多项式函数在 \(x=x_0\)处的\(y\)值,一阶导数,二阶导数,......,n阶导数 \(=\) 原函数在 \(x=x_0\)处的\(y\)值,一阶导数,二阶导数,......,n阶导数,即近似函数和原函数在某点的值一样,变化率一样,变化率的变化率一样,变化率的变化率的变化率也一样......至于为什么要这样做,这里引用知乎上的一个举例 :

一小滑块以\(v_0\)的初速度,从\(x=S_0\)处运动(以向右为正方向),求\(t\)时小滑块的路程\(S\). \[S=S_0+v_0t, S'=v_0\] 一小滑块以\(v_0\)的初速度,\(a\)的加速度,从\(x=S_0\)处运动(以向右为正方向),求\(t\)时小滑块的路程\(S\). \[S = S_0 + v_0t + {1\over2}at^2, S'=v_0+at, S''=a\] 一小滑块以\(v_0\)的初速度,\(a\)的初加速度,\(b\)的初加加速度,从\(x=S_0\)处运动(以向右为正方向),求\(t\)时小滑块的路程\(S\). 这里加加速度其实就是加速度对时间的导数 : \[S=S_0 + v_0t + {1\over2}at^2 + {1\over6}bt^3, S'=v_0+at+{1\over2}bt^2,S'''=a+bt,S''''=b\] 总结一下上面的规律可以发现 : \[S=S_0+{1\over1!}v_0t + {1\over2!}at^2 + {1\over3!}bt^3\] 我们继续往后扩展 :

一小滑块以\(v_0\)的初速度,\(a\)的初加速度,\(b\)的初加加速度,\(c\)的初加加加速度,\(d\)的初加加加加速度......,从\(x=S_0\)处运动(表征了一个小滑块的任意运动情况)(以向右为正方向),求\(t\)时小滑块的路程\(S\). 根据上面找到的规律 : \[S=S_0+{1\over1!}v_0t + {1\over2!}at^2 + {1\over3!}bt^3 + {1\over4!}ct^4 + {1\over5!}dt^5...\] 因此规律可以归结为 : \[S={S_0\over0!}+{S^{(1)}\over1!}v_0t + {S^{(2)}\over2!}at^2 + {S^{(3)}\over3!}bt^3 + {S^{(4)}\over4!}ct^4 + ... +{S^{(n)}\over n!}dt^n\]

这个例子形象说明了无论小滑块沿着直线如何运动,我们只要从初始点开始,把整个过程中每一处加速度的变化,加速度变化的变化,加速度变化的变化的变化......全部计算进去,就能够得到最终所到达的位置. 而在实际应用中由于不可能将这些变化全部考虑进去,因此得到的就是原函数的近似值(approximation),这也就是泰勒公式用多项式函数逼近复杂函数的大致过程.

海森矩阵

海森矩阵(The Hessian Matrix) 是由函数的二阶偏导数组成的n阶方块矩阵,二元函数的海森矩阵 : \[H(x) = \left[ \begin{matrix} f_{xx}(x,y) & f_{xy}(x,y) \\ f_{yx}(x,y) & f_{yy}(x,y) \end{matrix} \right] \] 其一阶导向量,也就是梯度向量为 : \[\nabla f = \left[ \begin{matrix} f_x(x,y) \\ f_y(x,y) \end{matrix} \right]\] 对于n元函数,\(x=(x_1, x_2, x_3,...,x_n)\),Hessian Matrix 表示为 : \[\begin{bmatrix} \frac{\partial^2 f}{\partial x_1^2} & \frac{\partial^2 f}{\partial x_1\,\partial x_2} & \cdots & \frac{\partial^2 f}{\partial x_1\,\partial x_n} \\ \\ \frac{\partial^2 f}{\partial x_2\,\partial x_1} & \frac{\partial^2 f}{\partial x_2^2} & \cdots & \frac{\partial^2 f}{\partial x_2\,\partial x_n} \\ \\ \vdots & \vdots & \ddots & \vdots \\ \\ \frac{\partial^2 f}{\partial x_n\,\partial x_1} & \frac{\partial^2 f}{\partial x_n\,\partial x_2} & \cdots & \frac{\partial^2 f}{\partial x_n^2} \end{bmatrix}\] 海森矩阵可以应用于判定极值点以及牛顿法解决大规模优化问题.

极值点判定

我们可以应用上一节提到的Hessain Matrix判定极值点是否存在. 首先需要计算Hessian Matrix的行列式(determinate) : \[D = det(H(x, y))\]

将能够使一阶导为零的点\((x,y)\)代入上式 :

  • if \(D > 0\), \((x,y)\) 是极值点(local extrema);

  • if \(D = 0\), 判定无意义 (inconclusive);

  • if \(D < 0\), \((x,y)\) 是鞍点 (saddle point).

其中鞍点 (saddle point) 是指从不同的角度来看,该点是不同类型的极值点 (In one direction it looks like a local maximum, while in another direction it looks like a local minimum).

For local extrema :

  • if \(f_{xx} > 0\), then \((x,y)\) is a local minimum;

  • if \(f_{xx} < 0\), then \((x,y)\) is a local maximum.

同时二阶导和海森矩阵也能够判断函数的凹凸性 :

  • \(f\) is convex if and only if for all \((x,y) \in R^2\), \(f_{xx},f_{yy} \geq 0, det(H(x,y)) \geq 0\)

  • \(f\) is convex if and only if for all \((x,y) \in R^2\), \(f_{xx},f_{yy} \leq 0, det(H(x,y)) \geq 0\)

对于凹函数和凸函数来说 :

  • A local minimum point of a convex function is also a global minimum

  • A local maximum point of a concave function is also a global maximum

牛顿法

这个模块主要记录一下牛顿法以及牛顿法和梯度下降的区别. (越写越多,坑真的大......) 明天再写吧,扩展太多怕是复习不完了......

牛顿法介绍

牛顿法与梯度下降

References

0%