¿Qué es?
Calcular derivadas exactas de programas aplicando la regla de la cadena a cada operación elemental. Ni simbólica (sin explosión de expresiones) ni numérica (sin error de truncamiento). El modo inverso da el gradiente de un escalar por una pequeña constante por el coste del programa.
Fórmulas
- modo directo con números duales
- modo inverso: los adjuntos se propagan hacia atrás
¿Por qué importa?
Todo framework de deep learning es, en el fondo, un motor de diferenciación automática (autograd de PyTorch, JAX, TensorFlow). También impulsa el renderizado diferenciable, la física diferenciable y el análisis de sensibilidad en ciencia.
Las matemáticas que hay detrás
La diferenciación automática calcula derivadas exactas de programas propagándolas por cada operación.
La diferenciación automática aplica exactamente estas reglas, operación a operación, sobre números en vez de fórmulas.
Los modos directo e inverso son dos órdenes de multiplicar la misma cadena de derivadas locales.
Los modos directo e inverso son los dos órdenes naturales de multiplicar la cadena de jacobianas.
La diferenciación automática ve un programa como composición de operaciones primitivas y deriva cada una.
Todo sistema de diferenciación automática incluye una tabla de derivadas de sus operaciones primitivas.
La diferenciación automática en modo directo con números duales calcula (un JVP) en una pasada.
La diferenciación automática calcula JVP (modo directo) y VJP (modo inverso) sin construir .
La «comprobación de gradientes» compara los gradientes de la diferenciación automática con diferencias finitas para cazar errores.
¿Dónde se utiliza?
Temas de informática a los que se llega desde aquí, con la cadena de ideas que lleva a ellos:
ℒ IA y machine learning
- Retropropagación (backpropagation)★★★★★
- Retropropagación (backpropagation)→Deep learning (aprendizaje profundo)★★★★★
- Retropropagación (backpropagation)→Deep learning (aprendizaje profundo)→Redes convolucionales (CNN)★★★★★
- Retropropagación (backpropagation)→Deep learning (aprendizaje profundo)→Modelos generativos★★★★★
- Retropropagación (backpropagation)→Deep learning (aprendizaje profundo)→Neural ODE★★★★★
Qué depende de él
Esta página tiene lo esencial. Un desarrollo más completo (intuición, definición formal, ejemplo resuelto) está en camino.