Quasi-Newton methods: Difference between revisions
(DFP algorithm) |
|||
| Line 14: | Line 14: | ||
== Theory and Algorithm == | == Theory and Algorithm == | ||
=== DFP Algorithm === | |||
# Given the starting point <math>x_0</math>; convergence tolerance <math>\epsilon, \epsilon>0</math>; the initial estimation of inverse Hessian matrix <math>D_0=I</math>; k=0. | |||
# Compute the search direction <math>d_k=-D_k\cdot g_k</math>. | |||
# Compute the step length <math>\lambda_k</math> with <math>\lambda=\arg \underset{min}{\lambda}f(x_k+\lambda d_k), \lambda \in \mathbb{R} | |||
</math>, and then set<math>s_k={\lambda}_k\cdot d_k</math>, then <math>x_{k+1}=x_k+s_k</math> | |||
# If <math>||g_{k+1}||<\epsilon</math>, then end of the iteration, otherwise continue step5. | |||
# Computing <math>y_k=g_{k+1}-g_k</math>. | |||
# Update the <math>D_{k+1}</math> with<math>D_{k+1}=D_k+\frac{s_k (s_k)^T}{(s_k)^T y_k}-\frac{D_k y_k (y_k)^T D_k}{(y_k)^T D_k y_k} </math> | |||
# Update k with k=k+1 and go back to step2. | |||
=== BFGS Algorithm === | |||
# <br /> | |||
== Numerical Example == | == Numerical Example == | ||
<math>\begin{align} f(x_1, x_2) & = x_1^2 +\frac{1}{2}x_2^2+3\end{align} | <math>\begin{align} f(x_1, x_2) & = x_1^2 +\frac{1}{2}x_2^2+3\end{align} | ||
Revision as of 22:28, 20 November 2020
Author: Jianmin Su (ChemE 6800 Fall 2020)
Steward: Allen Yang, Fengqi You
Quasi-Newton Methods are a kind of methods that used to solve nonlinear optimization problems. They are based on Newton’s method yet can be an alternative of Newton’s method when the objective function is not twice-differentiable, which means the Hessian matrix is unavailable, or it is too expensive to calculate the Hessian matrix and its inverse.
Introduction
The first quasi-Newton algorithm was developed by W.C. Davidon in the mid1950s and it turned out to be a milestone in nonlinear optimization problems. He was trying to solve a long optimization calculation but he failed to get the result with the original method due to the low performances of computers at that time, thus he managed to build the quasi-Newton method to solve it. Later then, Fletcher and Powell proved that the new algorithm was more efficient and more reliable than the other existing methods.
During the following years, numerous variants were proposed, include Broyden's method (1965), the SR1 formula (Davidon 1959, Broyden 1967), the DFP method (Davidon, 1959; Fletcher and Powell, 1963) and the BFGS method (Broyden, 1969; Fletcher, 1970; Goldfarb, 1970; Shanno, 1970).
In optimization problems, Newton's method uses first and second derivatives, gradient and the Hessian in multivariate scenarios, to find the optimal point, it is applied to a twice-differentiable function f to find the roots of the first derivative (solutions to Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle f'(x)=0} ), also known as the stationary points of Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle f} . Quasi-Newton methods are similar to the Newton's method but with one key idea that is different, they don't calculate the Hessian matrix, they introduce a matrix Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle B} to estimate the Hessian matrix instead so that they can avoid the time-consuming calculations of Hessian matrix and its inverse. And there are many variants of quasi-Newton methods simply depend on the exact methods they use in the estimation of Hessian matrix.
Theory and Algorithm
DFP Algorithm
- Given the starting point Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle x_0} ; convergence tolerance Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \epsilon, \epsilon>0} ; the initial estimation of inverse Hessian matrix Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle D_0=I} ; k=0.
- Compute the search direction Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle d_k=-D_k\cdot g_k} .
- Compute the step length Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \lambda_k} with Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \lambda=\arg \underset{min}{\lambda}f(x_k+\lambda d_k), \lambda \in \mathbb{R} } , and then setFailed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle s_k={\lambda}_k\cdot d_k} , then Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle x_{k+1}=x_k+s_k}
- If Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle ||g_{k+1}||<\epsilon} , then end of the iteration, otherwise continue step5.
- Computing Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle y_k=g_{k+1}-g_k} .
- Update the Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle D_{k+1}} withFailed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle D_{k+1}=D_k+\frac{s_k (s_k)^T}{(s_k)^T y_k}-\frac{D_k y_k (y_k)^T D_k}{(y_k)^T D_k y_k} }
- Update k with k=k+1 and go back to step2.
BFGS Algorithm
Numerical Example
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \begin{align} f(x_1, x_2) & = x_1^2 +\frac{1}{2}x_2^2+3\end{align} }