Gå til indhold
atlas

Valideringssæt

Også kendt som: udviklingssæt, dev-sæt

Eksempler, der holdes uden for træningen og tjekkes igen og igen for at vælge en models indstillinger og hvornår der skal stoppes.

Kladde - dette opslag er endnu ikke gennemgået.

Formelt

En del af de mærkede data, der holdes uden for træningsdata og bruges under modeltræningen til at sammenligne valg af hyperparametre og vælge den bedste runde at stoppe i; da valgene tilpasses til den, er dens resultater ikke et retfærdigt slutresultat.

Forklaret enkelt

Som en kok, der smager på saucen igen og igen, mens den simrer, og justerer salt og tid - nyttigt at styre efter, men ikke gæsternes ærlige dom over den færdige ret.

I praksis

En dataanalytiker i et ministerium afprøver fem indstillinger for en model, der sorterer høringssvar efter emne, og beholder den, der scorer bedst på 1.500 høringssvar holdt uden for træningen; testsættet forbliver lukket indtil da.

Hvorfor det betyder noget

Uden det vælges indstillinger ved at kigge på testsættet, og slutresultatet holder ubemærket op med at være ærligt.

Teknisk uddybning

Valideringssættet bruges til alle de beslutninger, der træffes, efter at parametrene er tilpasset, men før modellen fryses: valg af hyperparametre som læringsrate, regulariseringsstyrke eller arkitekturstørrelse; valg mellem modelfamilier; valg af epoke at stoppe i; valg af beslutningstærskel for at ramme en ønsket præcision eller genkaldelse; og tilpasning af efterfølgende kalibrering som Platt scaling eller temperature scaling fra Guo m.fl. (2017). Alt dette er former for læring fra data, og derfor skal det ske på data, som parametrene ikke er trænet på, og som det endelige testsæt ikke deler.

Når data er knappe, spilder en enkelt opdeling eksempler og giver et støjfyldt estimat, så k-fold-krydsvalidering (typisk k = 5 eller 10) lader valideringsrollen gå på skift mellem fold og tager gennemsnittet; stratificerede fold holder klasseforholdet konstant. Bruges den krydsvaliderede score også til at rapportere ydelse efter tuning, er den skævt opadtil; nested krydsvalidering løser det med en indre løkke til tuning og en ydre løkke til estimation, en pointe Cawley og Talbot (2010) gjorde meget tydeligt. Tidsserier kræver fremadskridende skemaer som scikit-learns TimeSeriesSplit, hvor hvert valideringsfold ligger efter sine træningsdata, og grupperede data kræver gruppebevidste fold.

Early stopping er den mest synlige anvendelse. Valideringstabet måles med jævne mellemrum, træningen stoppes, når det ikke er blevet bedre i et fastsat antal målinger (patience), og checkpointet med den bedste valideringsscore genindlæses - Keras tilbyder det som restore_best_weights. Goodfellow m.fl. (§7.8) tolker early stopping som en form for regularisering. En udbredt opfølgning er at træne igen på trænings- plus valideringsdata i det valgte antal skridt og dermed bytte et tilbageholdt tjek for flere data.

Valideringsscoren er et for optimistisk estimat af den valgte model, og skævheden vokser med antallet af afprøvede konfigurationer: at tage maksimum over mange støjfyldte scorer belønner konfigurationer, der var heldige med netop denne stikprøve - modeludvælgelsens winner's curse. Store hyperparametersøgninger kan derfor overtilpasse valideringssættet, og derfor er et separat testsæt stadig nødvendigt. I rammeværk til finjustering af LLM'er er "eval"-splittet, fx eval_dataset i Hugging Faces Trainer, et valideringssæt i denne betydning. Terminologien varierer: NLP siger ofte dev-sæt, mens klinisk forskning bruger "validering" om det, maskinlæring kalder test.

Hvad du bør lære først

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

  1. Træningsdata
  2. →Modeltræning
  3. →Hyperparameter
  4. →Valideringssæt

Relationer

Forudsætter
Hyperparameter
Forveksl ikke med
TestsætTræningsdata
Alternativ til
Krydsvalidering
Bruges sammen med
Regression

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

Nævnt i

Test dig selv

Indlæser…

Atlas er i beta.