Wat is Overfitting (overaanpassing)?
Een toestand waarin een model fijne details en toevallige ruis in de trainingsdata uit het hoofd leert, zodat de fout op de trainingsdata klein is, maar de fout op nieuwe gegevens (de generalisatiefout) groot. Het treedt vooral op als een complex model met veel parameters op weinig gegevens wordt getraind. Het wordt beperkt door meer gegevens, een eenvoudiger model, regularisatie, dropout, early stopping en vergelijkbare methoden.
Japanse benaming: 過学習
“Overfitting (overaanpassing)” komt voor in 3 oefenvragen uit 1 onderwerpen, bijv. Basis van machine learning.
Vakgebied: Basis van machine learning
Oorzaken
Als het model te veel vrijheid heeft (aantal parameters, diepte van een beslisboom enzovoort) in verhouding tot de hoeveelheid gegevens, kan het zich niet alleen aan de werkelijke trend aanpassen, maar ook aan de ruis die toevallig in die gegevens zit. Een polynoom van de 9e graad die wordt aangepast aan 10 punten met verschillende x-waarden, kan bijvoorbeeld precies door alle punten gaan, maar schommelt sterk tussen de punten en voorspelt nieuwe punten slecht. Ook steeds opnieuw hyperparameters afstemmen terwijl naar dezelfde gegevens wordt gekeken, maakt de schijnbare prestaties beter en veroorzaakt overfitting.
Hoe je het beperkt
De betrouwbaarste remedie is meer trainingsdata. Als er geen gegevens kunnen worden toegevoegd, vergroot data-augmentatie, zoals het draaien of spiegelen van beelden, de schijnbare hoeveelheid gegevens. Aan de kant van het model zijn er methoden zoals het model vereenvoudigen door parameters te verminderen, regularisatie die een straf op de grootte van de gewichten bij het verlies optelt, dropout die tijdens het trainen willekeurig neuronen uitschakelt, en early stopping die het trainen stopt zodra het validatieverlies begint te stijgen. Ook ensemble learning, dat de voorspellingen van meerdere modellen middelt, vermindert de spreiding van de voorspellingen.
Veelgestelde vragen
Wat is het verschil tussen overfitting en underfitting?
Overfitting is het zo nauw aanpassen aan de trainingsdata dat de fout op nieuwe gegevens groot wordt, terwijl de fout op de trainingsdata klein is. Underfitting is een toestand waarin de fout zelfs op de trainingsdata groot is, omdat het model te eenvoudig is of niet genoeg is getraind. In termen van bias en variantie komt underfitting overeen met een grote bias en overfitting met een grote variantie.
Is een model dat een accuracy van 100% op de trainingsdata haalt, overfit?
Dat alleen beslist het niet. Als het model ook op validatie- en testdata goed genoeg presteert, is er geen probleem. Vermoed overfitting als er een grote kloof is tussen de prestaties op de trainingsdata en op de validatiedata.