SGD
forkortelse for Stochastic Gradient Descent
SGD er en optimeringsalgoritme, der opdaterer modelparametre ved at beregne gradienten af tabsfunktionen på en tilfældig stikprøve (mini-batch) i stedet for hele datasættet.
Kort fortalt
SGD er en metode til at træne maskinlæringsmodeller ved at tage små, tilfældige skridt i retning af den stejleste nedstigning på tabsfunktionen.
- Kategori
- træning
- Niveau
- øvet
Betydninger
1- 1
Stochastic Gradient Descent (SGD) er en iterativ optimeringsalgoritme, der bruger en tilfældig stikprøve (ofte ét datapunkt eller en mini-batch) til at estimere gradienten af tabsfunktionen og opdaterer parametrene i den modsatte retning.
- SGD opdaterer vægtene efter hver mini-batch i stedet for hele datasættet.
- En lille learning rate i SGD kan forbedre konvergensen, men øger træningstiden.
Hvornår bruges det
SGD bruges almindeligvis til at træne neurale netværk og andre modeller med store datasæt, fordi den er beregningseffektiv og kan undgå lokale minima.
Formel
θ_{t+1} = θ_t - η_t ∇_θ L(θ_t; x^{(i)}, y^{(i)})Kodeeksempel
def sgd_update(params, grads, lr):
for param, grad in zip(params, grads):
param -= lr * grad
return paramsEn simpel implementering af SGD, der opdaterer parametre med den negative gradient ganget med learning rate.
Oprindelse
SGD er en forkortelse for Stochastic Gradient Descent, fra engelsk 'stochastic' (stokastisk/tilfældig) og 'gradient descent' (gradientnedstigning).