Epoke (epoch)
Også kendt som: epoch, træningsepoke
Én fuld gennemgang af alle eksempler i træningsdata under modeltræning; træningen kører ofte flere.
Kladde - dette opslag er endnu ikke gennemgået.
Formelt
En enhed i modeltræning, hvor hvert eksempel i træningsdata er brugt én gang til at opdatere modellen; antallet af epoker er en hyperparameter, der sættes, før træningen starter.
Forklaret enkelt
Som at synge et kors koncertprogram igennem én gang - et par gange gør det skarpere, men efter halvtreds gange kan sangerne kun synge det nøjagtig, som de har øvet det.
I praksis
En dataanalytiker i et rederi træner en model, der skal forudsige brændstofforbrug ud fra tidligere sejladser; hun tjekker valideringssættet efter hver epoke og stopper ved epoke seks, hvor resultatet holder op med at blive bedre, selvom træningsfejlen bliver ved med at falde.
Hvorfor det betyder noget
For få epoker efterlader en halvlært model; for mange får den til at lære eksemplerne udenad, så antallet skal lande et sted mellem undertilpasning og overtilpasning.
Teknisk uddybning
Med N træningseksempler og batchstørrelse B består en epoke af ⌈N/B⌉ optimeringsskridt, eller ⌊N/B⌋, når den sidste ufuldstændige batch droppes (drop_last=True i en PyTorch-DataLoader). Data blandes normalt på ny ved starten af hver epoke, så træningen trækker uden tilbagelægning inden for en epoke; denne tilfældige omblanding virker generelt bedre i praksis end den trækning med tilbagelægning, som meget SGD-teori antager. Med dataaugmentering undervejs ser hver epoke andre tilfældige udsnit, spejlinger eller støj, så senere epoker ikke er eksakte gentagelser. Ved distribueret træning skal hver replika se et separat udsnit pr. epoke, og derfor skal samplere som PyTorchs DistributedSampler have kaldt set_epoch() i hver epoke, ellers gentager hver epoke samme rækkefølge.
Epoken er en praktisk enhed til logning, checkpoints og validering, men det er ikke den, optimeringsalgoritmen ser; opvarmning af læringsraten og cosinus- eller trinvis nedtrapning defineres i skridt, så en ændret batchstørrelse ændrer stille, hvor mange skridt en epokebaseret plan indeholder. Typiske antal varierer enormt: klassiske opskrifter for ResNet-50 på ImageNet bruger cirka 90 epoker, små tabel- eller billeddatasæt kan bruge hundredvis, og finjustering af en fortrænet sprogmodel bruger som regel kun én til tre epoker, fordi flere har tendens til at give udenadslære og tab af generelle evner.
Fortræning i stor skala har stort set opgivet at køre flere epoker over hele korpusset. De fleste webdata ses én gang eller mindre, mens mindre kilder af høj kvalitet opvægtes og gentages. Muennighoff m.fl. (2023) fandt, at op til omkring fire epoker med gentagne data ved et fast beregningsbudget giver næsten samme tab som unikke data, hvorefter værdien af gentagelse falder hurtigt. Gentagelse har også betydning for privatliv: sekvenser, der optræder mange gange i træningsdata, bliver langt oftere lært udenad og gengivet ordret (Carlini m.fl., 2022), hvilket er én grund til, at deduplikering er et standardtrin i forbehandlingen.
Antallet af epoker vælges som regel med early stopping på valideringssættet, men tabskurven opfører sig ikke altid som lærebogens U-form. Nakkiran m.fl. (2019) dokumenterede epokevis double descent, hvor testfejlen stiger og derefter falder igen ved fortsat træning i tilstrækkeligt store modeller, og Power m.fl. (2022) beskrev "grokking", hvor små netværk på algoritmiske opgaver generaliserer længe efter, at de har tilpasset sig træningssættet perfekt. Stop baseret på patience er derfor en heuristik, og ved dyre kørsler betaler det sig at gemme checkpoints løbende i stedet for kun det bedste.
Hvad du bør lære først
Alt det, dette bygger på - grundlaget først.
- Træningsdata
- →Epoke (epoch)
Relationer
- Del af
- Modeltræning
- Forudsætter
- Træningsdata
- Forårsager
- Overtilpasning (overfitting)
- Bruges sammen med
- Hyperparameter
Kilder og videre læsning
Opslagsværker
Lærebøger
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
Nævnt i
Test dig selv
Indlæser…