automatic differentiation
Automatisk differentiering er en samling teknikker til effektivt at beregne nøjagtige afledede af funktioner defineret af computerprogrammer.
Kort fortalt
En metode der automatisk beregner den afledede af en matematisk funktion, hvilket er essentielt for træning af maskinlæringsmodeller som neurale netværk.
- Kategori
- teknik
- Niveau
- øvet
- Udtale
- /ˌɔːtəˈmætɪk ˌdɪfəˌrenʃiˈeɪʃən/
Betydninger
2- 1
Forward-mode AD: en tilstand af automatisk differentiering, hvor derivater beregnes for hver inputvariabel separat ved at spore tangenten gennem hver operation. Effektiv for funktioner med få input.
- Forward-mode AD er velegnet til at beregne Jacobi-matricer for funktioner med et lille antal inputvariabler. — Baydin et al., 2018
- 2
Reverse-mode AD (også kendt som backpropagation): en tilstand af automatisk differentiering, hvor derivater beregnes for alle parametre samtidigt ved at akkumulere gradienter baglæns gennem beregningsgrafen. Effektiv for funktioner med mange input, som typisk i neurale netværk.
- Reverse-mode AD er grundlaget for backpropagation i neurale netværk, hvor gradienten af tabfunktionen beregnes med hensyn til alle vægte og bias. — Rumelhart, Hinton & Williams, 1986
Hvornår bruges det
Automatic differentiation bruges i optimeringsalgoritmer, især gradient descent, til at beregne gradienter af tabfunktioner med hensyn til parametre. Det er implementeret i maskinlæringsbiblioteker som TensorFlow og PyTorch, der udnytter reverse-mode AD (backpropagation) til effektiv gradientberegning i neurale netværk.
Kodeeksempel
import torch
x = torch.tensor(2.0, requires_grad=True)
y = x**2 + 3*x + 1
y.backward()
print(x.grad) # tensor(7.0)Eksempel på reverse-mode AD i PyTorch: gradienten af y med hensyn til x beregnes automatisk via backward().
Oprindelse
Begrebet stammer fra 1960'erne og 1970'erne, med tidlige bidrag af B. Speelpenning og andre. Udtrykket 'automatic differentiation' blev populariseret af Andreas Griewank i 1980'erne.
Afledte ord
3Kilder
2- Griewank, A., & Walther, A. (2008). Evaluating Derivatives: Principles and Techniques of Algorithmic Differentiation. SIAM.
- Baydin, A. G., Pearlmutter, B. A., Radul, A. A., & Siskind, J. M. (2018). Automatic differentiation in machine learning: a survey. Journal of Machine Learning Research, 18(153), 1-43.