
Diferenciación automática

En matemática y álgebra computacional, diferenciación automática, o DA, también conocida como diferenciación algorítmica, es un método para la evaluación de derivadas de una función expresada como un programa de computación. Existen dos métodos clásicos para el cálculo de derivadas: derivar simbólicamente la función obteniendo una expresión y evaluarla en un punto dado; o utilizar derivación numérica.El inconveniente de la derivación simbólica es la lentitud y la dificultad de convertir programas de computación en una única expresión. Además, la complejidad de muchas funciones crece según se calculan derivadas de mayor grado. Dos inconvenientes importantes de las derivadas finitas son los errores de redondeo en cálculos de naturaleza discreta y la cancelación. Los dos métodos clásicos tiene problemas con el cálculo de derivadas de mayor grado, donde la complejidad y los errores se ven incrementados. La diferenciación automática soluciona todos estos problemas.DA se basa en el hecho de que cualquier programa de computación que implemente una función vectorial y = F(x) (generalmente) se puede descomponer en una secuencia de asignaciones elementales, siendo cada una trivialmente diferenciable utilizando una LUT (LookUp Table o tabla para búsquedas). Estas derivadas parciales básicas, evaluadas utilizando los argumentos, se combinan de acuerdo a regla de la cadena del cálculo de derivadas para formar información derivada para F (como gradientes, tangentes, la matriz Jacobiana, etc.). Este proceso obtiene derivadas exactas (según la precisión numérica). Debido a que la transformación simbólica ocurre sólo en el nivel más básico, DA evita los problemas computacionales inherentes al cálculo simbólico complejo.