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. 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. 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

3

Kilder

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.