非线性优化整理-1.牛顿法

作为非线性优化的基础,先从牛顿法开始
牛顿法Newton’s method,又称牛顿-拉弗森法(Newton-Raphson’s method)
可用来1.求解方程根 2.求解极值

1.求解方程0点

目标:求解 f(y)=0 f ( y ) = 0 的根
计算穿过初始值点 (x0,f(x0)) ( x 0 , f ( x 0 ) ) 并且斜率为 f(x0) f ′ ( x 0 ) 的直线与 x x 轴的焦点可得

0=(xx0)f(x0)+f(x0) 0 = ( x − x 0 ) f ′ ( x 0 ) + f ( x 0 )

因此迭代公式为

xn+1=xnf(xn)f(xn) x n + 1 = x n − f ( x n ) f ′ ( x n )

2.求解一维无约束最小值

目标:求解 minf(x),xR m i n f ( x ) , x ∈ R 的根
牛顿法也可用来求解函数的极值。函数极值点处的导数值为零,故可用牛顿法求导函数的零点。
f(x+Δ) f ( x + Δ ) 的二阶泰勒展开为

f(x+Δ)=f(x)+f(x)Δ+12f′′(x)Δ2 f ( x + Δ ) = f ( x ) + f ′ ( x ) Δ + 1 2 f ″ ( x ) Δ 2

求解

f(x+Δ)Δ=0 ∂ f ( x + Δ ) ∂ Δ = 0 可得


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


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

所以迭代公式变为


xn+1=xnf(xn)f′′(xn) x n + 1 = x n − f ′ ( x n ) f ″ ( x n )

3.求解高维无约束最小值

高维情况下, f(x) f ( x ) 的二阶泰勒展开为

f(x+Δ)=f(x)+f(x)Δ+12ΔTH(f(x))Δ f ( x + Δ ) = f ( x ) + ∇ f ( x ) Δ + 1 2 Δ T H ( f ( x ) ) Δ

迭代公式变为

xn+1=xn[H(f(xn))]1f(x) x n + 1 = x n − [ H ( f ( x n ) ) ] − 1 ∇ f ( x )

显然此处Hessian矩阵需为正定,否则不收敛。

特殊情况:f(x)为2次函数

此时任意点出发,1次迭代即可求解
例:

求解 f(x)=32x21+12x22x1x22x1 f ( x ) = 3 2 x 1 2 + 1 2 x 2 2 − x 1 ∗ x 2 − 2 x 1 极小值
设初值为 (0,0) ( 0 , 0 )

H(f(x))=fx21fx2x1fx1x2fx22=[3112] H ( f ( x ) ) = [ ∂ f ∂ x 1 2 ∂ f ∂ x 1 ∂ x 2 ∂ f ∂ x 2 ∂ x 1 ∂ f ∂ x 2 2 ] = [ 3 − 1 − 1 2 ]


f(x)=[fx1fx2]T=[3x1x22x2x1]T=[20]T ∇ f ( x ) = [ ∂ f ∂ x 1 ∂ f ∂ x 2 ] T = [ 3 x 1 − x 2 − 2 x 2 − x 1 ] T = [ − 2 0 ] T

可得


x(1)=x(0)[Hf(x(0))]1f(x(0))=[00][3112][20]=[11] x ( 1 ) = x ( 0 ) − [ H f ( x ( 0 ) ) ] − 1 ∇ f ( x ( 0 ) ) = [ 0 0 ] − [ 3 − 1 − 1 2 ] [ − 2 0 ] = [ 1 1 ]

4.总结

优点

  • 牛顿法是二阶收敛,一般比梯度下降法(一阶收敛)更快收敛,特别是当初始点离目标解足够近

缺点

  • 应用于求极值时需要目标函数二次可微,而梯度下降法目标函数可微即可
  • 需要Hessian矩阵正定,遇到 f f 的极值点,或者初始点离根太远都可能导致无法收敛
  • 每次迭代都需要计算Hessian逆矩阵,对于某些函数来说运算量巨大

结论

  • |f(x)| | f ′ ( x ) | 不太小, |f′′(x)| | f ″ ( x ) | 不太小,初始点 x0 x 0 离解比较近的情况下会很work。
点赞