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. 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_target

Simpel 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

2

Kilder

2
  • Adam: A Method for Stochastic Optimization (Kingma & Ba, 2015)
  • Attention Is All You Need (Vaswani et al., 2017)