cosine annealing
En læringsrate-planlægningsteknik, der reducerer læringsraten efter en cosinusfunktion over et eller flere cyklusser.
Kort fortalt
Cosine annealing er en metode til gradvist at sænke læringsraten under træning ved at følge en cosinuskurve, hvilket ofte forbedrer konvergensen.
- Kategori
- teknik
- Niveau
- øvet
Betydninger
1- 1
En læringsrate-planlægningsteknik, hvor læringsraten varierer som en cosinusfunktion af tiden, typisk startende ved en maksimumværdi og faldende til en minimumværdi over et bestemt antal iterationer eller epoker.
- Vi anvendte cosine annealing med en maksimal læringsrate på 0.01 og en minimumsrate på 0.0001 over 100 epoker. — Eksempel på anvendelse i træning
- SGDR kombinerer cosine annealing med varme genstarter for at opnå bedre konvergens. — Loshchilov & Hutter, 2017
Hvornår bruges det
Cosine annealing bruges typisk i træning af dybe neurale netværk som en erstatning for step-decay eller eksponentiel decay. Det kan kombineres med varme genstarter (warm restarts) i SGDR for at undgå lokale minima og forbedre generalisering.
Formel
η(t) = η_min + (η_max - η_min) * (1 + cos(π * (t mod T) / T)) / 2Kodeeksempel
import math
def cosine_annealing(step, total_steps, lr_max, lr_min):
return lr_min + (lr_max - lr_min) * (1 + math.cos(math.pi * step / total_steps)) / 2Simpel Python-funktion, der beregner læringsraten ved et givent trin for en cyklus af cosine annealing.
Oprindelse
Begrebet 'cosine' henviser til den matematiske cosinusfunktion, og 'annealing' (glødning) er en metafor fra metallurgi, hvor materialer opvarmes og langsomt afkøles for at opnå ønskede egenskaber; her beskriver det den gradvise sænkning af læringsraten.