Jacobian矩阵和Hessian矩阵

 Jacobian矩阵和Hessian矩阵

转载自:http://jacoxu.com/jacobian%E7%9F%A9%E9%98%B5%E5%92%8Chessian%E7%9F%A9%E9%98%B5/

 

目录

 Jacobian矩阵和Hessian矩阵

1. Jacobian矩阵

(1)雅可比矩阵

(2)雅可比行列式

2、Hessian矩阵

(1)海森矩阵在牛顿法中的应用


 

 

1. Jacobian矩阵

在向量分析中,雅可比矩阵是一阶偏导数以一定方式排列成的矩阵, 其行列式称为雅可比行列式. 还有,在代数几何中, 代数曲线的雅可比量表示雅可比簇:伴随该曲线的一个代数群,曲线可以嵌入其中。它们全部都以数学家卡尔·雅可比(Carl Jacob, 1804年10月4日-1851年2月18日)命名;英文雅可比量”Jacobian”可以发音为[ja ˈko bi ən]或者[ʤə ˈko bi ən]。

(1)雅可比矩阵

雅可比矩阵的重要性在于它体现了一个可微方程与给出点的最优线性逼近。因此, 雅可比矩阵类似于多元函数的导数。

假设\large F:R_{n}\rightarrow R_{m}是一个从欧式n维空间转换到欧式m维空间的函数。这个函数由m个实函数组成:\large y_{1}(x_{1},x_{2},......,x_{n}),......,y_{m}(x_{1},x_{2},......,x_{n}) 。这些函数的偏导数(如果存在)可以组成一个m行n列的矩阵, 这就是所谓的雅可比矩阵:

\large \begin{bmatrix} \frac{\partial y_{1}}{\partial x_{1}} & ... & \frac{\partial y_{1}}{\partial x_{n}}\\ .& .&. \\ .& .&. \\ .& .&. \\ \frac{\partial y_{m}}{\partial x_{1}} & ... & \frac{\partial y_{m}}{\partial x_{n}} \end{bmatrix}

此矩阵表示为:\large J_{F}(x_{1},x_{2},......,x_{n}),或者\large \frac{\partial(y_{1},y_{2},......,y_{m})}{\partial(x_{1},x_{2},......,x_{n})}

这个矩阵的第i行是由梯度函数的转置\large y_{i}(i=1,......,m)表示的。

如果 \large p\large R_{n}中的一点,\large F\large p点可微分,那么在这一点的导数由\large J_{F}(p)给出(这是求该点导数最简便的方法)。 在此情况下,由\large F(p)描述的线性算子即接近点\large p\large F的最优线性逼近,\large x逼近于\large p

\large F(x)\approx F(p)+J_{F}(p)\cdot (x-p)

(2)雅可比行列式

如果m = n,那么F是从n维空间到n维空间的函数,且它的雅可比矩阵是一个方块矩阵。于是我们可以取它的行列式, 称为雅可比行列式。在某个给定点的雅可比行列式提供了在接近该点时的表现的重要信息。 例如, 如果连续可微函数\large F\large p点的雅可比行列式不是零,那么它在该点附近具有反函数。这称为反函数定理。更进一步, 如果\large p点的雅可比行列式是正数, 则\large F\large p点的取向不变;如果是负数,则\large F的取向相反。而从雅可比行列式的绝对值,就可以知道函数\large F\large p点的缩放因子;这就是为什么它出现在换元积分法中。

对于取向问题可以这么理解,例如一个物体在平面上匀速运动,如果施加一个正方向的力\large F,即取向相同,则加速运动,类比于速度的导数加速度为正;如果施加一个反方向的力\large F,即取向相反,则减速运动,类比于速度的导数加速度为负。

 

2、Hessian矩阵

在数学中, 海森矩阵(Hessian matrix或Hessian)是一个自变量为向量的实值函数的二阶偏导数组成的方块矩阵, 此函数如下:

\large f(x_{1},x_{2},.......,x_{n})

如果\large f的所有二阶导数都存在, 那么\large f的海森矩阵即:

\large H(f)_{ij}(x)=D_{i}D_{j}f(x)

其中\large x=(x_{1},x_{2},......,x_{n}),即\large H(f)为:

