Wikipedia / Adjoint state method
Wikipedia / Adjoint state method
The adjoint state method is a numerical method for efficiently computing the gradient of a function or operator in a numerical optimization problem. It has applications in geophysics, seismic imaging, photonics and more recently in neural networks.
The adjoint state space is chosen to simplify the physical interpretation of equation constraintss.
Adjoint state techniques allow the use of integration by parts, resulting in a form which explicitly contains the physically interesting quantity. An adjoint state equation is introduced, including a new unknown variable.
The adjoint method formulates the gradient of a function towards its parameters in a constraint optimization form. By using the dual form of this constraint optimization problem, it can be used to calculate the gradient very fast. A nice property is that the number of computations is independent of the number of parameters for which you want the gradient. The adjoint method is derived from the dual problem and is used e.g. in the Landweber iteration method.
The name adjoint state method refers to the dual form of the problem, where the adjoint matrix is used.
, the dual problem can be realized as calculating the product is called the adjoint state vector.
General case
The original adjoint calculation method goes back to Jean Céa, with the use of the Lagrangian of the optimization problem to compute the derivative of a functional with respect to a shape parameter.
(usually the weak form of a partial differential equation using the chain rule:
, the problem
defined by
is a Lagrange multiplier or adjoint state variable is an inner product. The method of Lagrange multipliers states that a solution to the problem has to be a stationary point of the lagrangian, namely
is the Gateaux derivative. The first equation is the so-called adjoint state equation,
is self-adjoint or symmetric since the direct and adjoint state equations differ only by their right-hand side.
Example: Linear case
In a real finite dimensional linear programming.
.
,
. The gradient would be
is a third-order tensor is the dyadic product denotes a double tensor contraction has a known analytic expression that can be differentiated easily.
Numerical consideration for the self-adjoint case
, the direct state equation and the adjoint state equation would have the same left-hand side. In the goal of never inverting a matrix, which is a very slow process numerically, a LU decomposition operations since the matrices are the same.
See also
References
External links
A well written explanation by Errico: What is an adjoint Model?
Another well written explanation with worked examples, written by Bradley http://cs.stanford.edu/~ambrad/adjoint_tutorial.pdf
More technical explanation: A review of the adjoint-state method for computing the gradient of a functional with geophysical applications