非线性最优化(三)——拟牛顿迭代法(Quasi-Newton)

From Wiki

Quasi-Newton methods are methods used to either find zeroes or local maxima and minima of functions. They are an alternative to Newton's method when the Jacobian (when searching for zeroes) or the Hessian (when searching for extrema) is unavailable or too expensive to compute at every iteration.

Search for zeros

Newton's method to find zeroes of a function g of multiple variables is given by: x_{n+1} = x_n -[J_g(x_n)]^{-1} g(x_n)\,\! where J_g(x_n) is the Jacobian matrix of gevaluated for x_n.

Strictly, any method that replaces the exact Jacobian J_g(x_n) with an approximation is a quasi-Newton method. The chord method (where J_g(x_n) is replaced by J_g(x_o) for all iterations) for instance is a simple example. The methods given below for optimisation are other examples. Using methods developed to find extrema in order to find zeroes is not always a good idea as the majority of the methods used to find extrema require that the matrix that is used is symmetrical. While this holds in the context of the search for extrema, it rarely holds when searching for zeroes. Broyden's "good" method and Broyden's "bad" method are two methods commonly used to find extrema that can also be applied to find zeroes. Other methods that can be used are the Column Updating Method, the Inverse Column Updating Method, the Quasi-Newton Least Squares Method and the Inverse Quasi-Newton Least Squares Method.

More recently quasi-Newton methods have been applied to find the solution of multiple coupled systems of equations (e.g. fluid-structure interaction problems). They allow the solution to be found by solving each constituent system separately (which is simpler than the global system) in a cyclic, iterative fashion until the solution of the global system is found.

Search for extrema

Noting that the search for a minimum or maximum of a single-valued function is nothing else than the search for the zeroes of the gradient of that function, quasi-Newton methods can be readily applied to find extrema of a function. In other words, if g is the gradient of f then searching for the zeroes of the multi-valued function g corresponds to the search for the extrema of the single-valued function f; the Jacobian of g now becomes the Hessian of f. The main difference is that the Hessian matrix now is a symmetrical matrix, unlike the Jacobian when searching for zeroes. Most quasi-Newton methods used in optimisation exploit this property.

In optimizationquasi-Newton methods (a special case of variable metric methods) are algorithms for finding local maxima and minima of functions. Quasi-Newton methods are based on Newton's method to find the stationary point of a function, where the gradient is 0. Newton's method assumes that the function can be locally approximated as a quadratic in the region around the optimum, and uses the first and second derivatives to find the stationary point. In higher dimensions, Newton's method uses the gradient and the Hessian matrix of second derivatives of the function to be minimized.

In quasi-Newton methods the Hessian matrix does not need to be computed. The Hessian is updated by analyzing successive gradient vectors instead. Quasi-Newton methods are a generalization of the secant method to find the root of the first derivative for multidimensional problems. In multiple dimensions the secant equation is under-determined, and quasi-Newton methods differ in how they constrain the solution, typically by adding a simple low-rank update to the current estimate of the Hessian.

The first quasi-Newton algorithm was proposed by William C. Davidon, a physicist working at Argonne National Laboratory. He developed the first quasi-Newton algorithm in 1959: the DFP updating formula, which was later popularized by Fletcher and Powell in 1963, but is rarely used today. The most common quasi-Newton algorithms are currently the SR1 formula (for symmetric rank one), the BHHH method, the widespread BFGS method (suggested independently by Broyden, Fletcher, Goldfarb, and Shanno, in 1970), and its low-memory extension, L-BFGS. The Broyden's class is a linear combination of the DFP and BFGS methods.

The SR1 formula does not guarantee the update matrix to maintain positive-definiteness and can be used for indefinite problems. The Broyden's method does not require the update matrix to be symmetric and it is used to find the root of a general system of equations (rather than the gradient) by updating the Jacobian(rather than the Hessian).

One of the chief advantages of quasi-Newton methods over Newton's method is that the Hessian matrix (or, in the case of quasi-Newton methods, its approximation)B does not need to be inverted. Newton's method, and its derivatives such as interior point methods, require the Hessian to be inverted, which is typically implemented by solving a system of linear equations and is often quite costly. In contrast, quasi-Newton methods usually generate an estimate of B^{-1} directly.

As in Newton's method, one uses a second order approximation to find the minimum of a function f(x). The Taylor series of f(x) around an iterate is:

f(x_k+\Delta x) \approx f(x_k)+\nabla f(x_k)^T \Delta x+\frac{1}{2} \Delta x^T {B} \, \Delta x,