\large \begin{bmatrix} \frac{\partial^{2} f}{\partial^{2} x_{1}}& \frac{\partial^{2} f}{\partial x_{1} \partial x_{2}} & ... & \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^{2} x_{2} } & ... & \frac{\partial^{2} f}{\partial x_{2} \partial x_{n}}\\ .& .&. &.\\ .& .&. &.\\ .& .&.&. \\ \frac{\partial^{2} f}{\partial x_{n} \partial x_{1}}& \frac{\partial^{2} f}{\partial x_{n} \partial x_{2}} & ... & \frac{\partial^{2} f}{ \partial^{2} x_{n}}\\ \end{bmatrix}

(也有人把海森定义为以上矩阵的行列式)海森矩阵被应用于牛顿法解决的大规模优化问题.

(1)海森矩阵在牛顿法中的应用

一般来说,牛顿法主要应用在两个方面:1、 求方程的根;2、最优化.

1) 求解方程

并不是所有的方程都有求根公式, 或者求根公式很复杂, 导致求解困难。利用牛顿法。可以迭代求解。

原理是利用泰勒公式, 在\large x_{0}处展开, 且展开到一阶,即\large f(x)=f(x_{0})+(x-x_{0})f^{'}(x_{0})

求解\large f(x)=0,即\large f(x_{0})+(x-x_{0})f^{'}(x_{0})=0,求解\large x=x_{1}=x_{0}-\frac{f(x_{0})}{f^{'}(x_{0})},因为这是利用泰勒公式的一阶展开, \large f(x)=f(x_{0})+(x-x_{0})f^{'}(x_{0}) 处并不是完全相等, 而是近似相等, 这里求得的\large x_{1}并不能让f(x)=0, 只能说\large f(x_{1})的值比\large f(x_{0})更接近\large f(x)=0。于是乎, 迭代求解的想法就很自然了,可以进而推出\large x_{n+1}=x_{n}-\frac{f(x_{n})}{f^{'}(x_{n})},通过迭代,这个式子必然在\large f(x^{*})=0的时候收敛。 整个过程如下图:

 

Jacobian矩阵和Hessian矩阵_第1张图片

2)最优化

在最优化的问题中,线性最优化至少可以使用单纯形法(或称不动点算法)求解,但对于非线性优化问题,牛顿法提供了一种求解的办法。假设任务是优化一个目标函数\large f ,求函数f的极大极小问题,可以转化为求解函数\large f的导数\large f^{'}=0的问题,这样求可以把优化问题看成方程求解问题\large (f^{'}=0)。 剩下的问题就和第一部分提到的牛顿法求解很相似了。

这次为了求解\large f^{'}=0 的根, 首先把\large f(x) 在探索点\large x_{n} 处泰勒展开, 展开到2阶形式进行近似:

\large f(x)=f(x_{n})+f^{'}(x_{n})(x-x_{n})+\frac{f^{''}(x_{n})}{2!}(x-x_{n})^{2}

然后用\large f(x) 的最小点做为新的探索点\large x_{n+1},据此,令:

\large f^{'}(x)=f^{'}(x_{n})+f^{''}(x_{n})(x-x_{n})=0

求得出迭代公式:

\large x_{n+1}=x_{n}-\frac{f^{'}(x_{n})}{f^{''}(x_{n})},n=0,1,...

一般认为牛顿法可以利用到曲线本身的信息,比梯度下降法更容易收敛(迭代更少次数),如下图是一个最小化一个目标方程的例子,红色曲线是利用牛顿法迭代求解, 绿色曲线是利用梯度下降法求解。

Jacobian矩阵和Hessian矩阵_第2张图片

在上面讨论的是2维情况, 高维情况的牛顿迭代公式是:

\large x_{n+1}=x_{n}-[Hf(x_{n})]^{-1}\bigtriangledown f(x_{n}),n \slant \geq 0

其中H是hessian矩阵, 定义见上. 

高维情况依然可以用牛顿迭代求解, 但是问题是Hessian矩阵引入的复杂性, 使得牛顿迭代求解的难度大大增加, 但是已经有了解决这个问题的办法就是Quasi-Newton method, 不再直接计算hessian矩阵, 而是每一步的时候使用梯度向量更新hessian矩阵的近似.

[1. Hessian参考: Wikipedia]

[2. Newton优化法参考: 运筹学第三版 刁在筠著]

你可能感兴趣的:(数学,线性代数)