Tutorial on amortized optimization
Brandon Amos
TL;DR
This tutorial surveys amortized optimization, a paradigm that combines learning with optimization to predict solutions to repeated, structured problems. It distinguishes fully- and semi-amortized models, discusses how to train them via regression- or objective-based losses, and explains how to differentiate through inner optimization loops, including practical tricks like TBPTT and implicit differentiation. The coverage spans foundational theory, extensions to stochastic, constrained, and non-Euclidean domains, and a broad set of applications from variational inference and sparse coding to meta-learning, fixed-point acceleration, optimal transport, and control. It also provides implementation guidance, software resources, and a candid discussion of successes, limitations, and open problems in the field.
Abstract
Optimization is a ubiquitous modeling tool and is often deployed in settings which repeatedly solve similar instances of the same problem. Amortized optimization methods use learning to predict the solutions to problems in these settings, exploiting the shared structure between similar problem instances. These methods have been crucial in variational inference and reinforcement learning and are capable of solving optimization problems many orders of magnitudes faster than traditional optimization methods that do not use amortization. This tutorial presents an introduction to the amortized optimization foundations behind these advancements and overviews their applications in variational inference, sparse coding, gradient-based meta-learning, control, reinforcement learning, convex optimization, optimal transport, and deep equilibrium networks. The source code for this tutorial is available at https://github.com/facebookresearch/amortized-optimization-tutorial.
