Jacobian矩阵和Hessian矩阵

转载自:http://jacoxu.com/jacobian%e7%9f%a9%e9%98%b5%e5%92%8chessian%e7%9f%a9%e9%98%b5/

1. Jacobian


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

雅可比矩阵

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

假设F
: Rn→Rm

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

⎡⎣⎢⎢⎢⎢∂y1∂x1⋮∂ym∂x1⋯⋱⋯∂y1∂xn⋮∂ym∂xn⎤⎦⎥⎥⎥⎥

此矩阵表示为: JF(x1,…,xn)
, 或者∂(y1,…,ym)∂(x1,…,xn)

.

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

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

:

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

雅可比行列式

如果m = n, 那么F

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

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

点的缩放因子;这就是为什么它出现在换元积分法中.

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

, 即取向相反, 则减速运动, 类比于速度的导数加速度为负.

2. 海森Hessian矩阵

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

f(x1,x2…,xn)

如果f
的所有二阶导数都存在, 那么f

的海森矩阵即:

H(f)ij(x)=DiDjf(x)

其中x=(x1,x2…,xn)
, 即H(f)

为:

⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢∂2f∂x21∂2f∂x2∂x1⋮∂2f∂xn∂x1∂2f∂x1∂x2∂2f∂x22⋮∂2f∂xn∂x2⋯⋯⋱⋯∂2f∂x1∂xn∂2f∂x2∂xn⋮∂2f∂x2n⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥

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

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

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

1), 求解方程

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

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

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

的时候收敛. 整个过程如下图:

2), 最优化

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

). 剩下的问题就和第一部分提到的牛顿法求解很相似了.

这次为了求解f′=0
的根, 把f(x)

的泰勒展开, 展开到2阶形式:

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

这个式子是成立的, 当且仅当 Δx
无限趋近于0时, f(x+Δx)=f(x), 约去这两项, 并对余项式f′(x)Δx+12f”(x)Δx2=0对Δx求导(注: f′(x), f”(x)

均为常数项. 此时上式等价与:

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

求解:

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

得出迭代公式:

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

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

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

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

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

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值