Gradient descent
Gradient descent er en iterativ optimeringsalgoritme, der minimerer en funktion ved at opdatere parametre i modsat retning af gradienten af funktionen.
Kort fortalt
Gradient descent er en metode, der langsomt justerer parametre for at gøre en fejlfunktion mindre, lidt ligesom at gå ned ad en bakke i tåge.
- Kategori
- træning
- Niveau
- øvet
- Udtale
- /ˈɡreɪdiənt dɪˈsent/
Betydninger
1- 1
En optimeringsalgoritme, der iterativt opdaterer parametre for at minimere en tabelfunktion, ved at beregne gradienten og flytte parametre i den modsatte retning med en bestemt læringshastighed.
- Vi anvender gradient descent til at optimere vægtene i vores neurale netværk. — Ruder, 2016
- Stokastisk gradient descent opdaterer vægtene baseret på en enkelt datapunkt ad gangen. — Ruder, 2016
Hvornår bruges det
Gradient descent anvendes til at træne maskinlæringsmodeller ved at minimere en tabelfunktion. Det er grundlaget for de fleste neurale netværksoptimeringer og bruges i varianter som stokastisk gradient descent og Adam.
Formel
θ = θ - α ∇J(θ)Kodeeksempel
import numpy as np
def gradient_descent(X, y, lr=0.01, epochs=100):
m, n = X.shape
theta = np.zeros(n)
for _ in range(epochs):
grad = (1/m) * X.T @ (X @ theta - y)
theta -= lr * grad
return thetaSimpel gradient descent-implementering til lineær regression i Python.
Oprindelse
Ordet 'gradient' kommer fra latin 'gradus' (skridt) og 'descendere' (stige ned), hvilket beskriver algoritmens tilgang til at tage skridt ned ad en funktions hældning.
Afledte ord
3Kilder
2- An overview of gradient descent optimization algorithms
- Pattern Recognition and Machine Learning