TL;DR
Training deep neural networks requires storing intermediate layer outputs (activations) during forward passes, consuming massive memory and limiting network depth. Moonwalk introduces inverse-forward differentiation, a mixed-mode algorithm using vector-inverse-Jacobian products to reconstruct gradients in a forward sweep without storing activations.
✦ Why It Matters
Engineers can train significantly deeper networks on memory-constrained hardware without sacrificing training speed or accuracy.
Key Takeaways
How It Works
Moonwalk's approach leverages the concept of submersive networks, where the Jacobians of layers have trivial cokernels, allowing gradients to be reconstructed without storing activations. For layers that do not meet this criterion, fragmental gradient checkpointing is employed to retain only the necessary residuals.
The vector-inverse-Jacobian product (vijp) is a key innovation that facilitates the inversion of gradient flow, enabling efficient computation of parameter gradients during a forward pass.
Related