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. 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)) / 2

Kodeeksempel

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)) / 2

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

Afledte ord

1

Kilder

2