Diferenciación automática

Diferenciación automática

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.


Contenido

La regla de la cadena, acumulación hacia adelante y hacia atrás

Acumulación hacia adelante

Acumulación hacia atrás

Computación Jacobiana

Más allá de la acumulación hacia adelante y hacia atrás

Derivada en la aritmética aumentada con números duales para el cálculo de la diferenciación automática

Argumentos y funciones vectoriales

Derivadas de mayor orden

Implementación

La DA hacia adelante se implementa mediante una interpretación no estándar del programa en el cual los números reales son substituidos por números duales, las constantes se convierten en números duales con un coeficiente epsilon igual a cero, y las primitivas numéricas se modifican para que operen con números duales. Esta interpretación no estándar se implementa generalmente mediante dos estrategias: modificación del código fuente o sobrecargando operadores.

Modificación del código fuente

El código fuente de una función se reemplaza por un código generado automáticamente que incluye instrucciones para el cálculo de las derivadas intercaladas con las instrucciones originales.

La modificación del código fuente se puede implementar para cualquier lenguaje de programación, y es más fácil de optimizar para el compilador. Sin embargo, la implementación de la propia herramienta de DA es más difícil.

Ejemplos:

  • ADIC (C/C++, forward mode)
  • ADIFOR (Fortran77)
  • OpenAD (Fortran77, Fortran95, C/C++)
  • TAPENADE (Fortran77, Fortran95)
  • Maple (software) (Lenguaje Maple, puede generar código en C/C++/Java/Visual Basic/Matlab/Fortran)

Sobrecarga de operadores

La sobrecarga de operadores es una posibilidad para el código fuente escrito en un lenguaje que lo soporte. Los objetos para los números reales y las operaciones matemáticas básicas se deben sobrecargar para corresponder con la aritmética aumentada descrita arriba. No se requiere ningún cambio en el código fuente original de la función para que se pueda derivar.

La sobrecarga de operadores para acumulación hacia adelante es fácil de implementar, siendo también factible para la acumulación hacia atrás. Sin embargo, los compiladores actuales no optimizan tanto el código como en el caso de acumulación hacia adelante.

Ejemplos:

Referencias

Referencias Bibliográficas

  • Rall, Louis B. (1981). Automatic Differentiation: Techniques and Applications (vol. 120). Springer. ISBN 0-540-10861-0.
  • Griewank, Andreas (2000). Evaluating Derivatives: Principles and Techniques of Algorithmic Differentiation (vol. 19). SIAM. ISBN 0-89871-451-6.

Enlaces externos

Obtenido de "Diferenciaci%C3%B3n autom%C3%A1tica"

Wikimedia foundation. 2010.

Mira otros diccionarios:

  • Computación Científica — La Computación Científica (o Ciencia Computacional) es el campo de estudio relacionado con la construcción de modelos matemáticos y técnicas numéricas para resolver problemas científicos, de ciencias sociales y problemas de ingeniería.… …   Wikipedia Español

  • 0,9 periódico — En matemáticas, 0,999... es el número decimal periódico que se demuestra denota[1] al número 1. En otras palabras, los símbolos 0,999... y 1 son dos representaciones distintas del mismo número real. Las demostraciones matemáticas de esta igualdad …   Wikipedia Español

  • Wikipedia:Café (todos) — Atajos WP:CWP:C …   Wikipedia Español

  • Volkswagen Golf IV — Para una vista general de todas las generaciones. Véase Volkswagen Golf Volkswagen Golf IV Fabricante Volkswagen Período …   Wikipedia Español

  • Embrión — Saltar a navegación, búsqueda El embrión de un animal es la etapa inicial de desarrollo de éste mientras se encuentra en el huevo o en el útero de su madre. En el ser humano, el término se aplica hasta el final de la séptima semana desde la… …   Wikipedia Español

  • Memoria implícita — La memoria implícita es un tipo de memoria en la que las experiencias previas ayudan en la ejecución de una tarea, sin que exista una percepción consciente de la existencia de esas experiencias.[1] Las evidencias de la existencia de este tipo de… …   Wikipedia Español

  • Volkswagen Sharan — Otros nombres Ninguno Fabricante Autoeuropa, Volkswagen …   Wikipedia Español

  • Corazón — El corazón, por Heikenwaelder Hugo. Para otros usos de este término, véase Corazón (desambiguación). El corazón es el órgano principal del aparato circulatorio. Es un órgano musculoso y cónico situado en la cavidad torácica. Funciona como una… …   Wikipedia Español

  • César Vallejo — en el Parque de Versalles, verano de 1929 …   Wikipedia Español

  • Edad Contemporánea — La carga de los mamelucos, de Francisco de Goya, 1814, representa un episodio del levantamiento del 2 de mayo de 1808 en Madrid. Los pueblos europeos, convertidos en protagonistas de su propia historia y a los que se les había proclamado sujetos… …   Wikipedia Español

Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”