Jacobian矩阵和Hessian矩阵

转载 2016年05月31日 16:06:24


Jacobian矩阵和Hessian矩阵

1. Jacobian

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

雅可比矩阵

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

假设F F: R n R m  Rn→Rm是一个从欧式n维空间转换到欧式m维空间的函数. 这个函数由m个实函数组成: y1(x1,…,xn), …, ym(x1,…,xn). 这些函数的偏导数(如果存在)可以组成一个m行n列的矩阵, 这就是所谓的雅可比矩阵:

⎡ ⎣ ⎢ ⎢ ⎢ ⎢ y 1 x 1  y m x 1    y 1 x n  y m x n   ⎤ ⎦ ⎥ ⎥ ⎥ ⎥  [∂y1∂x1⋯∂y1∂xn⋮⋱⋮∂ym∂x1⋯∂ym∂xn]

此矩阵表示为: J F (x 1 ,,x n ) JF(x1,…,xn), 或者(y 1 ,,y m )(x 1 ,,x n )  ∂(y1,…,ym)∂(x1,…,xn).

这个矩阵的第i行是由梯度函数的转置yi(i=1,…,m)表示的.

如果p pR n  Rn中的一点, F Fp p点可微分, 那么在这一点的导数由J F (p) JF(p)给出(这是求该点导数最简便的方法). 在此情况下, 由F(p) F(p)描述的线性算子即接近点p pF F的最优线性逼近, x x逼近于p p:

F(x)F(p)+J F (p)(xp) F(x)≈F(p)+JF(p)⋅(x–p)

雅可比行列式

如果m = n, 那么F F是从n维空间到n维空间的函数, 且它的雅可比矩阵是一个方块矩阵. 于是我们可以取它的行列式, 称为雅可比行列式.

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

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

2. 海森Hessian矩阵

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

f(x 1 ,x 2 ,x n ) f(x1,x2…,xn)

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

H(f) ij (x)=D i D j f(x) H(f)ij(x)=DiDjf(x)

其中x=(x 1 ,x 2 ,x n ) x=(x1,x2…,xn), 即H(f) H(f)为:

⎡ ⎣ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢  2 fx 2 1   2 fx 2 x 1   2 fx n x 1    2 fx 1 x 2   2 fx 2 2   2 fx n x 2     2 fx 1 x n   2 fx 2 x n   2 fx 2 n   ⎤ ⎦ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥  [∂2f∂x12∂2f∂x1∂x2⋯∂2f∂x1∂xn∂2f∂x2∂x1∂2f∂x22⋯∂2f∂x2∂xn⋮⋮⋱⋮∂2f∂xn∂x1∂2f∂xn∂x2⋯∂2f∂xn2]

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

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

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

1), 求解方程

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

原理是利用泰勒公式, 在x 0  x0处展开, 且展开到一阶, 即f(x)=f(x 0 )+(xx 0 )f  (x 0 ) f(x)=f(x0)+(x–x0)f′(x0)

求解方程f(x)=0 f(x)=0, 即f(x 0 )+(xx 0 )f  (x 0 )=0 f(x0)+(x–x0)f′(x0)=0, 求解x=x 1 =x 0 f(x 0 )/f  (x 0 ) x=x1=x0–f(x0)/f′(x0), 因为这是利用泰勒公式的一阶展开, f(x)=f(x 0 )+(xx 0 )f  (x 0 ) f(x)=f(x0)+(x–x0)f′(x0)处并不是完全相等, 而是近似相等, 这里求得的x 1  x1并不能让f(x)=0 f(x)=0, 只能说f(x 1 ) f(x1)的值比f(x 0 ) f(x0)更接近f(x)=0 f(x)=0, 于是乎, 迭代求解的想法就很自然了, 可以进而推出x n+1 =x n f(x n )/f  (x n ) xn+1=xn–f(xn)/f′(xn), 通过迭代, 这个式子必然在f(x  )=0 f(x∗)=0的时候收敛. 整个过程如下图:

2), 最优化

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

这次为了求解f  =0 f′=0的根, 把f(x) f(x)的泰勒展开, 展开到2阶形式:

