learning rate warmup
En træningsteknik, hvor learning rate gradvist øges fra en lille værdi til den planlagte startværdi over et antal steps eller epochs.
Kort fortalt
I starten af træningen starter learning rate meget lavt og stiger langsomt for at undgå ustabile gradienter og forbedre konvergensen.
- Kategori
- teknik
- Niveau
- øvet
- Udtale
- /ˈlɜːrnɪŋ reɪt ˈwɔːrmʌp/
Betydninger
1- 1
En fase i træningsprocessen, hvor learning rate stiger fra en meget lav startværdi til en forudbestemt målværdi, typisk over nogle hundrede eller tusinde steps.
- Vi anvendte en lineær learning rate warmup over 4000 steps før vi gik over til cosinus decay. — Eksempel fra praksis
- Uden warmup divergerede modellen i de første iterationer på grund af store gradienter. — Eksempel fra praksis
Hvornår bruges det
Learning rate warmup bruges typisk i begyndelsen af træning af dybe neurale netværk for at forhindre, at store opdateringsskridt forstyrrer modellen i de tidlige faser. Det er særligt udbredt i transformer-modeller og ved brug af optimizers som Adam. Warmup kan være lineær, cosinus eller eksponentiel.
Formel
Linear warmup: lr = lr_target * (step / warmup_steps) for step < warmup_steps, else lr = lr_target.Kodeeksempel
def linear_warmup(step, warmup_steps, lr_target):
if step < warmup_steps:
return lr_target * (step / warmup_steps)
else:
return lr_targetSimpel lineær warmup scheduler, der returnerer learning rate for et givet step.
Oprindelse
Udtrykket 'warmup' (opvarmning) overført fra sport og teknik, hvor gradvis optrapning forbereder systemet til fuld drift.
Afledte ord
2Kilder
2- Adam: A Method for Stochastic Optimization (Kingma & Ba, 2015)
- Attention Is All You Need (Vaswani et al., 2017)