UA MATH575B 数值分析下II 牛顿算法
Pure Newton算法
考虑优化问题
min x f ( x ) \min_{x} f(x) xminf(x)
Pure Newton算法其实就是把Newton-Raphson算法用来接优化的一阶条件 ∇ f ( x ) = 0 \nabla f(x)=0 ∇f(x)=0,递推公式为
x k + 1 = x k − H − 1 f ( x k ) ∇ f ( x k ) x_{k+1} = x_{k} - H^{-1}f(x_{k}) \nabla f(x_{k}) xk+1=xk−H−1f(xk)∇f(xk)
其中 H − 1 H^{-1} H−1代表Hessian矩阵的逆。因为 ∇ f ( x ) = 0 \nabla f(x)=0 ∇f(x)=0的解不一定是全局最优解,它还可能是局部最优解或者鞍点,这个是Pure Newton算法最大的问题。还有就是这个下降的步长完全是由 H − 1 f ( x k ) ∇ f ( x k ) H^{-1}f(x_{k}) \nabla f(x_{k}) H−1f(xk)∇f(xk)计算决定的,没有控制步长的操作,可能导致下降路径步与步之间变动非常大。下面两种算法是针对这个缺点的改进。
Damped Newton算法
阻尼牛顿算法在牛顿算法的基础上给步长加了一个阻尼因子 t t t
x k + 1 = x k − t H − 1 f ( x k ) ∇ f ( x k ) = x k + t Δ x k x_{k+1} = x_{k} - tH^{-1}f(x_{k}) \nabla f(x_{k}) = x_{k} + t \Delta x_{k} xk+1=xk−tH−1f(xk)∇f(xk)=xk+tΔxk
在写算法的时候这个 t t t用线性回溯搜索来找
t = arg min t ≥ 0 f ( x k + t Δ x k ) t = \argmin_{t \ge 0} f(x_k + t \Delta x_k) t