backprop

forkortelse for backpropagation

Backpropagation er en algoritme, der beregner gradienter af en tabsfunktion med hensyn til netværksvægte ved hjælp af kædereglen, hvilket muliggør gradient descent-optimering.

Kort fortalt

En metode til at lære neurale netværk ved at beregne fejlens gradient baglæns gennem netværket.

Kategori
teknik
Niveau
øvet
Udtale
/ˈbækprɒp/

Betydninger

1
  1. 1

    Den systematiske anvendelse af kædereglen til at beregne gradienten af tabsfunktionen med hensyn til hver vægt i et neuralt netværk, fra outputlaget og baglæns til inputlaget.

    • Backpropagation anvendes til at opdatere vægte i et neuralt netværk under træning.
    • Uden backprop ville deep learning være praktisk umuligt.

Hvornår bruges det

Backprop anvendes i træning af alle typer neurale netværk, især når dybden gør direkte gradientberegning umulig. Det er standardalgoritmen i stort set al deep learning.

Formel

∂L/∂w_i = ∂L/∂a ⋅ ∂a/∂z ⋅ ∂z/∂w_i, hvor L er tabsfunktionen, a er aktiveringen, z er net-inputtet, og w_i er en vægt.

Kodeeksempel

import numpy as np

def sigmoid(x):
    return 1/(1+np.exp(-x))

def sigmoid_derivative(x):
    return sigmoid(x)*(1-sigmoid(x))

# Single neuron forward pass
x = np.array([0.5, -0.2, 0.1])
w = np.array([0.4, -0.3, 0.2])
b = 0.1
z = np.dot(w, x) + b
a = sigmoid(z)
y = 1  # true label
loss = (a - y)**2 / 2  # MSE loss

# Backprop
dL_da = a - y
da_dz = sigmoid_derivative(z)
dz_dw = x
gradient = dL_da * da_dz * dz_dw
print(gradient)

Simpel Python-implementering af backprop for en enkelt neuron med MSE-tab og sigmoid-aktivering.

Oprindelse

Forkortelse af 'backward propagation of errors' (baglæns fejlpropagering). Begrebet blev introduceret i 1986 af Rumelhart, Hinton og Williams.

Kilder

1
  • Learning representations by back-propagating errors (Rumelhart, Hinton, Williams, 1986)