Hvad er “Overfitting” og “Underfitting” i maskinlæring?

– S1E14

Da din hovedopgave er at vælge en læringsalgoritme og træne den på nogle data, er de to ting, der kan gå galt, “dårlig algoritme” og “dårlige data”

Dette er eksempler på en dårlig algoritme-

Overfitting-

Overfitting er en modelleringsfejl, der opstår, når en funktion passer for godt til et begrænset sæt af datapunkter. Det betyder, at modellen klarer sig godt på træningsdataene, men at den ikke generaliserer godt.

Ex- Lad os sige, at du besøger et fremmed land, og at taxachaufføren snyder dig. Du kunne være fristet til at sige, at alle taxachauffører i det pågældende land er tyveknægte

Overfitting af træningsdataene

Komplekse modeller såsom dybe neurale netværk kan opdage subtile mønstre i dataene, men hvis træningssættet er støjende, eller hvis det er for lille (hvilket introducerer prøvetagningsstøj), vil modellen sandsynligvis opdage mønstre i støjen selv.

For eksempel- lad os sige, at du tilføjer landets navn-attribut til din livstilfredshedsmodel-

I så fald kan en kompleks model måske opdage mønstre som det faktum, at alle lande i træningsdataene med et ‘w’ i deres navn har en livstilfredshed større end 7: New Zealand (7.3), Norge (7,4), Sverige (7,2) og Schweiz (7,5).

Men denne w-tilfredshedsregel kan ikke generaliseres til Rwanda, Zimbabwe osv.

Det er klart, at dette mønster opstod i træningsdataene ved en ren tilfældighed, men modellen har ingen mulighed for at afgøre, om et mønster er reelt eller blot er resultatet af støj i dataene.

Overfitting sker, når modellen er for kompleks i forhold til mængden og støjen i træningsdataene.

Her er de mulige løsninger:

  • Simplificer modellen ved at vælge en model med færre parametre (f.eks, en lineær model i stedet for en polynomialmodel af høj grad),
  • Den kan reduceres ved at reducere antallet af attributter i træningsdataene eller ved at begrænse* modellen.
  • Saml flere træningsdata.
  • Reducer støjen i træningsdataene (f.eks, rette datafejl og fjerne outliers).

Begrænsning af en model for at gøre den mere enkel og reducere risikoen for overfitting kaldes regulering.

Den lineære model, vi definerede tidligere, har f.eks. to parametre, θ0 og θ1 .

Dette giver læringsalgoritmen to frihedsgrader til at tilpasse modellen til træningsdataene: Den kan justere både højden (θ0 ) og hældningen (θ1 ) af linjen.

Hvis vi tvang θ1 = 0, ville algoritmen kun have én frihedsgrad og ville have meget sværere ved at tilpasse dataene korrekt: Det eneste, den kunne gøre, var at flytte linjen op eller ned for at komme så tæt som muligt på træningsinstanserne, så den ville ende omkring middelværdien.

Hvis vi tillader algoritmen at ændre θ1, men tvinger den til at holde den lille, vil læringsalgoritmen i praksis have et sted mellem én og to frihedsgrader.

Du ønsker at finde den rette balance mellem at passe perfekt til træningsdataene og at holde modellen enkel nok til at sikre, at den vil generalisere godt.

Regularisering reducerer risikoen for overfitting
  • Dotted line- trænet på kun cirkler,
  • Stregstreget linje- trænet på både cirkler og firkanter
  • Solid linje- er en model, der kun er trænet på cirkler

Du kan se, at regularisering tvang modellen til at have en mindre hældning: Denne model passer ikke så godt til træningsdataene (cirkler) som den første model, men den generaliserer faktisk bedre til nye eksempler, som den ikke har set under træningen (firkanter).

Mængden af regulering, der skal anvendes under indlæringen, kan styres ved hjælp af en hyperparameter.

En hyperparameter er en parameter for en indlæringsalgoritme (ikke for modellen). Den skal indstilles før træningen og forbliver konstant under træningen.

Hvis du indstiller hyperparameteren for regulering til-

  • en meget stor værdi- vil du få en næsten flad model (en hældning tæt på nul), læringsalgoritmen vil næsten helt sikkert ikke overpasse træningsdataene, men det vil være mindre sandsynligt, at den finder en god løsning.

Tuning af hyperparametre er en vigtig del af opbygningen af et Machine Learning-system (du vil se et detaljeret eksempel i yderligere episoder).

Underfitting opstår, når din model er for simpel til at lære den underliggende struktur i dataene.

En lineær model for livstilfredshed er tilbøjelig til at underfitte, virkeligheden er bare mere kompleks end modellen, så dens forudsigelser vil uundgåeligt være unøjagtige.

Her er de vigtigste muligheder for at løse dette problem-

  • Vælg en kraftigere model, med flere parametre.
  • Fød bedre funktioner til læringsalgoritmen (feature engineering).
  • Reducer begrænsningerne på modellen (f.eks, reducere reguleringens hyperparameter).

Læs videre – Test og validering af en trænet model

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.