Powell's dog leg method, also called Powell's hybrid method, is an iterative optimisation algorithm for the solution of non-linear least squares problems, introduced in 1970 by Michael J. D. Powell.[1] Similarly to the Levenberg–Marquardt algorithm, it combines the Gauss–Newton algorithm with gradient descent, but it uses an explicit trust region. At each iteration, if the step from the Gauss–Newton algorithm is within the trust region, it is used to update the current solution. If not, the algorithm searches for the minimum of the objective function along the steepest descent direction, known as Cauchy point. If the Cauchy point is outside of the trust region, it is truncated to the boundary of the latter and it is taken as the new solution. If the Cauchy point is inside the trust region, the new solution is taken at the intersection between the trust region boundary and the line joining the Cauchy point and the Gauss-Newton step (dog leg step).[2]
The name of the method derives from the resemblance between the construction of the dog leg step and the shape of a dogleg hole in golf.[2]
Given a least squares problem in the form
F(\boldsymbol{x})=
1 | |
2 |
\left\|\boldsymbol{f}(\boldsymbol{x})\right\|2=
1 | |
2 |
m | |
\sum | |
i=1 |
\left(fi(\boldsymbol{x})\right)2
with
fi:Rn\toR
\boldsymbol{x}*=\operatorname{argmin}\boldsymbol{x
\boldsymbol{x}k=\boldsymbol{x}k-1+\deltak
\boldsymbol{x}*
\boldsymbol{\deltagn
where
\boldsymbol{J}=\left(
\partial{fi | |
\boldsymbol{\deltasd
The objective function is linearised along the steepest descent direction
\begin{align} F(\boldsymbol{x}+t\boldsymbol{\deltasd
To compute the value of the parameter
t
t
t=-
\boldsymbol{\deltasd | |
\top |
\boldsymbol{J}\top\boldsymbol{f}(\boldsymbol{x})}{\left\|\boldsymbol{J}\boldsymbol{\deltasd
Given a trust region of radius
\Delta
\boldsymbol{\deltak}
\boldsymbol{\deltagn
\left\|\boldsymbol{\deltagn
\Delta | |
\left\|\boldsymbol{\deltasd |
\right\|}\boldsymbol{\deltasd
t\left\|\boldsymbol{\deltasd
t\boldsymbol{\deltasd
s
\left\|\boldsymbol{\delta}\right\|=\Delta