Hessian矩阵
在数学中, 海森矩阵(Hessian matrix或Hessian)是一个自变量为向量的实值函数的二阶偏导数组成的方块矩阵, 此函数如下:
f(x1,x2…,xn)
如果
f的所有二阶导数都存在, 那么
f的海森矩阵即:
H(f)ij(x)=DiDjf(x)
其中
x=(x1,x2…,xn), 即
H(f)为:
⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡∂x12∂2f∂x2∂x1∂2f⋮∂xn∂x1∂2f∂x1∂x2∂2f∂x22∂2f⋮∂xn∂x2∂2f⋯⋯⋱⋯∂x1∂xn∂2f∂x2∂xn∂2f⋮∂xn2∂2f⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤
牛顿法解方程
牛顿法最优化方法原理实际与计算方法中的牛顿法解方程是一致的,是一个迭代的过程。
我们用牛顿法求解
f(x)=0这个问题, 首先对将
f(x)在
x(k)处做一阶泰勒展开,那么我们就会得到:
f(x)=f(x(k))+(x–x(k))f′(x(k))
代入求解
f(x)=0,可以得出:
x=x(k)–f(x(k))/f’(x(k))
因此迭代公式为:
x(k+1)=x(k)–f(x(k))/f’(x(k))
迭代的原理见下图,注意这里x
x(k)表示第k步迭代时的
x取值,
x∗表示精确解, 这个迭代过程就是不断逼近
x∗的过程,其实就是不断的用曲线的切线与x轴交点的横坐标来近似表达曲线与x轴交点的横坐标,所以牛顿法也叫切线法。

牛顿最优化方法
最优化的问题其实就是求解一个目标函数
f(x)的极大极小值问题。我们知道函数的极值点其实就是该函数一阶导数为0的点,即求解方程
f′(x)=0的解,这可以通过刚刚提到的牛顿法求解方程组解决。
我们对
f(x)在
x(k)处做二阶泰勒展开,得到:
f(x)=f(x(k))+f′(x(k))(x−x(k))+21f′′(x(k))(x−x(k))2
对
f(x)求导,可以得到:
f′(x)=f′(x(k))+f′′(x(k))(x−x(k))
令
f′(x)=0,即可得到:
0=f′(x(k))+f′′(x(k))(x−x(k))
解方程,并得到以下迭代格式:
x(k+1)=x(k)−f′′(x(k))f′(x(k))
以上讨论的是
y=f(x)这种只包含
x这1个自变量的情况,多个自变量情况时牛顿迭代公式是:
x(k+1)=x(k)−[Hf(x(k))]–1∇f(x(k)),n≥0
其中
Hf(x(k))即为Hessian矩阵,
∇f(x(k))是一个向量,向量中的每个元素分别是
f(x)对各个自变量求偏导后的函数在
x=x(k)时的函数值。
————————————————
版权声明:本文为CSDN博主「CGCVHCI」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/cgcvhci/article/details/51049080
转载:
https://blog.csdn.net/weixin_39901859/article/details/102138025