The adjoint state method computes the gradient of a functional , where solves a PDE. Its cost is one extra linear solve, no matter how many parameters has.
The problem it solves. By the chain rule . Computing needs one PDE solve per direction , that is, per parameter. For pixels that is solves per gradient.
The trick. Using the Lagrangian :
- If solves the State Equation, then and for every .
- Differentiate in :
- Choose such that . This is the Adjoint Equation. Then the expensive term drops out:
Recipe for EIT (per current pattern ):
- solve the state equation ;
- solve the adjoint equation , with the same matrix, since the problem is self-adjoint;
- evaluate (see Functional Derivative of the Data Misfit).
Two solves per pattern give the full gradient. With a regulariser, add . The state and adjoint equations are unaffected because does not depend on .
This is the continuous analogue of reverse-mode automatic differentiation (see Automatic Differentiation vs Adjoint Methods).
In ModularEIT.jl: AdjointStateObjective, value_and_gradient!.
References
- R.-E. Plessix (2006). A review of the adjoint-state method for computing the gradient of a functional with geophysical applications. Geophys. J. Int. 167(2), 495–503. doi:10.1111/j.1365-246X.2006.02978.x
- M. Hinze, R. Pinnau, M. Ulbrich, S. Ulbrich (2009). Optimization with PDE Constraints. Springer. doi:10.1007/978-1-4020-8839-1
- A. M. Bradley (2024). PDE-constrained optimization and the adjoint method. Lecture notes, Stanford. cs.stanford.edu/~ambrad/adjoint_tutorial.pdf
- D. Lahaye, W. Mulckhuyse (2012). Adjoint sensitivity in PDE constrained least squares problems as a multiphysics problem. COMPEL 31(3), 895–903. doi:10.1108/03321641211209780
- F. J. Margotti (2015). On Inexact Newton Methods for Inverse Problems in Banach Spaces. PhD thesis, KIT. doi:10.5445/IR/1000048606