Overfitting van de trainingsgegevens Complexe modellen zoals diepe neurale netwerken kunnen subtiele patronen in de gegevens detecteren, maar als de trainingsverzameling ruis bevat, of te klein is (waardoor bemonsteringsruis ontstaat), zal het model waarschijnlijk zelf patronen in de ruis detecteren.
Zeg bijvoorbeeld dat u het kenmerk naam van een land toevoegt aan uw model voor levenstevredenheid-
In dat geval kan een complex model patronen ontdekken zoals het feit dat alle landen in de trainingsgegevens met een ‘w’ in hun naam een levenstevredenheid van meer dan 7 hebben: Nieuw-Zeeland (7.3), Noorwegen (7,4), Zweden (7,2), en Zwitserland (7,5).
Maar deze w-tevredenheidsregel generaliseert niet naar Rwanda, Zimbabwe, enz.
Het is duidelijk dat dit patroon door puur toeval in de trainingsgegevens is ontstaan, maar het model heeft geen manier om te zeggen of een patroon echt is of gewoon het resultaat van ruis in de gegevens.
Overfitting treedt op wanneer het model te complex is in verhouding tot de hoeveelheid en de ruis in de trainingsgegevens.
Hier volgen de mogelijke oplossingen:
Vereenvoudig het model door er een te kiezen met minder parameters (bijv, een lineair model in plaats van een polynomiaal model van hoge graad),
Door het aantal attributen in de trainingsgegevens te verminderen, of door het model te beperken.
Verzamel meer trainingsgegevens.
Verminder de ruis in de trainingsgegevens (bijv,
Een model onder druk zetten om het eenvoudiger te maken en het risico van overfitting te beperken, wordt regularisatie genoemd.
Het lineaire model dat we eerder hebben gedefinieerd, heeft bijvoorbeeld twee parameters, θ0 en θ1 .
Dit geeft het leeralgoritme twee vrijheidsgraden om het model aan de trainingsgegevens aan te passen: het kan zowel de hoogte (θ0 ) als de helling (θ1 ) van de lijn tweaken.
Als we θ1 = 0 zouden dwingen, zou het algoritme slechts één vrijheidsgraad hebben en zou het veel moeilijker zijn om de gegevens goed aan te passen: het zou de lijn alleen maar omhoog of omlaag kunnen bewegen om zo dicht mogelijk bij de trainingsinstanties te komen, zodat hij rond het gemiddelde zou eindigen.
Als we het algoritme toestaan om θ1 aan te passen, maar we dwingen het om het klein te houden, dan zal het leeralgoritme effectief ergens tussen één en twee vrijheidsgraden hebben.
Je wilt het juiste evenwicht vinden tussen een perfecte aanpassing aan de trainingsgegevens en het model eenvoudig genoeg houden om ervoor te zorgen dat het goed generaliseert.
Regularisatie vermindert het risico van overfitting
Gestippelde lijn- alleen getraind op cirkels,
Gestippelde lijn- getraind op zowel cirkels als vierkanten
Vaste lijn- is een model dat alleen op cirkels is getraind
U ziet dat regularisatie het model dwong een kleinere helling te hebben: Dit model past niet zo goed bij de trainingsgegevens (cirkels) als het eerste model, maar het generaliseert beter naar nieuwe voorbeelden die het tijdens de training niet heeft gezien (vierkanten).
De mate van regularisatie die tijdens het leren wordt toegepast, kan worden geregeld met een hyperparameter.
Een hyperparameter is een parameter van een leeralgoritme (niet van het model). Hij moet vóór de training worden ingesteld en blijft tijdens de training constant.
Als u de regularisatiehyperparameter instelt op-
een zeer grote waarde- krijgt u een vrijwel vlak model (een helling dicht bij nul); het leeralgoritme zal vrijwel zeker niet overfitten op de trainingsgegevens, maar het zal minder waarschijnlijk zijn dat het een goede oplossing vindt.
Hyperparameters afstemmen is een belangrijk onderdeel van het bouwen van een Machine Learning-systeem (in volgende afleveringen zult u een gedetailleerd voorbeeld zien).
Onderfitting treedt op wanneer uw model te eenvoudig is om de onderliggende structuur van de gegevens te leren.
Een lineair model van levenstevredenheid is vatbaar voor underfit, de werkelijkheid is nu eenmaal complexer dan het model, dus de voorspellingen ervan zijn gedoemd onnauwkeurig te zijn.
Dit zijn de belangrijkste opties om dit probleem op te lossen-
Kies een krachtiger model, met meer parameters.
Lever betere kenmerken aan het leeralgoritme (feature engineering).
Verminder de beperkingen van het model (bijv, verminder de regularisatie hyperparameter).
Lees verder- Testen en valideren van een getraind model