Diferenciação automática
Em matemática e álgebra computacional, a diferenciação automática (DA), também chamada de diferenciação algorítmica, é um conjunto de técnicas para avaliar a derivada de função numéricas especificadas em um programa de computador[1].
A diferenciação automática explora o fato que todo programa computacional executa uma sequência de operações aritméticas (adição, subtração, multiplicação, divisão, etc.) e funções elementares (exponencial, logaritmo, seno, cosseno, etc.). Ao aplicar repetidademente a regra da cadeia a estas operações a derivada pode ser computada automaticamente e de modo eficiente, utilizando apenas algumas operações aritméticas a mais que a função original.
A diferenciação automática é diferente da:
- Diferenciação simbólica
- Diferenciação numérica
Ambos os métodos mencionados acima são lentos ao calcular derivadas parciais em relação à múltiplas variáveis o que é necessário, por exemplo, em algoritmos de otimização baseados no gradiente[1][2]. Em redes neurais artificias a retropropagação (em inglês backpropagation) dos erros comumente utiliza as técnicas de diferenciação automática.
Referências
- ↑ a b Siskind, Jeffrey Mark; Radul, Alexey Andreyevich; Pearlmutter, Barak A.; Baydin, Atilim Gunes (2018). «Automatic Differentiation in Machine Learning: a Survey». Journal of Machine Learning Research. 18 (153): 1–43. ISSN 1533-7928
- ↑ Margossian, Charles C. (12 de novembro de 2018). «A Review of automatic differentiation and its efficient implementation» (em inglês). doi:10.1002/WIDM.1305