This tutorial covers the following key aspects of complex-valued automatic differentiation:
Background on real-valued automatic differentiation, including the concepts of linearization, Jacobian-vector products (JVPs), and vector-Jacobian products (VJPs).
Extension of automatic differentiation to complex numbers by treating complex values as pairs of real numbers (latent JVPs).
Introduction of Wirtinger derivatives as a more efficient way to handle complex-valued functions, avoiding the need to separate real and imaginary parts.
Derivation of latent VJPs using Wirtinger derivatives, including a discussion on the choice of gradient convention.
Practical implementation of complex-valued JVPs and VJPs in JAX, demonstrating the ease of switching between different gradient conventions.
The tutorial aims to provide a comprehensive understanding of complex-valued automatic differentiation, enabling users and developers to effectively implement custom gradient propagation rules for complex-valued functions, which is crucial for applications such as quantum computing and numerical linear algebra.
Na inny język
z treści źródłowej
arxiv.org
Głębsze pytania