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