f(x+Δx)=f(x)+f  (x)Δx+12 f ′′ (x)Δx 2  f(x+Δx)=f(x)+f′(x)Δx+12f″(x)Δx2

这个式子是成立的, 当且仅当 Δx Δx 无限趋近于0时, f(x+Δx)=f(x) f(x+Δx)=f(x), 约去这两项, 并对余项式f  (x)Δx+12 f(x)Δx 2 =0 f′(x)Δx+12f”(x)Δx2=0Δx Δx求导(注: f  (x) f′(x), f(x) f”(x)均为常数项. 此时上式等价与:

f  (x)+f ′′ (x)Δx=0 f′(x)+f″(x)Δx=0

求解:

Δx=f  (x n )f ′′ (x n )  Δx=−f′(xn)f″(xn)

得出迭代公式:

x n+1 =x n f  (x n )f ′′ (x n ) ,n=0,1,... xn+1=xn−f′(xn)f″(xn),n=0,1,...

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

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

x n+1 =x n [Hf(x n )] 1 f(x n ),n0 xn+1=xn−[Hf(xn)]–1∇f(xn),n≥0

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

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

举报

相关文章推荐

牛顿法、雅克比矩阵、海森矩阵

一般来说, 牛顿法主要应用在两个方面, 1, 求方程的根; 2, 最优化。 1,求方程的根 其原理便是使用泰勒展开,然后去线性部分,即:                 (1) 然后令上式等于0,...

Jacobian矩阵,Hessian矩阵和牛顿法

Jacobian矩阵和Hessian矩阵 1. Jacobian 在向量分析中, 雅可比矩阵是一阶偏导数以一定方式排列成的矩阵, 其行列式称为雅可比行列式. 还有, 在代数几何中, 代数曲线的雅可...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

Ubuntu16.10+GTX1060+Cuda8.0+Cudnn7+Tensorflow1.3+Python3.6

最近为了跑个Skipgram模型,准备装个带GPU的tensorflow,感觉网上教程不是很详细,就自己总结了下,有问题,欢迎私信~: 目录 安装Anaconda 建立一个tensorflow的运行环...

Jacobian矩阵和Hessian矩阵

1. Jacobian 转载自:http://jacoxu.com/?p=146 在向量分析中, 雅可比矩阵是一阶偏导数以一定方式排列成的矩阵, 其行列式称为雅可比行列式. 还有, 在代数几何...
  • memray
  • memray
  • 2013-06-26 00:26
  • 16387

最优化理论·光滑函数·Hessian矩阵·Jacobian矩阵·方向导数

Jacobian是向量函数f(x)f(\mathbf{x})相对于向量x\mathbf{x}的偏导数以一定方式排列成的矩阵1.向量函数:f(x)f(\mathbf{x})f(x)=⎡⎣⎢⎢⎢⎢⎢⎢f1...

【math】梯度(gradient)、雅克比矩阵(Jacobian)、海森矩阵(Hessian)

梯度: f(x)在各个方向上的偏导,组成的向量

Jacobian矩阵和Hessian矩阵

(x1,x2…,xn)构成的hessian矩阵的基矩阵n*n为 x1x1 x1x2 .... x1xn x2x1 x2x2 .... x2xn . . .... ...

Jacobian矩阵和Hessian矩阵

Jacobian矩阵和Hessian矩阵 发表于 2012 年 8 月 8 日 1. Jacobian 在向量分析中, 雅可比矩阵是一阶偏导数以一定方式排列成的矩阵, 其行列...

Jacobian矩阵和Hessian矩阵

1. Jacobian 在向量分析中, 雅可比矩阵是一阶偏导数以一定方式排列成的矩阵, 其行列式称为雅可比行列式. 还有, 在代数几何中, 代数曲线的雅可比量表示雅可比簇:伴随该曲线的一个代数群, ...

Jacobian矩阵和Hessian矩阵

1. Jacobian 在向量分析中, 雅可比矩阵是一阶偏导数以一定方式排列成的矩阵, 其行列式称为雅可比行列式. 还有, 在代数几何中, 代数曲线的雅可比量表示雅可比簇:伴随该曲线的一个代数群, 曲...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)