where (\nabla f) is the gradient and B an approximation to the Hessian matrix. The gradient of this approximation (with respect to  \Delta x ) is

 \nabla f(x_k+\Delta x) \approx \nabla f(x_k)+B \, \Delta x

and setting this gradient to zero (which is the objective of optimisation) provides the Newton step:

\Delta x=-B^{-1}\nabla f(x_k), \,

The Hessian approximation  B  is chosen to satisfy

\nabla f(x_k+\Delta x)=\nabla f(x_k)+B \, \Delta x,

which is called the secant equation (the Taylor series of the gradient itself). In more than one dimension B is underdetermined. In one dimension, solving for B and applying the Newton's step with the updated value is equivalent to the secant method. The various quasi-Newton methods differ in their choice of the solution to the secant equation (in one dimension, all the variants are equivalent). Most methods (but with exceptions, such as Broyden's method) seek a symmetric solution (B^T=B); furthermore, the variants listed below can be motivated by finding an update B_{k+1} that is as close as possible to  B_{k} in some norm; that is,  B_{k+1} = \textrm{argmin}_B \|B-B_k\|_V  where V  is some positive definite matrix that defines the norm. An approximate initial value of B_0=I * xis often sufficient to achieve rapid convergence. Note that B_0 should be positive definite. The unknown x_k is updated applying the Newton's step calculated using the current approximate Hessian matrix B_{k}

  • \Delta x_k=- \alpha_k B_k^{-1}\nabla f(x_k), with \alpha chosen to satisfy the Wolfe conditions;
  • x_{k+1}=x_{k}+\Delta x_k;
  • The gradient computed at the new point \nabla f(x_{k+1}), and
y_k=\nabla f(x_{k+1})-\nabla f(x_k),

is used to update the approximate Hessian \displaystyle B_{k+1}, or directly its inverse \displaystyle H_{k+1}=B_{k+1}^{-1} using the Sherman-Morrison formula.

  • A key property of the BFGS and DFP updates is that if  B_k  is positive definite and  \alpha_k  is chosen to satisfy the Wolfe conditions then \displaystyle  B_{k+1}  is also positive definite.

The most popular update formulas are:

Method \displaystyle B_{k+1}= H_{k+1}=B_{k+1}^{-1}=
DFP\left (I-\frac {y_k \, \Delta x_k^T} {y_k^T \, \Delta x_k} \right ) B_k \left (I-\frac {\Delta x_k y_k^T} {y_k^T \, \Delta x_k} \right )+\frac{y_k y_k^T} {y_k^T \, \Delta x_k} H_k + \frac {\Delta x_k \Delta x_k^T}{y_k^{T} \, \Delta x_k} - \frac {H_k y_k y_k^T H_k^T} {y_k^T H_k y_k}
BFGS B_k + \frac {y_k y_k^T}{y_k^{T} \Delta x_k} - \frac {B_k \Delta x_k (B_k \Delta x_k)^T} {\Delta x_k^{T} B_k \, \Delta x_k} \left (I-\frac {y_k \Delta x_k^T} {y_k^T \Delta x_k} \right )^T H_k \left (I-\frac { y_k \Delta x_k^T} {y_k^T \Delta x_k} \right )+\frac {\Delta x_k \Delta x_k^T} {y_k^T \, \Delta x_k}
Broyden B_k+\frac {y_k-B_k \Delta x_k}{\Delta x_k^T \, \Delta x_k} \, \Delta x_k^T  H_{k}+\frac {(\Delta x_k-H_k y_k) \Delta x_k^T H_k}{\Delta x_k^T H_k \, y_k}
Broyden family(1-\varphi_k) B_{k+1}^{BFGS}+ \varphi_k B_{k+1}^{DFP}, \qquad \varphi\in[0,1] 
SR1B_{k}+\frac {(y_k-B_k \, \Delta x_k) (y_k-B_k \, \Delta x_k)^T}{(y_k-B_k \, \Delta x_k)^T \, \Delta x_k}H_{k}+\frac {(\Delta x_k-H_k y_k) (\Delta x_k-H_k y_k)^T}{(\Delta x_k-H_k y_k)^T y_k}

Other methods are Pearson's method, McCormick's Method, the Powell symmetric Broyden (PSB) method and Greenstadt's method.


Implementations

Owing to their success, there are implementations of quasi-Newton methods in almost all programming languages. The NAG Library contains several routines for minimizing or maximizing a function which use quasi-Newton algorithms.

In MATLAB's Optimization Toolbox, the fminunc function uses (among other methods) the BFGS Quasi-Newton method. Many of the constrained methods of the Optimization toolbox use BFGS and the variant L-BFGS. Many user-contributed quasi-Newton routines are available on MATLAB's file exchange.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值