Overtilpasning er et almindeligt problem i maskinlæring, hvor en model klarer sig ekstremt godt på træningsdataene, men ikke formår at generalisere til nye, usete data. Det opstår, når modellen bliver for kompleks og begynder at huske støj og afvigelser i træningsdataene, i stedet for at lære de underliggende mønstre og sammenhænge. Med andre ord bliver modellen for specialiseret til træningsdataene og mister sin evne til at lave præcise forudsigelser på nye data.
Der er flere grunde til, at overfitting kan forekomme. En årsag er, når modellen har for mange parametre i forhold til mængden af tilgængelige træningsdata. Med en lang række parametre kan modellen nemt passe støjen i dataene, hvilket fører til overfitting. En anden grund er, når modellen trænes for længe, så den kan huske træningsdataene i stedet for at lære de generelle mønstre. Derudover kan overfitting forekomme, når træningsdataene ikke er repræsentative for befolkningen, eller når der er afvigelser eller fejl i træningsdataene.
For at illustrere begrebet overfitting, lad os overveje et simpelt eksempel på at forudsige huspriser baseret på antallet af soveværelser. Antag, at vi har et datasæt på 100 huse med deres tilsvarende priser, og vi vil bygge en model til at forudsige prisen på et nyt hus baseret på antallet af soveværelser. Hvis vi tilpasser en lineær regressionsmodel til disse data, kan vi få en simpel ligning såsom pris = 100000 + 50000 * soveværelser. Denne model har lært den generelle sammenhæng mellem antallet af soveværelser og prisen på et hus.
Men hvis vi har et meget stort antal parametre i vores model, såsom pris = a + b1 * soveværelser + b2 * soveværelser^2 + b3 * soveværelser^3 + …, kan modellen blive for kompleks og begynde at tilpasse støjen i dataene. Det kan ende med et polynomium i høj grad, der passerer gennem hvert enkelt datapunkt, hvilket resulterer i en model, der er overfittet til træningsdataene. Selvom denne model kan have en meget lav træningsfejl, vil den sandsynligvis have en høj fejl, når den forudsiger priserne på nye huse.
For at løse problemet med overtilpasning kan flere teknikker anvendes. En almindelig tilgang er at bruge regularisering, som tilføjer et strafbegreb til modellens tabsfunktion. Dette strafudtryk afskrækker modellen fra at tillægge for meget betydning til en funktion eller parameter. Regulariseringsteknikker såsom L1-regularisering (Lasso) og L2-regularisering (Ridge) kan hjælpe med at reducere overfitting ved at formindske parameterværdierne mod nul.
En anden tilgang er at øge mængden af træningsdata. Flere data kan hjælpe modellen med at lære de underliggende mønstre og reducere påvirkningen af støj i træningsdataene. Hvis det ikke er muligt at indsamle flere data, kan teknikker som dataforøgelse bruges til kunstigt at øge størrelsen af træningsdatasættet.
Krydsvalidering er en anden nyttig teknik til at bekæmpe overfitting. I stedet for at evaluere modellens ydeevne på et enkelt tog-test-split, involverer krydsvalidering at opdele dataene i flere folder og træne modellen i forskellige kombinationer af disse folder. Dette giver et mere robust skøn over modellens ydeevne og hjælper med at identificere overfitting.
Endelig kan en forenkling af modelarkitekturen også hjælpe med at reducere overfitting. Dette kan gøres ved at reducere antallet af parametre, bruge enklere modeller eller anvende dimensionsreduktionsteknikker såsom principal component analysis (PCA) eller funktionsvalg.
Overfitting er et almindeligt problem i maskinlæring, hvor en model klarer sig godt på træningsdataene, men ikke formår at generalisere til nye data. Det opstår, når modellen bliver for kompleks og begynder at tilpasse støjen og afvigelserne i træningsdataene. Overfitting kan løses ved at bruge teknikker som regularisering, øge mængden af træningsdata, krydsvalidering og forenkling af modelarkitekturen.
Andre seneste spørgsmål og svar vedr EITC/AI/TFF TensorFlow Fundamentals:
- Hvordan bestemmer man antallet af billeder, der bruges til træning af en AI-visionsmodel?
- Når du træner en AI-visionsmodel, er det nødvendigt at bruge et andet sæt billeder for hver træningsepoke?
- Hvad er det maksimale antal trin, som en RNN kan huske for at undgå problemet med forsvindende gradient, og det maksimale antal trin, som LSTM kan huske?
- Er et backpropagation neuralt netværk ligner et tilbagevendende neuralt netværk?
- Hvordan kan man bruge et indlejringslag til automatisk at tildele korrekte akser til et plot af repræsentation af ord som vektorer?
- Hvad er formålet med maksimal pooling i et CNN?
- Hvordan anvendes funktionsudtrækningsprocessen i et konvolutionelt neuralt netværk (CNN) til billedgenkendelse?
- Er det nødvendigt at bruge en asynkron indlæringsfunktion til maskinlæringsmodeller, der kører i TensorFlow.js?
- Hvad er TensorFlow Keras Tokenizer API's maksimale antal ord parameter?
- Kan TensorFlow Keras Tokenizer API bruges til at finde de mest hyppige ord?
Se flere spørgsmål og svar i EITC/AI/TFF TensorFlow Fundamentals