海森矩阵及其应用

海森矩阵

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

                       f(x1,x2…,xn)     


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

 

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

 


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

海森矩阵及其应用_第1张图片

 

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

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

1), 求解方程

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

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

2), 最优化

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

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

f(x+Δx)=f(x)+f′(x)Δx+12f′′(x)Δx2f(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+12f”(x)Δx2=0f′(x)Δx+12f”(x)Δx2=0对ΔxΔx求导(注: f'(x)f′(x), f”(x)f”(x)均为常数项. 此时上式等价与: 

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


求解: 

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


得出迭代公式: 

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


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

 

在上面讨论的是22维(xx坐标维度 + yy坐标维度)情况, 高维情况的牛顿迭代公式是: 

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

你可能感兴趣的:(海森矩阵及其应用)