Hessian矩阵

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

f(x1,x2,xn)f({x_1},{x_2} \ldots ,{x_n})

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

H(f)ij(x)=DiDjf(x)H{(f)_{ij}}(x) = {D_i}{D_j}f(x)

其中 x=(x1,x2,xn)x = ({x_1},{x_2} \ldots ,{x_n}), 即H(f)H(f)为:
[2fx122fx1x22fx1xn2fx2x12fx222fx2xn2fxnx12fxnx22fxn2] \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}

牛顿法解方程

牛顿法最优化方法原理实际与计算方法中的牛顿法解方程是一致的,是一个迭代的过程。

我们用牛顿法求解f(x)=0f(x)=0这个问题, 首先对将f(x)f(x)x(k)x^{(k)}处做一阶泰勒展开,那么我们就会得到:
f(x)=f(x(k))+(xx(k))f(x(k)) f(x) = f({x^{(k)}}) + (x – {x^{(k)}})f'({x^{(k)}})
代入求解f(x)=0f(x)=0,可以得出:
x=x(k)f(x(k))/f(x(k)) {x} = {x^{(k)}} – f({x^{(k)}})/f’({x^{(k)}})
因此迭代公式为:
x(k+1)=x(k)f(x(k))/f(x(k)) {x^{(k+1)}} = {x^{(k)}} – f({x^{(k)}})/f’({x^{(k)}})
迭代的原理见下图,注意这里xx(k)x^{(k)}表示第k步迭代时的xx取值,xx^*表示精确解, 这个迭代过程就是不断逼近xx^*的过程,其实就是不断的用曲线的切线与x轴交点的横坐标来近似表达曲线与x轴交点的横坐标,所以牛顿法也叫切线法。
Hessian海森矩阵与牛顿最优化方法

牛顿最优化方法

最优化的问题其实就是求解一个目标函数f(x)f(x)的极大极小值问题。我们知道函数的极值点其实就是该函数一阶导数为0的点,即求解方程f(x)=0f′(x)=0的解,这可以通过刚刚提到的牛顿法求解方程组解决。

我们对f(x)f(x)x(k)x^{(k)}处做二阶泰勒展开,得到:
f(x)=f(x(k))+f(x(k))(xx(k))+12f(x(k))(xx(k))2 f(x) = f(x^{(k)}) + f'(x^{(k)})(x-x^{(k)})+ \frac{1}{2}f''(x^{(k)})(x-x^{(k)})^2
f(x)f(x)求导,可以得到:
f(x)=f(x(k))+f(x(k))(xx(k)) f'(x) = f'(x^{(k)})+ f''(x^{(k)})(x-x^{(k)})
f(x)=0f'(x)=0,即可得到:
0=f(x(k))+f(x(k))(xx(k)) 0 = f'(x^{(k)})+ f''(x^{(k)})(x-x^{(k)})
解方程,并得到以下迭代格式:
x(k+1)=x(k)f(x(k))f(x(k)) x^{(k+1)}=x^{(k)}-\frac{f'(x^{(k)})}{f''(x^{(k)})}
以上讨论的是y=f(x)y=f(x)这种只包含xx这1个自变量的情况,多个自变量情况时牛顿迭代公式是:
x(k+1)=x(k)[Hf(x(k))]1f(x(k)),n0 {x^{(k+1)}} = {x^{(k)}} - {[Hf({x^{(k)}})]^{ – 1}}\nabla f({x^{(k)}}),n \ge 0
其中Hf(x(k))Hf({x^{(k)}})即为Hessian矩阵,f(x(k))\nabla f({x^{(k)}})是一个向量,向量中的每个元素分别是f(x)f(x)对各个自变量求偏导后的函数在x=x(k)x=x^{(k)}时的函数值。

————————————————
版权声明:本文为CSDN博主「CGCVHCI」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/cgcvhci/article/details/51049080

相关文章:

  • 2021-04-21
  • 2022-01-07
  • 2022-12-23
  • 2022-12-23
  • 2021-08-25
  • 2021-08-13
  • 2021-10-02
猜你喜欢
  • 2021-10-01
  • 2021-05-01
  • 2022-12-23
  • 2021-09-17
  • 2021-08-04
相关资源
相似解决方案