Gå til indhold
atlas

Læringsrate

Også kendt som: learning rate, skridtlængde

Indstillingen, der afgør, hvor store skridt en model tager, hver gang den justerer sig selv for at lave færre fejl under læringen.

Kladde - dette opslag er endnu ikke gennemgået.

Formelt

En hyperparameter, der skalerer hver opdatering i gradientnedstigning; modelvægtene flyttes med læringsraten gange den retning, der sænker tabsfunktionen mest, og værdien ændres ofte efter en fast plan under modeltræningen.

Forklaret enkelt

Som at gå ned ad en tåget bakke for at nå det laveste punkt. Små skridt bringer dig derned, men først efter flere timer; kæmpespring hopper hele tiden forbi bunden og kan ende højere oppe, end hvor du startede.

I praksis

En ingeniør, der finjusterer en talemodel, ser tabet springe til enorme værdier efter et par hundrede skridt, sænker læringsraten ti gange og tilføjer en kort opvarmning, hvorefter kørslen falder til ro og forbedres jævnt.

Hvorfor det betyder noget

Den er ofte den ene indstilling, der mest afgør, om læringen overhovedet lykkes; en dårlig værdi spilder dages dyr regnetid eller efterlader en model langt dårligere, end den kunne være.

Teknisk uddybning

I stokastisk gradientnedstigning er opdateringen w <- w - eta * g, hvor g er tabets gradient på en minibatch, og eta er læringsraten. For gradientnedstigning på hele datasættet med et glat tab, hvis krumning er begrænset af L, garanterer enhver eta under 2/L, at hvert skridt sænker tabet, og derfor viser en for høj rate sig som svingninger eller et tab, der eksploderer til NaN, mens en for lav rate giver langsom fremgang eller fastlåsning på plateauer. Læringsrate og batchstørrelse påvirker hinanden: Goyal m.fl. (2017) trænede ImageNet-modeller med minibatches på 8.192 ved at skalere læringsraten lineært med batchstørrelsen og tilføje en gradvis opvarmning over de første epoker.

Skemaer ændrer eta i løbet af træningen. Almindelige skemaer er trinvis aftagning, eksponentiel aftagning, cosinus-annealing, one-cycle samt lineær opvarmning efterfulgt af aftagning, som er standard for transformere, fordi de tidlige opdateringer med en adaptiv optimeringsalgoritme er ustabile. Smith (2017) foreslog cykliske læringsrater, der svinger mellem to grænser, sammen med en læringsrate-test til at finde fornuftige grænser. PyTorch implementerer dem i torch.optim.lr_scheduler (fx StepLR, CosineAnnealingLR, OneCycleLR og LinearLR), som tages et skridt pr. batch eller pr. epoke afhængigt af skemaet.

Adaptive optimeringsalgoritmer beholder en global læringsrate, men skalerer den for hver parameter. Adam (Kingma og Ba, 2015) dividerer et løbende gennemsnit af gradienterne med kvadratroden af et løbende gennemsnit af de kvadrerede gradienter; artiklens standardværdier er en læringsrate på 0,001, beta1 = 0,9, beta2 = 0,999 og epsilon = 1e-8. Den adaptive skalering mindsker, men fjerner ikke, følsomheden over for grundraten, og den ændrer, hvordan weight decay virker, hvilket førte til AdamW. I praksis er læringsraten den første hyperparameter, man tuner, typisk på et logaritmisk gitter, og en rate, der virker til fortræning, er typisk for høj til finjustering, hvor værdier en eller to størrelsesordener mindre er almindelige.

Hvad du bør lære først

Alt det, dette bygger på - grundlaget først.

  1. Træningsdata
  2. →Maskinlæring
  3. →Tabsfunktion (loss function)
  4. →Modelparameter
  5. →Gradientnedstigning (gradient descent)
  6. →Læringsrate

Relationer

Bruges sammen med
Batchstørrelse

Kilder og videre læsning

Hvor dataene kommer fra

Dette opslag er skrevet af en AI ud fra kilderne ovenfor og er endnu ikke gennemgået af et menneske. Brug det som udgangspunkt, og tjek alt vigtigt mod kilderne.

Se gennemgangskøenForeslå en rettelse på GitHubDette begreb som JSON

Test dig selv

Indlæser…

Atlas er i beta.