牛顿法 与 Hessian矩阵

牛顿法 主要有两方面的应用:

  1. 求方程的根;

  2. 求解最优化方法;


一. 为什么要用牛顿法求方程的根?

假设 f(x) = 0 为待求解方程,利用传统方法求解,牛顿法求解方程的公式:

f(X0+Δx) = f(X0) + f(X0) ΔX

即 f(X) = f(X0) + f(X0) (X-X0)

这个公式就是一阶泰勒展式,f′(X0) 表示 f(X) 在 X0 点的斜率 ,当X方向增量(Δx)比较小时,Y方向增量(Δy)可以近似表示为 斜率(导数)*X方向增量(f′(x0) Δx) ,令 f(x) = 0,我们能够得到 迭代公式:

X = X0 - f(X0) / f(X0)    =>   Xn+1 = Xn - f(Xn) / f′(Xn)

通过逐次迭代,牛顿法 将逐步逼近最优值,也就是方程的解。

二. 最优化问题

针对上面问题进行扩展:

解决 f(x) = 0 的问题,我们用了一阶泰勒展开:

f(x) = f(x0) + f'(x0)*(x-x0) + o( (x-x0)^2 )

去掉末位高阶展开项,代入x = x0+Δx,得到:

f(x) = f(x0+Δx) = f(x0) + f(x0) Δx

那么 要解决 f′(x) = 0 的问题,我们就需要二阶泰勒展开:

f(x) = f(x0) + f'(x0)*(x-x0) + 0.5*f''(x0)*(x-x0)^2 + o( (x-x0)^3 )

去掉末位高阶展开项,代入x = x0+Δx,得到:

f(x) = f(x0+Δx) = f(x0) + f(x0)Δx + 0.5 * f′′(x0) (Δx)^2

求导计算:对Δx求导,所以得到:

0 = f′(x0) +  f′′(x0) (Δx)
==>
0 = f′(x0) +  f′′(x0) (x−x0)

整理:

f′(x0) + f′′(x0)(x−x0) = 0
=>
x - x0 = − f′(x0) / f′′(x0)
=>
x = x0 − f′(x0) / f′′(x0)   
=>  
进一步得到:

Xn+1 = Xn - f'(Xn) / f''(Xn)

三. 牛顿法 与 Hessian矩阵的关系

以上只针对单变量进行讨论,如果对多变量就要引入雅克比矩阵和海森矩阵

简单介绍一下二者,雅克比矩阵为函数对各自变量的一阶导数,海森矩阵为函数对自变量的二次微分。形式分别如下:

这里写图片描述

这里写图片描述

这里写图片描述

猜你喜欢

转载自blog.csdn.net/shenjin_s/article/details/82681971
今日推荐