Weight decay
Weight decay er en regulariseringsteknik der tilføjer en straf proportional med vægtenes størrelse til tabsfunktionen, typisk implementeret som L2-regularisering.
Kort fortalt
En metode der forhindrer modeller i at blive for komplekse ved at straffe store vægte under træning.
- Kategori
- teknik
- Niveau
- øvet
- Udtale
- /weɪt dɪˈkeɪ/
Betydninger
1- 1
En regulariseringsteknik hvor en straf proportional med vægtenes størrelse lægges til tabsfunktionen, eller ækvivalent hvor vægtene reduceres med en lille brøkdel ved hver opdatering.
- Ved at anvende weight decay med λ=0.001 blev modellens testfejl reduceret med 5%.
- I AdamW-optimizeren adskilles weight decay fra L2-regularisering for at forbedre generaliseringen. — Loshchilov & Hutter, 2017
Hvornår bruges det
Weight decay anvendes i træning af neurale netværk for at reducere overfitting. Det tilføjes ofte til optimeringsalgoritmer som SGD eller Adam, og styrken bestemmes af en hyperparameter λ.
Formel
w_{t+1} = w_t - η (∇L(w_t) + λ w_t)Kodeeksempel
import numpy as np
# Hyperparametre
eta = 0.01
decay = 0.001
# Vægte og gradient (eksempel)
w = np.array([0.5, -0.2])
grad = np.array([0.1, 0.3])
# Opdatering med weight decay
w = w - eta * grad - eta * decay * wEksempel på vægtopdatering med weight decay.
Oprindelse
Udtrykket 'weight decay' kommer fra fysik, hvor det beskriver eksponentiel henfald, og i maskinlæring refererer det til at vægtene henfalder mod nul over tid.